C++ 高效能程式設計 C++ High Performance : Master the art of optimizing the functioning of your C++ code, 2/e

Bjorn Andrist 譯 王瑞鵬

買這商品的人也買了...

商品描述

本書共分為14章,包括C++概述,C++必備技能,分析和度量性能,資料結構,演算法,範圍和視圖,記憶體管理,
編譯時編程,Utilities基礎,代理物件和惰性求值,並發,協程和惰性產生器,用協程進行非同步編程和平行演算法。
本書期望你具備基本的C++和電腦體系結構知識,並對提升自身專業技能真正感興趣。
希望閱讀本書後,能對如何在效能和語法上改進自己的C++程式碼有更深入的認識。

目錄大綱


前言
第1章C++概述
1.1 為什麼是C++
1.1.1 零成本抽象
1.1.2 可移植性
1.2 與其他語言對比
1.2.1 競爭語言與效能
1.2.2 與效能無關的C++語言特性
1.2.3 C++的限制
1.3 本書使用的函式庫和編譯器
1.4 總結
第2章C++必備技能
2.1 用auto關鍵字進行自動型別推斷
2.1.1 在函式簽章中使用auto
2.1.2 對變數使用auto
2.1.3 指標的常數傳播
2.2 移動語意
2.2.1 拷貝建構函數,交換與移動
2.2.2 資源獲取與五法則
2.2.3 具名變數與右值
2.2.4 預設移動語意與零法則
2.2.5 將&&修飾符應用於類成員函數
2.2.6 當拷貝被省略時,無論如何都不要移動
2.2.7 適時使用值傳遞
2.3 設計帶有錯誤處理的介面
2.3.1 契約
2.3.2 錯誤處理
2.4 函數物件和lambda表達式
2.4.1 C++lambda的基本語法
2.4.2 捕獲子句
2.4.3 為lambda表達式分配C函數指標
2.4.4 Lambda類型
2.4.5 lambda表達式和std::function
2.4.6 泛型lambda
2.5 總結
第3章分析與度量表現
3.1 漸進複雜度與大O符號
3.1.1 成長率
3.1.2 均攤時間複雜度
3.2 度量什麼?該如何度量?
3.2.1 性能特性
3.2.2 運轉時間的提升
3.2.3 性能計數器
3.2.4 最佳實務:性能測試
3.3 了解程式碼與熱點
3.3.1 插樁型剖析器
3.3.2 採樣型剖析器
3.4 微基準測試
3.4.1 阿姆達爾定律
3.4.2 微基準測試的隱患
3.4.3 微基準測試實例
3.5 總結
第4章資料結構
4.1 電腦記憶體的特性
4.2 標準庫容器
4.2.1 序列式容器
4.2.2 關聯式容器
4.2.3 容器適配器
4.3 使用視圖

第5章演算法
第6章範圍與視圖
第7章記憶體管理
第8章編譯時程式設計
第9章Utilities基礎
第10章代理物件與惰性求值
第11章並發
第12章協程與惰性產生器
第13章用協程進行非同步程式設計
第14章並行演算法