注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)C程序性能優(yōu)化:20個(gè)實(shí)驗(yàn)與達(dá)人技巧

C程序性能優(yōu)化:20個(gè)實(shí)驗(yàn)與達(dá)人技巧

C程序性能優(yōu)化:20個(gè)實(shí)驗(yàn)與達(dá)人技巧

定 價(jià):¥29.00

作 者: (日)片山善夫 著
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: C C++ C# VC VC++ 程序設(shè)計(jì) 計(jì)算機(jī)/網(wǎng)絡(luò)

ISBN: 9787115300003 出版時(shí)間: 2013-01-01 包裝: 平裝
開本: 32開 頁數(shù): 139 字?jǐn)?shù):  

內(nèi)容簡介

  《C程序性能優(yōu)化:20個(gè)實(shí)驗(yàn)與達(dá)人技巧》從CPU與編譯器的運(yùn)行機(jī)制講起,帶領(lǐng)讀者一步步了解程序的執(zhí)行成本、編譯器的優(yōu)化選項(xiàng)等,總結(jié)出許多C程序性能優(yōu)化的技巧,并以實(shí)驗(yàn)的方式進(jìn)行了講解,簡明易懂,使人印象深刻。書中帶有大量的代碼實(shí)例,使讀者不僅能夠了解代碼優(yōu)化的原理,還能夠輕松地在實(shí)踐中應(yīng)用。《C程序性能優(yōu)化:20個(gè)實(shí)驗(yàn)與達(dá)人技巧》適合有一定基礎(chǔ)的C語言編程人員閱讀。

作者簡介

  片山善夫:具有近二十年的C語言編譯器和解釋器開發(fā)經(jīng)驗(yàn)。現(xiàn)從事對(duì)SPARC、VisionChip等體系結(jié)構(gòu)的研究。譯者介紹:何本華,日語專業(yè)翻譯,擅長IT類、工程技術(shù)類、新聞稿件類翻譯,曾擔(dān)任奧特曼之父中田幸和的口譯。居福國,畢業(yè)于復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),精通C語言和Java,具有豐富的編程經(jīng)驗(yàn)。

圖書目錄

目 錄
第1章 CPU與編譯器概論
1.1 高速路與人行道 002
1.2 編譯器是如何運(yùn)作的 003
 編譯后的匯編語言程序 004
 添加優(yōu)化選項(xiàng)后的結(jié)果 007
1.3 CPU是如何運(yùn)作的 008
 指令集架構(gòu)與微架構(gòu) 008
 如何執(zhí)行指令 009
 指令流水線 011
 高速緩存 012
 深入探討高速緩存 013
 緩存塊的替換算法 015
 超標(biāo)量指令執(zhí)行 015
第1章 是不是偏離了主題 017
第2章 執(zhí)行成本
2.1 兩程序的執(zhí)行成本 020
2.2 計(jì)·測(cè)·謀 020
 書中的探討 020
2.3 防止基準(zhǔn)測(cè)試程序被優(yōu)化 023
 防止操作“歸并” 023
 防止變量在初始化時(shí)被優(yōu)化 024
 防止重復(fù)單一指令被優(yōu)化 025
 本書中的基準(zhǔn)測(cè)試程序 026
2.4 驗(yàn)證——哪一步操作導(dǎo)致執(zhí)行速度緩慢 029
2.5 基礎(chǔ)加法與賦值運(yùn)算 031
 單一的賦值操作(寄存器間的傳送) 032
 單一的賦值操作(數(shù)據(jù)相互關(guān)聯(lián)的情況) 032
 常量賦值 033
 變量間的加法運(yùn)算 033
 變量與常量相加 034
2.6 耗時(shí)的乘法運(yùn)算 036
 變量間的乘法運(yùn)算 037
 變量與常量相乘 037
2.7 更為耗時(shí)的除法運(yùn)算 040
 變量的除法(寄存器間的計(jì)算) 040
 除數(shù)為2、4的除法運(yùn)算 042
 除數(shù)不是2的乘方的除法運(yùn)算 042
 無符號(hào)整數(shù)除法運(yùn)算 042
 除數(shù)為2的乘方時(shí)除法運(yùn)算使用低成本移位指令 043
