注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)Python性能分析與優(yōu)化

Python性能分析與優(yōu)化

Python性能分析與優(yōu)化

定 價(jià):¥45.00

作 者: (烏拉圭)多格里奧(Fernando,Doglio)
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787115424228 出版時(shí)間: 2016-06-01 包裝:
開本: 16開 頁數(shù): 178 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書首先介紹什么是性能分析,性能分析如何在項(xiàng)目開發(fā)周期中發(fā)揮作用,以及通過在項(xiàng)目中進(jìn)行性能分析實(shí)踐能夠取得的效果。緊接著介紹分析性能所需的核心工具(性能分析器和可視化性能分析器)。然后介紹一系列性能優(yōu)化技術(shù),后一章會(huì)介紹一個(gè)具有實(shí)際意義的優(yōu)化案例。

作者簡(jiǎn)介

  Fernando DoglioGlobant公司軟件架構(gòu)師。過去十年一直從事Web開發(fā)工作,期間使用了大多數(shù)前沿的技術(shù),如PHP、Ruby on Rails、MySQL、Python、Node.js、AngularJS、REST API等。Fernando喜歡鉆研新事物,他的GitHub賬戶每個(gè)月也會(huì)因此獲得回購(gòu)。他還是開源擁護(hù)者,并通過網(wǎng)站lookingforpullrequests.com來獲得人們的支持。Fernando另著有Pro REST API Development with Node.js。他的Twitter賬號(hào)是@deleteman123。

圖書目錄

目錄
第1 章 性能分析基礎(chǔ) 1
1.1 什么是性能分析 1
1.1.1 基于事件的性能分析 2
1.1.2 統(tǒng)計(jì)式性能分析 4
1.2 性能分析的重要性 5
1.3 性能分析可以分析什么 6
1.3.1 運(yùn)行時(shí)間 6
1.3.2 瓶頸在哪里 8
1.4 內(nèi)存消耗和內(nèi)存泄漏 8
1.5 過早優(yōu)化的風(fēng)險(xiǎn) 11
1.6 運(yùn)行時(shí)間復(fù)雜度 12
1.6.1 常數(shù)時(shí)間——O(1) 12
1.6.2 線性時(shí)間——O(n) 12
1.6.3 對(duì)數(shù)時(shí)間——O(logn) 13
1.6.4 線性對(duì)數(shù)時(shí)間——O(nlogn) 14
1.6.5 階乘時(shí)間——O(n!) 15
1.6.6 平方時(shí)間——O(n2) 16
1.7 性能分析最佳實(shí)踐 18
1.7.1 建立回歸測(cè)試套件 18
1.7.2 思考代碼結(jié)構(gòu) 18
1.7.3 耐心 18
1.7.4 盡可能多地收集數(shù)據(jù) 19
1.7.5 數(shù)據(jù)預(yù)處理 19
1.7.6 數(shù)據(jù)可視化 19
1.8 小結(jié) 21
第2 章 性能分析器 22
2.1 認(rèn)識(shí)新朋友:性能分析器 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 注意事項(xiàng) 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)化每一個(gè)細(xì)節(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 使用默認(rèn)參數(shù) 84
4.3 列表綜合表達(dá)式與生成器 85
4.4 ctypes 90
4.4.1 加載自定義ctypes 90
4.4.2 加載一個(gè)系統(tǒng)庫(kù) 92
4.5 字符串連接 92
4.6 其他優(yōu)化技巧 96
4.7 小結(jié) 98
第5 章 多線程與多進(jìn)程 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 多進(jìn)程 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 建立一個(gè)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 定義類型的時(shí)機(jī)選擇 134
6.2.8 限制條件 138
6.3 如何選擇正確的工具 139
6.3.1 什么時(shí)候用Cython 139
6.3.2 什么時(shí)候用PyPy 139
6.4 小結(jié) 140
第7 章 用Numba、Parakeet 和pandas實(shí)現(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 章 付諸實(shí)踐 159
8.1 需要解決的問題 159
8.1.1 從網(wǎng)站上抓取數(shù)據(jù) 159
8.1.2 數(shù)據(jù)預(yù)處理 162
8.2 編寫初始代碼 162
8.2.1 分析代碼性能 168
8.2.2 數(shù)據(jù)分析代碼的優(yōu)化 172
8.3 小結(jié) 178

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)