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

C++高性能編程

C++高性能編程

定 價:¥139.00

作 者: [美]費(fèi)多爾·G.皮克斯 著 劉鵬 譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

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