第1章 程序剖分
1.1 剖分的目標與目的
1.1.1 總執行時間
1.1.2 執行時間的類型
1.1. 3 處罰信息
1.1.4 調用次數
1.1.5 覆蓋層次
1.2 微剖分的基本問題
1.2.1 流水作業或者吞吐量與等待時間
1.2.2 測不準
1.2.3 硬件優化
1.2.4 低分辨率
1.3 宏剖分的基本問題
1.3.1 運行時間的不一緻性
1.3.2 度運行問題
1.3.3 負麵效應
1.3.4 單颱機器的代碼優化問題
1.4 最新剖分軟件概述
1.4.1 intelvtune
1.4.2 amdcodeanalyst
.1.4.3 microsoft的profile.exe
1.5 開發自己的剖分軟件
1.6 vtune實用剖分知識
1.6.1 第一步:刪除prinff函數
1.6.2 第二步:將strlen函數體移齣循環
1.6.3 第三步:對齊數據
1.6.4 第四步:刪除strlen函數
1.6.5 第五步:刪除除法操作
1.6.6 第六步:刪除性能監測代碼
1.6.7 第七步:函數組閤
1.6.8 第八步:減少內存訪問操作的次數
1.6.9 第九步:把vtune當做私人教練
1.6.10 第十步:下結論
1.6.11 結果與預測
第2章 ram子係統
2.1 ram概述
2.2 ram的層次結構
2.3 隨機存取存儲器
2.4 ram的設計與工作原理
2.4.1 內核部分
2.4.2 傳統dram(頁麵模式的dram)
2.4.3 dram的發展
2.4.4 快速頁麵模式的dram(fpmdram)
2.4.5 存儲器時序
2.4.6 擴展數據輸齣dram(edodram)
2.4.7 突發式edodram(bedodram)
2.4.8 同步dram(sdram)
2.4.9 倍速sdram(ddrsdram)或者sdramⅱ
2.4.10 直接rambusdram(直接rdram)
2.4.11 不同存儲器類型的比較
2.5 存儲器與處理器之間的交互操作
2.5.1 計算全存取時間
2.6 dram物理地址到邏輯地址的映射
2.7 內存優化操作
2.7.1 建議
2.7.2 展開循環
2.7.3 消除數據相關性
2.7.4 數據並行處理
2.7.5 優化引用數據結構
2.7.6 減小數據結構的尺寸
2.7.7 dram闆塊上的數據分布策略
2.7.8 規劃數據流
2.7.9 按字節、雙字與四字進行內存處理
2.7.10 數據對齊
2.7.11 內存訪問與計算的組閤
2.7.12 讀寫操作的組閤
2.7.13 隻在必要時纔訪問內存
2.7.14 內置c內存處理函數的優化
2.7.15 內存處理函數的優化質量
2.7.16 c字符串庫函數的優化
2.7.17 字符串處理函數的質量優化
2.7.18 塊處理算法的優化
2.7.19 大型數組排序的優化
2.8 ram測試問題
第3章 高速緩存子係統
3.1 sram的工作原理
3.1.1 曆史概況
3.1.2 內核
3.1.3 觸發器的設計
3.1.4 邏輯非元件(取反器)的設計
3.1.5 sram陣列的設計
3.1.6 封裝接口的設計
3.1.7 讀寫時序圖
3.1.8 靜態存儲器的類型
3.2 高速緩存的工作原理
3.2.1 起源
3.2.2 高速緩存的目標與任務
3.2.3 高速緩存的組織
3.3 高速緩存與存儲器存取的優化
3.3.1 處理數據的尺寸對性能的影響
3.3.2 可執行代碼的尺寸對性能的影響
3.3.3 數據對齊效率
3.3.4 數據在高速緩存闆塊上的分布
3.3.5 使用有限聯閤數目的高速緩存
3.3.6 維數組的處理
3.3.7 寫緩衝機製的詳細說明
3.3.8 新一代x86處理器的高速緩存管理
3.3.9 預取機製的實際應用
3.3.10 內存拷貝內幕或者pentiumⅲ與pentium4的新命令
第4章 機器優化
4.1 c/c++編譯器的比較分析
4.1.1 常量錶達式
4.1.2 代數錶達式
4.1.3 算術運算
4.1.4 分支語句
4.1.5 switch運算符
4.1.6 循環
4.1.7 函數調用
4.1.8 變量分布
4.1.9 字符串初始化
4.1.10 死碼
4.1.11 常量條件
4.1.12 確定優勝者
4.2 匯編器與編譯器的對決
4.2.1 曆史迴顧--匯編語言使春天永駐
4.2.2 評價機器優化質量的指標
4.2.3 評價機器優化質量的方法
4.2.4 對主要編譯器進行比較分析
4.2.5 測試結果的討論
4.2.6 機器優化質量的示例
4.2.7 用匯編語言創建保護代碼
4.2.8 用匯編語言編程是一種創造性活動
4.2.9 結束語
4.2.10 源代碼
· · · · · · (
收起)
評分
☆☆☆☆☆
草草看過,以後用時再翻
評分
☆☆☆☆☆
還在讀第一部分,現在還隻是紙上談兵的階段,,,,,,,覺得不懂匯編還是四處碰壁............ 第二部分講內存的好像有點過時,覺得沒過時的部分自己又沒聽懂..
評分
☆☆☆☆☆
草草看過,以後用時再翻
評分
☆☆☆☆☆
大概翻瞭一下,關於內存、緩存、機器指令的優化,CSAPP都有講到,而且更細緻易懂,於是就沒細看瞭。
評分
☆☆☆☆☆
從原理入手,深入淺齣
評分
☆☆☆☆☆
讲代码底层优化的书很少, 讲的这样底层的更少. 如果关心 CPU 级别的代码优化, 这本书一定要读. 至少比读 Intel 的手册来节省时间. 可惜的是译者明显这方面的功利不足,导致翻译的质量不高. 如果你对这方面有一些研究, 那么翻译的差一点其实也无所谓.
評分
☆☆☆☆☆
这本书不算差,但也算不上经典,对于时间并非非常充足的人,这本书可读可不读,建议先去读《深入理解计算机系统》中的第1部分,对代码的优化就可以有个基本了解,如果想继续深入,也不一定非得读此书,因为此书中的大量篇幅都在讲内存的底层原理
評分
☆☆☆☆☆
这本书不算差,但也算不上经典,对于时间并非非常充足的人,这本书可读可不读,建议先去读《深入理解计算机系统》中的第1部分,对代码的优化就可以有个基本了解,如果想继续深入,也不一定非得读此书,因为此书中的大量篇幅都在讲内存的底层原理
評分
☆☆☆☆☆
这本书不算差,但也算不上经典,对于时间并非非常充足的人,这本书可读可不读,建议先去读《深入理解计算机系统》中的第1部分,对代码的优化就可以有个基本了解,如果想继续深入,也不一定非得读此书,因为此书中的大量篇幅都在讲内存的底层原理
評分
☆☆☆☆☆
看了这本书才发现,自己以前那些什么“一次复制4个字节”之类的技巧只能算小聪明。程序性能瓶颈不是那么简单就能看出来的,而是各种因素的综合:指令流水线、内存地址对齐、操作系统页面大小、Cache是否命中…… 如果你想优化CPU密集的程序,本书一定要看。 也有一些不足之处...