Python性能分析与优化

副标题:无

作   者:[乌拉圭] 多格里奥(Fernando Doglio)

分类号:

ISBN:9787115424228

微信扫一扫,移动浏览光盘

简介

本书首先介绍什么是性能分析,性能分析如何在项目开发周期中发挥作用,以及通过在项目中进行性能分析实践能够取得的效果。紧接着介绍分析性能所需的核心工具(性能分析器和可视化性能分析器)。然后介绍一系列性能优化技术,后一章会介绍一个具有实际意义的优化案例。

目录

第1章  性能分析基础  1

1.1  什么是性能分析  1

1.1.1  基于事件的性能分析  2

1.1.2  统计式性能分析  4

1.2  性能分析的重要性  5

1.3  性能分析可以分析什么  6

1.3.1  运行时间  6

1.3.2  瓶颈在哪里  8

1.4  内存消耗和内存泄漏  8

1.5  过早优化的风险  11

1.6  运行时间复杂度  12

1.6.1  常数时间——O(1)  12

1.6.2  线性时间——O(n)  12

1.6.3  对数时间——O(logn)  13

1.6.4  线性对数时间——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  思考代码结构  18

1.7.3  耐心  18

1.7.4  尽可能多地收集数据  19

1.7.5  数据预处理  19

1.7.6  数据可视化  19

1.8  小结  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  小结  53

第3章  可视化——利用GUI理解性能分析数据  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  性能分析示例:最小公倍数  66

3.2.4  性能分析示例:用倒排索引查询  68

3.3  小结  75

第4章  优化每一个细节  76

4.1  函数返回值缓存和函数查询表  76

4.1.1  用列表或链表做查询表  79

4.1.2  用字典做查询表  80

4.1.3  二分查找  80

4.1.4  查询表使用案例  80

4.2  使用默认参数  84

4.3  列表综合表达式与生成器  85

4.4  ctypes  90

4.4.1  加载自定义ctypes  90

4.4.2  加载一个系统库  92

4.5  字符串连接  92

4.6  其他优化技巧  96

4.7  小结  98

第5章  多线程与多进程  99

5.1  并行与并发  99

5.2  多线程  100

5.3  线程  101

5.3.1  用thread模块创建线程  102

5.3.2  用threading模块创建线程  106

5.4  多进程  112

5.5  小结  117

第6章  常用的优化方法  118

6.1  PyPy  118

6.1.1  安装PyPy  119

6.1.2  JIT编译器  120

6.1.3  沙盒  121

6.1.4  JIT优化  122

6.1.5  代码示例  124

6.2  Cython  126

6.2.1  安装Cython  127

6.2.2  建立一个Cython模块  127

6.2.3  调用C语言函数  129

6.2.4  定义类型  130

6.2.5  定义函数类型  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  小结  140

第7章  用Numba、Parakeet和pandas实现极速数据处理  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做数据分析  152

7.3  Parakeet  155

7.3.1  安装Parakeet  156

7.3.2  Parakeet是如何工作的  156

7.4  小结  158

第8章  付诸实践  159

8.1  需要解决的问题  159

8.1.1  从网站上抓取数据  159

8.1.2  数据预处理  162

8.2  编写初始代码  162

8.2.1  分析代码性能  168

8.2.2  数据分析代码的优化  172

8.3  小结  178 

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Python性能分析与优化
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon