注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計C++高性能編程

C++高性能編程

C++高性能編程

定 價:¥139.00

作 者: [美]費多爾·G.皮克斯 著 劉鵬 譯
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

ISBN: 9787302620693 出版時間: 2022-11-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  《C高性能編程》詳細闡述了與C高性能編程相關的基本解決方案,主要包括性能和并發(fā)性簡介,性能測量, CPU架構、資源和性能,內(nèi)存架構和性能,線程、內(nèi)存和并發(fā),并發(fā)和性能,并發(fā)數(shù)據(jù)結構,C中的并發(fā),高性能C,C中的編譯器優(yōu)化,未定義行為和性能,性能設計等內(nèi)容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現(xiàn)過程。 本書適合作為高等院校計算機及相關專業(yè)的教材和教學參考書,也可作為相關開發(fā)人員的自學用書和參考手冊。

作者簡介

暫缺《C++高性能編程》作者簡介

圖書目錄

第1篇  性 能 基 礎
第1章  性能和并發(fā)性簡介 3
1.1  程序員要關注性能的原因 3
1.2  有關性能重要性的解釋 6
1.3  程序性能 8
1.3.1  吞吐量指標 8
1.3.2  功耗指標 9
1.3.3  實時應用性能 10
1.3.4  上下文環(huán)境 11
1.4  評估和預測性能 12
1.5  精通高性能應用程序開發(fā) 13
1.6  小結 14
1.7  思考題 15
第2章  性能測量 17
2.1  技術要求 17
2.2  性能測量示例 18
2.3  性能基準測試 25
2.3.1  C 計時器 25
2.3.2  高分辨率計時器 26
2.4  性能分析 31
2.4.1  perf性能分析器 32
2.4.2  使用perf 進行詳細性能分析 34
2.4.3  Google Performance性能分析器 37
2.4.4  使用調(diào)用圖進行性能分析 38
2.4.5  優(yōu)化和內(nèi)聯(lián) 42
2.4.6  實際性能分析 44
2.5  微基準測試 45
2.5.1  微基準測試的基礎知識 45
2.5.2  微基準測試和編譯器優(yōu)化 48
2.5.3  Google Benchmark 51
2.5.4  微基準測試是謊言 54
2.6  小結 58
2.7  思考題 59
第3章  CPU架構、資源和性能 61
3.1  技術要求 61
3.2  CPU和性能 62
3.3  使用微基準測試性能 64
3.4  可視化指令級并行性 70
3.5  數(shù)據(jù)依賴和流水線 72
3.6  流水線和分支 77
3.6.1  分支預測 80
3.6.2  分支預測錯誤的性能分析 82
3.7  推測執(zhí)行 85
3.8  復雜條件的優(yōu)化 86
3.9  無分支計算 90
3.9.1  循環(huán)展開 90
3.9.2  無分支選擇 91
3.9.3  無分支計算示例 93
3.10  小結 96
3.11  思考題 97
第4章  內(nèi)存架構和性能 99
4.1  技術要求 99
4.2  影響性能的不止CPU 100
4.3  測量內(nèi)存訪問速度 102
4.3.1  內(nèi)存架構 103
4.3.2  測量內(nèi)存和緩存速度 105
4.4  內(nèi)存的速度:數(shù)字 108
4.4.1  隨機內(nèi)存訪問速度 108
4.4.2  順序內(nèi)存訪問速度 111
4.4.3  硬件中的內(nèi)存性能優(yōu)化 113
4.5  優(yōu)化內(nèi)存性能 115
4.5.1  高效使用內(nèi)存的數(shù)據(jù)結構 116
4.5.2  分析內(nèi)存性能 119
4.5.3  優(yōu)化內(nèi)存性能的算法 121
4.6  機器里的“幽靈” 126
4.6.1  關于Spectre 127
4.6.2  Spectre攻擊示例 129
4.6.3  釋放“幽靈” 133
4.7  小結 137
4.8  思考題 137
第5章  線程、內(nèi)存和并發(fā) 139
5.1  技術要求 139
5.2  理解線程和并發(fā) 139
5.2.1  關于線程 140
5.2.2  對稱多線程 141
5.2.3  線程和內(nèi)存 141
5.2.4  內(nèi)存受限程序和并發(fā) 145
5.3  了解內(nèi)存同步的成本 146
5.4  數(shù)據(jù)共享成本高昂的原因 151
5.5  了解并發(fā)和順序 157
5.5.1  順序的需要 157
5.5.2  內(nèi)存順序和內(nèi)存屏障 159
5.5.3  C 中的內(nèi)存順序 165
5.6  內(nèi)存模型 168
5.7  小結 172
5.8  思考題 172
 
