2014年10月26日

[C++] Loop Unrolling Using Metaprogramming

Loop unrolling (迴圈展開) 是 compiler 在編譯過程中基本常用的優化方式。然而, compiler 到底會不會採用 loop unrolling 其實完全由 compiler 決定,換言之,你可以預期 compiler 會做,但事實上 compiler 不一定會做,因此這邊介紹利用 metapromming 的方式,強迫使用 loop unrolling 的技巧。

2014年10月25日

[C++] Name Mangling (名稱修飾)

當初事先 PO 了一篇雜記提醒自己要寫這篇文章果然是明智的決定! 
迷之音:富堅了這麼久還敢說?

這篇要談的主題是 Name Mangling (名稱修飾),這是個 C++ 用來實現 function overloading 的方法,然而這東西卻也可能會導致連結器 (linker) 要把兩個分別用 C 與 C++ 編譯完的 object file 連結起來時出現問題,因此這邊就來淺談這玩意兒。至於與其相關的 Overloading Resolution (重載決議),因為實在有點複雜,需要不少版面來說明,就留到下一篇好了。繼續富堅的意味

2014年10月4日

[閒聊] 摩爾定律

搞硬體設計的人一定都聽過的摩爾定律是這樣的:

"Over the history of computer hardware, the number of transistors in a dense integrated circuit doubles approximately every two years.

簡單翻譯的話就是說 IC裡的電晶體數目大約每兩年就增加一倍