前言
大家好,我是Jim Hogg,是一名項目經理,在微軟雷德蒙德總部的 Visual C++ 編譯團隊工作。具體來講,我們的編譯器可以優化你的代碼,既能讓它運行得很快,又可以使你的代碼更簡潔。
在這一系列博文裡,我會講解一些能夠讓你的代碼運行得更快的一些優化方法。我還會引入一些例子,看看各種各樣的代碼優化會帶來哪些好處。然後我將講述一些我們團隊新添加的一些優化方法, 看起來不怎麼明顯,卻讓你的代碼有著驚人的改變。
這個系列博文適合於哪些人閱讀呢?任何對編譯原理感興趣的人,想知道編譯器是如何讓你的代碼運行更快的。另一方面,有一些阻止或者抑制優化的模式,掌握了這些知識,你就可以隨意優化你的代碼,讓程序跑得更快。
要理解這些文章,需要掌握哪些預備知識呢? 首先要有C或C++的編程基礎大多數的例子,我都是用的C,以便於理解,只有到最後,才會有一些特定於C++代碼的優化檢查――像去虛擬化)。最好還能 看懂64位的匯編代碼,這樣你就能夠看到代碼優化帶來的變化。但這不是一個硬性要求――我會盡力提供一些見解,而不是去深挖那些編譯器自動生成的二進制機 器碼。
我創建了一個列表,包含了該系列博客文章的目錄,每次發布文章,都會更新。
01. 前言此篇文章)
02. 概述――C++代碼的編譯過程
03. 合並常量
04. 消除冗余代碼
05. ..
06. …
07. 內聯函數
08. …
09. …
10. 全程序優化鏈接時代碼生成)
11. …
譯文鏈接:http://blog.jobbole.com/47078/