第2篇  并發(fā)的高級應用
第6章  并發(fā)和性能 175
6.1  技術要求 175
6.2  高效使用并發(fā)需要的條件 176
6.3  鎖、替代品及其性能 177
6.3.1  基于鎖、無鎖和無等待的程序 179
6.3.2  針對不同問題的不同鎖 181
6.3.3  鎖與無鎖的真正區(qū)別 185
6.4  并發(fā)編程的構建塊 187
6.4.1  并發(fā)數(shù)據(jù)結構的基礎知識 188
6.4.2  計數(shù)器和累加器 191
6.4.3  發(fā)布協(xié)議 196
6.5  并發(fā)編程的智能指針 198
6.5.1  發(fā)布指針 198
6.5.2  原子共享指針 201
6.6  小結 204
6.7  思考題 204
第7章  并發(fā)數(shù)據(jù)結構 205
7.1  技術要求 205
7.2  關于線程安全數(shù)據(jù)結構 205
7.2.1  最好的線程安全性 206
7.2.2  真正的線程安全性 208
7.3  線程安全棧 208
7.3.1  線程安全的接口設計 209
7.3.2  互斥鎖保護的數(shù)據(jù)結構的性能 211
7.3.3  不同用途的性能要求 213
7.3.4  有關棧性能的細節(jié)討論 217
7.3.5  同步方案的性能估計 220
7.3.6  無鎖棧 223
7.4  線程安全隊列 229
7.4.1  無鎖隊列 230
7.4.2  非順序一致的數(shù)據(jù)結構 235
7.4.3  并發(fā)數(shù)據(jù)結構的內(nèi)存管理 238
7.5  線程安全列表 240
7.5.1  列表的挑戰(zhàn) 240
7.5.2  無鎖列表 243
7.6  小結 249
7.7  思考題 249
第8章  C 中的并發(fā) 251
8.1  技術要求 251
8.2  C 11中的并發(fā)支持 251
8.3  C 17中的并發(fā)支持 253
8.4  C 20中的并發(fā)支持 256
8.4.1  協(xié)程的基礎知識 257
8.4.2  協(xié)程C 語法 261
8.4.3  協(xié)程示例 262
8.5  小結 268
8.6  思考題 269
第3篇  設計和編寫高性能程序
第9章  高性能C 273
9.1  技術要求 273
9.2  關于編程語言的效率 273
9.3  不必要的復制 275
9.3.1  復制和參數(shù)傳遞 275
9.3.2  將復制作為一種實現(xiàn)技術 277
9.3.3  復制以存儲數(shù)據(jù) 278
9.3.4  復制返回值 279
9.3.5  使用指針避免復制 283
9.3.6  避免不必要的復制 284
9.4  低效的內(nèi)存管理 285
9.4.1  不必要的內(nèi)存分配 285
9.4.2  并發(fā)程序中的內(nèi)存管理 289
9.4.3  避免內(nèi)存碎片 290
9.5  條件執(zhí)行的優(yōu)化 293
9.6  小結 295
9.7  思考題 296
第10章  C 中的編譯器優(yōu)化 297
10.1  技術要求 297
10.2  編譯器優(yōu)化代碼 297
10.2.1  有關編譯器優(yōu)化的基礎知識 298
10.2.2  函數(shù)內(nèi)聯(lián) 300
10.2.3  編譯器真正知道的東西 305
10.2.4  將運行時信息轉換為編譯時信息 311
10.3  小結 314
10.4  思考題 315
第11章  未定義行為和性能 317
11.1  技術要求 317
11.2  關于未定義行為 317
11.3  產(chǎn)生未定義行為的緣由 320
11.4  未定義行為和C 優(yōu)化 321
11.5  使用未定義行為進行高效設計 330
11.6  小結 333
11.7  思考題 334
第12章  性能設計 335
12.1  技術要求 335
12.2  設計與性能之間的相互作用 335
12.3  著眼于性能的設計 336
12.3.1  最小信息原則 337
12.3.2  最大信息原則 338
12.4  API設計注意事項 344
12.4.1  有關并發(fā)的API設計 344
12.4.2  復制和發(fā)送數(shù)據(jù) 349
12.5  優(yōu)化數(shù)據(jù)訪問的設計 351
12.6  性能權衡 354
12.6.1  接口設計 354
12.6.2  組件設計 355
12.6.3  錯誤和未定義的行為 356
12.7  做出明智的設計決策 357
12.8  小結 359
12.9  思考題 359
附錄  思考題解答 361
第1章  性能和并發(fā)性簡介 361
第2章  性能測量 361
第3章  CPU架構、資源和性能 362
第4章  內(nèi)存架構和性能 363
第5章  線程、內(nèi)存和并發(fā) 364
第6章  并發(fā)和性能 365
第7章  并發(fā)數(shù)據(jù)結構 365
第8章  C 中的并發(fā) 366
第9章  高性能C 367
第10章  C 中的編譯器優(yōu)化 368
第11章  未定義行為和性能 369
第12章  性能設計 369
 

本目錄推薦

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