Python性能分析與優(yōu)化是一本Python代碼分析與優(yōu)化指導書籍,由web程序員多格里奧編著。本書首先介紹了什么是性能分析,性能分析如何在項目開發(fā)周期中發(fā)揮作用,以及通過在項目中進行性能分析實踐能夠取得的效果。緊接著開始介紹分析性能所需的核心工具(性能分析器和可視化性能分析器)。然后再介紹一系列的性能優(yōu)化技術(shù),最后在配有一個具有實際意義的優(yōu)化案例,可以讓讀者很輕松的了解并掌握書中的知識點和訣竅。
內(nèi)容介紹
Python性能分析與優(yōu)化從基本的概念開始講解,循序漸進地介紹高級的優(yōu)化主題。首先介紹了Python的主流性能分析器,以及用于幫助理解性能分析結(jié)果的可視化工具。然后介紹了通用的性能優(yōu)化方法和專門針對Python的性能優(yōu)化方法,帶你瀏覽該語言的主要結(jié)構(gòu),讓你只需做一點改變,即可迅速改善代碼的性能。最后還介紹了一些專門用于數(shù)據(jù)處理的程序庫,教你如何正確地使用如何它們來完成更好的操作。
章節(jié)目錄
第1 章 性能分析基礎(chǔ) 1 1.1 什么是性能分析 1 1.1.1 基于事件的性能分析 2 1.1.2 統(tǒng)計式性能分析 4 1.2 性能分析的重要性 5 1.3 性能分析可以分析什么 6 1.3.1 運行時間 6 1.3.2 瓶頸在哪里 8 1.4 內(nèi)存消耗和內(nèi)存泄漏 8 1.5 過早優(yōu)化的風險 11 1.6 運行時間復雜度 12 1.6.1 常數(shù)時間——O(1) 12 1.6.2 線性時間——O(n) 12 1.6.3 對數(shù)時間——O(logn) 13 1.6.4 線性對數(shù)時間——O(nlogn) 14 1.6.5 階乘時間——O(n!) 15 1.6.6 平方時間——O(n2) 16 1.7 性能分析最佳實踐 18 1.7.1 建立回歸測試套件 18 1.7.2 思考代碼結(jié)構(gòu) 18 1.7.3 耐心 18 1.7.4 盡可能多地收集數(shù)據(jù) 19 1.7.5 數(shù)據(jù)預處理 19 1.7.6 數(shù)據(jù)可視化 19 1.8 小結(jié) 21 第2 章 性能分析器 22 2.1 認識新朋友:性能分析器 22 2.2 cProfile 23 2.2.1 工具的局限 24 2.2.2 支持的API 24 2.2.3 Stats 類 27 2.2.4 性能分析示例 30 2.3 line_profiler 41 2.3.1 kernprof 43 2.3.2 kernprof 注意事項 43 2.3.3 性能分析示例 45 2.4 小結(jié) 53 第3 章 可視化——利用GUI 理解性能分析數(shù)據(jù) 54 3.1 KCacheGrind/pyprof2calltree 54 3.1.1 安裝 55 3.1.2 用法 55 3.1.3 性能分析器示例:TweetStats 57 3.1.4 性能分析器示例:倒排索引 60 3.2 RunSnakeRun 64 3.2.1 安裝 65 3.2.2 使用方法 65 3.2.3 性能分析示例:最小公倍數(shù) 66 3.2.4 性能分析示例:用倒排索引查詢 68 3.3 小結(jié) 75 第4 章 優(yōu)化每一個細節(jié) 76 4.1 函數(shù)返回值緩存和函數(shù)查詢表 76 4.1.1 用列表或鏈表做查詢表 79 4.1.2 用字典做查詢表 80 4.1.3 二分查找 80 4.1.4 查詢表使用案例 80 4.2 使用默認參數(shù) 84 4.3 列表綜合表達式與生成器 85 4.4 ctypes 90 4.4.1 加載自定義ctypes 90 4.4.2 加載一個系統(tǒng)庫 92 4.5 字符串連接 92 4.6 其他優(yōu)化技巧 96 4.7 小結(jié) 98 第5 章 多線程與多進程 99 5.1 并行與并發(fā) 99 5.2 多線程 100 5.3 線程 101 5.3.1 用thread 模塊創(chuàng)建線程 102 5.3.2 用threading 模塊創(chuàng)建線程 106 5.4 多進程 112 5.5 小結(jié) 117 第6 章 常用的優(yōu)化方法 118 6.1 PyPy 118 6.1.1 安裝PyPy 119 6.1.2 JIT 編譯器 120 6.1.3 沙盒 121 6.1.4 JIT 優(yōu)化 122 6.1.5 代碼示例 124 6.2 Cython 126 6.2.1 安裝Cython 127 6.2.2 建立一個Cython 模塊 127 6.2.3 調(diào)用C 語言函數(shù) 129 6.2.4 定義類型 130 6.2.5 定義函數(shù)類型 131 6.2.6 Cython 示例 133 6.2.7 定義類型的時機選擇 134 6.2.8 限制條件 138 6.3 如何選擇正確的工具 139 6.3.1 什么時候用Cython 139 6.3.2 什么時候用PyPy 139 6.4 小結(jié) 140 第7 章 用Numba、Parakeet 和pandas實現(xiàn)極速數(shù)據(jù)處理 141 7.1 Numba 141 7.1.1 安裝 142 7.1.2 使用Numba 144 7.2 pandas 工具 151 7.2.1 安裝pandas 151 7.2.2 用pandas 做數(shù)據(jù)分析 152 7.3 Parakeet 155 7.3.1 安裝Parakeet 156 7.3.2 Parakeet 是如何工作的 156 7.4 小結(jié) 158 第8 章 付諸實踐 159 8.1 需要解決的問題 159 8.1.1 從網(wǎng)站上抓取數(shù)據(jù) 159 8.1.2 數(shù)據(jù)預處理 162 8.2 編寫初始代碼 162 8.2.1 分析代碼性能 168 8.2.2 數(shù)據(jù)分析代碼的優(yōu)化 172 8.3 小結(jié) 178
使用說明
1、下載并解壓,得出pdf文件
2、如果打不開本文件,請務必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進行閱讀
- 下載地址
軟件排行榜
熱門推薦
- 有柿電腦版 v11.5.684.06M / 簡體中文
- 網(wǎng)易新聞電腦版 v112.697.63M / 簡體中文
- 開源閱讀電腦版 v3.2517.96M / 簡體中文
- 京東讀書電腦版 v1.13.4官方版1.98M / 簡體中文
- cnki全球?qū)W術(shù)快報電腦版 v0.2.3495.79M / 簡體中文
- 未公開的Oracle數(shù)據(jù)庫秘密 迪貝斯pdf掃描版34.69M / 簡體中文
- linux常用命令大全 chm版1.48M / 簡體中文
- 本草綱目 5.34M / 簡體中文
- Scala程序設(shè)計第二版 pdf高清完整版15.83M / 簡體中文
- C++黑客編程揭秘與防范第2版 冀云pdf掃描版54.58M / 簡體中文