2.8 內(nèi)存讀取 045
 小數(shù)組的讀取(小范圍內(nèi)的內(nèi)存操作) 045
 大數(shù)組的讀取(大范圍內(nèi)的內(nèi)存操作) 047
 與臺(tái)式機(jī)的CPU進(jìn)行比較 049
2.9 造成執(zhí)行時(shí)間差別的判斷語句 051
 無else節(jié)點(diǎn)的if語句 051
 帶else節(jié)點(diǎn)的if語句 053
2.10 32/64位環(huán)境中不同的函數(shù)調(diào)用 053
2.11 實(shí)驗(yàn)總結(jié) 055
 若想被愛則先愛 055
第3章 尋找性能瓶頸
3.1 使用gprof命令進(jìn)行分析 058
 gprof的使用方法 058
3.2 哪個(gè)環(huán)節(jié)在消耗時(shí)間 058
 獲取庫函數(shù)的評(píng)測(cè)信息 060
 耗時(shí)的函數(shù) 062
 顯示庫函數(shù)的調(diào)用次數(shù) 063
3.3 函數(shù)的調(diào)用關(guān)系 063
3.4 進(jìn)行數(shù)據(jù)分析的原理 066
3.5 其他性能分析器 067
 培養(yǎng)高水平人才的教育系統(tǒng) 068
第4章 達(dá)人方法論
4.1 達(dá)人的關(guān)注點(diǎn) 072
 硬件篇 072
 編譯器/中間件篇 074
 算法篇 075
4.2 【硬件篇】數(shù)組和緩存的有效利用 076
 矩陣的乘法運(yùn)算 076
 調(diào)整數(shù)組操作的順序 077
 展開循環(huán)的方式 078
 矩陣的分塊 079
4.3 【庫函數(shù)篇】緩慢函數(shù)的迂回戰(zhàn)術(shù) 080
 strcmp函數(shù)為何緩慢 080
 優(yōu)化的陷阱 081
4.4 【硬件篇】使用SIMD進(jìn)行字符串對(duì)比 083
4.5 【庫函數(shù)篇】對(duì)比各種輸入輸出方法 085
 行輸入函數(shù)的對(duì)比 085
 輸出方法 089
 管道輸入輸出的特殊案例 091
 管道輸入輸出與文件輸入輸出 092
4.6 【算法篇】二分法查找與平衡二叉樹 092
 海量數(shù)據(jù)的分類 093
 真要做到如此地步? 097
第5章 進(jìn)一步研究編譯器
5.1 不同級(jí)別的優(yōu)化選項(xiàng) 100
 GCC的優(yōu)化選項(xiàng) 100
 “零優(yōu)化”對(duì)調(diào)試有效 100
 以不出現(xiàn)未定義行為為前提的2級(jí)以上優(yōu)化選項(xiàng) 101
5.2 優(yōu)化·寄存器·外部變量 102
5.3 刪除公共子表達(dá)式為程序瘦身 104
5.4 指針與復(fù)雜運(yùn)算簡化 105
5.5 將用戶函數(shù)進(jìn)行內(nèi)聯(lián)展開 106
 和別人拉開差距! 108
第6章 給辦公系統(tǒng)的一些啟示
6.1 排序與字符串操作 112
6.2 小數(shù)點(diǎn)數(shù)的計(jì)算與字符串/數(shù)字的換算 112
 塊數(shù)據(jù)輸入輸出和字段分割 113
 統(tǒng)計(jì)帶小數(shù)部分的數(shù) 113
 整數(shù)轉(zhuǎn)換成字符串 115
 性能優(yōu)化的效果 116
6.3 半角字符轉(zhuǎn)換為全角字符 117
 判定字符的字節(jié)數(shù) 118
 ASCII字符與半角片假名字符的判定 119
 ASCII字符轉(zhuǎn)換為全角字符 123
 半角字符轉(zhuǎn)換為全角字符 124
 性能優(yōu)化的效果 127
 判定字符字節(jié)數(shù)的其他方法 127
 有關(guān)UTF-8 130
6.4 探索具有某種數(shù)據(jù)特性的數(shù)組 132
 數(shù)據(jù)的特性 133
 二分法查找與線性查找相結(jié)合 135
 性能優(yōu)化的效果 138
后記 139

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)