内容简介
《圖解性能優化》是圖靈程序設計叢書中的一冊,由小田圭二編寫,旨在幫助讀者深入理解性能優化的基本概念和技術。本書通過圖解的方式,詳細介紹了性能優化的各個方面,包括系統性能分析、代碼優化、數據庫優化等。
書中內容豐富,涵蓋了多種編程語言和開發環境的性能優化技巧,適合中高級程序員和系統管理員閱讀。通過本書,讀者可以掌握如何有效地提升軟件和系統的性能,從而提高工作效率和用戶體驗。
目录
版權聲明
譯者序
第 1 章 性能的基礎知識
1.1 學習性能所必需的知識
1.2 算法的優缺點與學習方法
1.2.1 什麼是算法
1.2.2 算法的基礎
1.2.3 學習算法的竅門
1.3 算法的應用實例及性能的差異
1.3.1 日常生活中算法的例子
1.3.2 對性能的影響程度
1.3.3 評價算法的指標
1.4 響應與吞吐的區別
1.5 算法的具體例子
1.5.1 數組與循環處理
1.5.2 鏈表與循環處理
1.5.3 樹與查找
1.5.4 散列算法
1.5.5 隊列
1.5.6 棧
1.5.7 排序(快速排序)
1.5.8 緩存1(回寫)
1.5.9 緩存2(直寫)
1.5.10 鎖與性能
第 2 章 性能分析的基礎
2.1 性能分析從測量開始
2.2 什麼是必要的性能信息
2.2.1 「分段查找」原則
2.2.2 性能信息的3 種類型
2.2.3 系統的模型與性能故障時的運作情況
2.2.4 數據的種類及分析的竅門
2.3 性能分析中的重要理論
2.3.1 等待隊列理論的術語
2.3.2 計算等待隊列的平均等待時間
2.3.3 使用率和等待隊列的例子
2.3.4 實際上可以獲取哪些信息
2.4 OS 的命令
2.4.1 sar
2.4.2 vmstat
2.4.3 ps
2.4.4 netstat
2.4.5 iostat
2.4.6 top
2.4.7 數據包轉儲(wireshark、tcpdump 等)
2.4.8 pstack
2.4.9 系統調用(strace 等)
2.4.10 Profiler
2.4.11 Windows 環境
第 3 章 實際系統的性能分析
3.1.1 Web 服務器的訪問日誌
3.1.2 應用程序、AP 服務器的日誌
3.2 DB 服務器的性能測量
3.2.1 DBMS 的性能測量的原理
3.2.2 性能分析告一段落
3.3 存儲性能分析的思路
3.3.1 存儲的相關術語
3.3.2 存儲性能分析的思路:重視IOPS
3.4 網絡性能分析的思路
3.5 調查原因
3.5.1 初學者容易掉入的陷阱
3.5.2 應有的態度
3.5.3 實際的調查流程
第 4 章 性能調優
4.1 性能與調優
4.1.1 現實中的性能
4.1.2 在現場要保持「大局觀」
4.2 性能調優的準則
4.2.1 設定既不能太粗也不能太細,要剛剛好
4.2.2 調優要循序漸進
4.2.3 通過重複使用來提速
4.2.4 匯總處理(集中、Piggyback)
4.2.5 提高速度與實現並行
4.2.6 縱向擴展與橫向擴展
4.2.7 局部性
4.3 現場可以使用的技巧
4.3.1 省略循環,減少投接球
4.3.2 訪問頻率高的數據存放入鍵值存儲或散列表中
4.3.3 訪問頻率高的數據放在使用位置附近
4.3.4 把同步變成異步
4.3.5 帶寬控制
4.3.6 LRU 算法
4.3.7 分割處理或者細化鎖的粒度
4.3.8 使用不丟失的回寫緩存
4.3.9 使用多層緩存
4.3.10 使用巨幀和高速網絡
4.3.11 負載均衡、輪詢
4.3.12 關聯性、綁定、粘滯會話
4.3.13 寫時複製
4.3.14 日誌
4.3.15 壓縮
4.3.16 樂觀鎖
4.3.17 列式數據庫
4.3.18 服務器的性能設置中,初始值= 最大值?
4.4 實際業務中碰到的性能問題
4.4.1 性能比較的參考數據
4.4.2 緩存命中率並不一定要高
4.4.3 存儲的調優方針
4.4.4 雖然容量足夠,但還是添加磁盤
4.4.5 從性能角度看文件分割
4.4.6 90 百分位
4.4.7 讀取與寫入的比例
4.5 調優的例子
4.5.1 例1:2 層循環中select 語句的執行
4.5.2 例2:偶爾出現性能下降
第 5 章 性能測試
5.1 性能測試的概要
5.1.1 項目工程中的性能測試
5.1.2 不同職責的性能測試相關人員
5.2 常見的失敗情況:9 種反面模式
5.2.1 不能在期限內完成
5.2.2 性能很差!解決不了性能問題
5.2.3 由於沒有考慮到環境差異而導致發生問題
5.2.4 壓力場景設計不完備導致發生問題
5.2.5 沒有考慮到緩衝、緩存的使用而導致發生問題
5.2.6 沒有考慮到思考時間而導致發生問題
5.2.7 報告內容難以理解導致客戶不能認同
5.2.8 客戶因為存在不信任感而不能認同
5.2.9 測試很花時間
5.3 性能測試的種類
5.3.1 實施的週期
5.3.2 狹義的性能測試
5.3.3 臨界測試(臨界性能、回退性能、故障測試)
5.3.4 基礎設施性能測試
5.3.5 應用程序單元性能測試
5.3.6 耐久測試
5.3.7 關聯領域
5.4 項目工程中考慮的性能測試
5.4.1 需求定義
5.4.2 項目規劃
5.4.3 【基本設計】選擇系統
5.4.4 【基本設計】性能測試環境
5.4.5 【基本設計】其他與性能設計相關的事項
5.4.6 【性能測試設計】測試計劃的細節
5.4.7 【性能測試設計】人員配備與聯絡體制
5.4.8 【基礎設施集成測試】基礎設施性能測試
5.4.9 【集成測試】多並發運行測試
5.4.10 【系統測試】壓力測試、臨界測試、耐久測試
5.4.11 【運維測試】性能監控測試、故障測試
5.4.12 【交付】性能測試結果的驗收報告
5.4.13 【運維】初期運行確認
5.5 性能測試的課題與必要的技巧
5.5.1 性能預估能力
5.5.2 高效的反覆實施能力
5.5.3 Oracle Application Testing Suite 的使用效果
第 6 章 虛擬化環境下的性能
6.1 虛擬化與性能
6.2 虛擬化的概要
6.2.1 什麼是服務器虛擬化
6.2.2 虛擬化的種類
6.3 服務器虛擬化的主要技術(過載使用)
6.3.1 CPU 的虛擬化技術
6.3.2 內存的虛擬化技術
6.4 虛擬化環境下性能的相關知識與分析方法
6.4.1 性能分析的工具
6.4.2 CPU 的性能管理
6.4.3 內存的性能管理
6.4.4 存儲的性能管理
6.4.5 網絡的性能管理
第 7 章 雲計算環境下的性能
7.1 雲計算環境下性能的相關知識
7.1.1 雲計算環境下性能會變差嗎
7.2 雲計算與本地部署的差異
7.2.1 雲計算的定義
7.2.2 從雲計算的特點來看與本地部署環境的不同
7.2.3 雲計算的實現形態
7.2.4 從雲計算的服務模式來看其與本地部署的差別
7.2.5 把握資源的變動因素與固定因素
7.3 雲計算環境的內部結構與最佳應用程序架構
7.3.1 集中式?分佈式?
7.3.2 緊耦合?松耦合?
7.3.3 SOAP ?REST ?
7.3.4 前端的分佈式處理:網絡的訪問方法
7.3.5 後端的分佈式處理:數據存儲的知識(從ACID 到BASE)
7.3.6 提高TCP 通信的速度
7.3.7 提高對像存儲的速度
7.3.8 C 語言?Java 語言?還是腳本語言?
7.3.9 雲計算環境下高性能服務的架構
7.3.10 開放遷移與雲計算遷移
7.3.11 推測雲計算的內部結構
7.4 雲計算環境下性能分析的方法
7.4.1 獲得雲計算環境的基準數據的價值與不斷進化的性能值
7.4.2 Web 系統的基本分析方法
7.4.3 批處理系統的基本分析方法
7.4.4 雲計算的自動擴展功能
7.4.5 解析雲計算環境中的複雜信息的統計方法
7.5 雲計算環境中開發階段的思維方式
7.5.1 估算(基本設計)
7.5.2 性能測試(系統測試)
7.5.3 項目管理
7.6 雲計算環境中運維階段的思維方式
7.6.1 容量管理
7.6.2 故障發生時的降規模容量運維
7.6.3 生命週期與更新
參考文獻
作者簡介
您当前的等级为
登录后免费下载登录
小黑屋反思中,不准下载!
评论后刷新页面下载评论
支付¥以后下载
请先登录
您今天的下载次数(次)用完了,请明天再来
支付积分以后下载立即支付
支付以后下载立即支付
您当前的用户组不允许下载升级会员
您已获得下载权限
您可以每天下载资源次,今日剩余次
免责申明:
1. 本站分享的所有书籍均来源于自互联网,我们只进行收集整理,并不对书籍内容进行更改。
2. 部分书籍中可能有书籍压制者放置的广告,这并不是本站所为,请注意甄别。
3. 我们分享这些书籍,纯粹是出于知识分享的热情,以及对互联网分享精神的高度认同和践行,不以盈利为目的。
4. 本站分享的所有书籍,仅供个人学习研究使用,请勿用于任何商业用途,否则产生的一切法律纠纷与本站无关。
5. 如果这些书籍让你有所收获,在条件允许的情况下,请一定购买正版书籍,这是对创作者最好的支持。
6. 如果您是此书籍的版权所有者,且您不希望此作品出现在本站,请联系我们,我们将在收到您的请求后48小时内予以删除。