幫助中心 | 我的帳號 | 關於我們

軟體優化技術(高等院校軟體工程學科系列教材)

  • 作者:陳虎//湯德佑//黃敏|責編:姚蕾
  • 出版社:機械工業
  • ISBN:9787111742456
  • 出版日期:2024/02/01
  • 裝幀:平裝
  • 頁數:215
人民幣:RMB 69 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書融合了底層技術和軟體優化技術兩個層面的內容,以編程實踐為核心,提供了較多的編程習題,旨在提升讀者的編程能力。全書分為七章,第1章介紹了軟體性能工程、延遲、吞吐率、加速比等基本概念和性能測試方法。後續章節圍繞著CPU、SIMD 指令系統、多線程、GPU、面向對象程序設計語言(C++和Java)、磁碟與網路等專題展開。每章的內容既相對獨立,又相互有聯繫。
    本書適合軟體工程、電腦相關專業的學生閱讀。

作者介紹
陳虎//湯德佑//黃敏|責編:姚蕾

目錄
前言
第1章  引言
  1.1  軟體優化概述
    1.1.1  軟體優化的主要方法
    1.1.2  軟體性能工程
    1.1.3  關於軟體優化的一些觀點
  1.2  評價軟體性能的指標和方法
    1.2.1  延遲和吞吐率
    1.2.2  加速比和效率
    1.2.3  Amdahl定理
    1.2.4  M/M/k模型
  1.3  常用軟體工具和時間測量方法
    1.3.1  常用軟體工具
    1.3.2  時間測量
  1.4  一個程序性能分析的實例
  1.5  擴展閱讀
  1.6  習題
  1.7  實驗題
  參考文獻
第2章  CPU上的基本優化方法
  2.1  電腦體系結構基礎
    2.1.1  指令集體系結構
    2.1.2  指令鐵律
    2.1.3  流水線及其相關性
    2.1.4  超標量和亂序執行
    2.1.5  典型微處理器的微結構
  2.2  針對算術邏輯指令的優化
    2.2.1  現代微處理器的算術邏輯指令延遲與吞吐率
    2.2.2  選擇合適的數據類型
    2.2.3  使用簡單指令代替複雜指令
    2.2.4  使用特殊指令
    2.2.5  查表法
  2.3  針對條件分支指令的優化
    2.3.1  分支預測
    2.3.2  消除分支
    2.3.3  組合多個分支以提高分支預測的準確度
    2.3.4  使用條件執行指令
    2.3.5  合理使用switch語句
  2.4  針對Cache的優化
    2.4.1  現代微處理器的Cache
    2.4.2  數據對齊
    2.4.3  SoA的結構組織方式
    2.4.4  數據分塊以提升Cache命中率
    2.4.5  Cache預取
  2.5  針對循環結構的優化
    2.5.1  消除循環
    2.5.2  循環展開
  2.6  綜合實例
    2.6.1  Linux內核中的ECC計算
    2.6.2  Hash表的構建

  2.7  擴展閱讀
  2.8  習題
  2.9  實驗題
  參考文獻
第3章  基於SIMD指令系統的優化方法
  3.1  SIMD指令系統簡介
    3.1.1  SIMD指令系統概況
    3.1.2  軟體系統使用SIMD指令的方法
  3.2  SIMD內嵌原語
    3.2.1  內嵌原語的數據類型
    3.2.2  向量設置操作
    3.2.3  計算操作
    3.2.4  比較操作
    3.2.5  訪存操作
    3.2.6  數據排列操作
  3.3  基於內嵌原語的SIMD程序設計
    3.3.1  數據對齊和數據寬度
    3.3.2  SoA結構
    3.3.3  數據比較
    3.3.4  特殊指令
    3.3.5  寄存器數量
  3.4  SIMD程序實例
    3.4.1  使用SSE指令去除空格
    3.4.2  基於SIMD指令的雙調排序和歸併排序
    3.4.3  fftw的可移植設計
  3.5  擴展閱讀
  3.6  習題
  3.7  實驗題
  參考文獻
第4章  基於多線程的優化方法
  4.1  多核處理器體系結構
    4.1.1  多線程處理器
    4.1.2  多核處理器系統
    4.1.3  Cache一致性協議
  4.2  操作系統級線程調用
    4.2.1  線程
    4.2.2  線程基本API
    4.2.3  Linux的線程同步和互斥
    4.2.4  Windows的線程同步和互斥
  4.3  OpenMP
    4.3.1  for編譯制導語句
    4.3.2  共享變數和私有變數
    4.3.3  歸約子句
    4.3.4  nowait子句
    4.3.5  single制導指令
    4.3.6  critical子句
    4.3.7  barrier子句
    4.3.8  其他子句
  4.4  多線程程序的一些問題
    4.4.1  臨界區

    4.4.2  Cache偽共享
    4.4.3  多線程的並行化設計方法
  4.5  多線程並行化實例
    4.5.1  Horner演算法的並行化
    4.5.2  構建Hash表
    4.5.3  歸併排序
  4.6  擴展閱讀
  4.7  習題
  4.8  實驗題
  參考文獻
第5章  GPU的優化方法
  5.1  GPU體系結構
    5.1.1  面向吞吐率優化的異構計算
    5.1.2  GPU總體結構
    5.1.3  SIMT機制
    5.1.4  存儲器結構
  5.2  GPU基本編程方法
    5.2.1  線程的組織結構
    5.2.2  GPU函數說明
    5.2.3  存儲器管理以及與主機的數據交換
    5.2.4  GPU上線程之間的同步
    5.2.5  OpenCL的程序對象和內核對象
    5.2.6  程序實例
  5.3  GPU程序優化方法
    5.3.1  指令吞吐率
    5.3.2  資源利用率
    5.3.3  共享存儲器
    5.3.4  全局存儲器
    5.3.5  掩蓋主機和GPU之間的數據傳輸延遲
    5.3.6  動態並行機制
  5.4  GPU程序實例
    5.4.1  矩陣乘法
    5.4.2  LU分解
  5.5  擴展閱讀
  5.6  習題
  5.7  實驗題
  參考文獻
第6章  面向對象程序設計語言的優化方法
  6.1  C++的性能優化
    6.1.1  C++實現簡介
    6.1.2  STL
  6.2  Java的性能優化
    6.2.1  Java虛擬機簡介
    6.2.2  Java位元組碼的執行機制
    6.2.3  Java本地介面
    6.2.4  Java的多線程機制
  6.3  垃圾回收
    6.3.1  垃圾回收基本技術
    6.3.2  HotSpotJVM中的垃圾回收
  6.4  擴展閱讀

  6.5  習題
  6.6  實驗題
  參考文獻
第7章  系統級軟體優化
  7.1  硬碟系統與文件系統的性能優化
    7.1.1  硬碟系統
    7.1.2  文件系統
    7.1.3  性能優化方法
    7.1.4  實例:外排序
  7.2  網路連接的性能優化
    7.2.1  網路連接硬體
    7.2.2  網路編程簡介
    7.2.3  性能優化方法
    7.2.4  實例:Web伺服器的結構
  7.3  軟體總體結構的設計考慮
    7.3.1  用戶友好性設計
    7.3.2  可移植性設計
    7.3.3  錯誤處理設計
    7.3.4  系統可維護性設計
  7.4  擴展閱讀
  7.5  習題
  7.6  實驗題
  參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032