注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計C/C++及其相關C程序性能優(yōu)化:20個實驗與達人技巧

C程序性能優(yōu)化:20個實驗與達人技巧

C程序性能優(yōu)化:20個實驗與達人技巧

定 價:¥29.00

作 者: (日)片山善夫 著
出版社: 人民郵電出版社
叢編項:
標 簽: C C++ C# VC VC++ 程序設計 計算機/網(wǎng)絡

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

內容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

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