VC++官方團(tuán)隊(duì)系列文章:優(yōu)化C++代碼(1):簡(jiǎn)介
前言
大家好,我是Jim Hogg,是一名項(xiàng)目經(jīng)理,在微軟雷德蒙德總部的 Visual C++ 編譯團(tuán)隊(duì)工作。具體來(lái)講,我們的編譯器可以優(yōu)化你的代碼,既能讓它運(yùn)行得很快,又可以使你的代碼更簡(jiǎn)潔。
在這一系列博文里,我會(huì)講解一些能夠讓你的代碼運(yùn)行得更快的一些優(yōu)化方法。我還會(huì)引入一些例子,看看各種各樣的代碼優(yōu)化會(huì)帶來(lái)哪些好處。然后我將講述一些我們團(tuán)隊(duì)新添加的一些優(yōu)化方法, 看起來(lái)不怎么明顯,卻讓你的代碼有著驚人的改變。
這個(gè)系列博文適合于哪些人閱讀呢?任何對(duì)編譯原理感興趣的人,想知道編譯器是如何讓你的代碼運(yùn)行更快的。另一方面,有一些阻止或者抑制優(yōu)化的模式,掌握了這些知識(shí),你就可以隨意優(yōu)化你的代碼,讓程序跑得更快。
要理解這些文章,需要掌握哪些預(yù)備知識(shí)呢? 首先要有C或C++的編程基礎(chǔ)(大多數(shù)的例子,我都是用的C,以便于理解,只有到最后,才會(huì)有一些特定于C++代碼的優(yōu)化檢查――像去虛擬化)。最好還能 看懂64位的匯編代碼,這樣你就能夠看到代碼優(yōu)化帶來(lái)的變化。但這不是一個(gè)硬性要求――我會(huì)盡力提供一些見(jiàn)解,而不是去深挖那些編譯器自動(dòng)生成的二進(jìn)制機(jī) 器碼。
我創(chuàng)建了一個(gè)列表,包含了該系列博客文章的目錄,每次發(fā)布文章,都會(huì)更新。
01. 前言(此篇文章)
02. 概述――C++代碼的編譯過(guò)程
03. 合并常量
04. 消除冗余代碼
05. ..
06. …
07. 內(nèi)聯(lián)函數(shù)
08. …
09. …
10. 全程序優(yōu)化(鏈接時(shí)代碼生成)
11. …
原文鏈接:http://blogs.msdn.com/b/vcblog/archive/2013/05/29/optimizing-c-code.aspx