失效链接处理 |
Python性能分析与优化 PDF 下载
转载自:https://www.jb51.net/books/569331.html
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/1568585528.html
相关截图:
![]()
资料简介:
本书首先介绍什么是性能分析,性能分析如何在项目开发周期中发挥作用,以及通过在项目中进行性能分析实践能够取得的效果。紧接着介绍分析性能所需的核心工具(性能分析器和可视化性能分析器)。然后介绍一系列性能优化技术,后一章会介绍一个具有实际意义的优化案例。
资料目录:
目录 n n 第1 章 性能分析基础 1 n 1.1 什么是性能分析 1 n 1.1.1 基于事件的性能分析 2 n 1.1.2 统计式性能分析 4 n 1.2 性能分析的重要性 5 n 1.3 性能分析可以分析什么 6 n 1.3.1 运行时间 6 n 1.3.2 瓶颈在哪里 8 n 1.4 内存消耗和内存泄漏 8 n 1.5 过早优化的风险 11 n 1.6 运行时间复杂度 12 n 1.6.1 常数时间——O(1) 12 n 1.6.2 线性时间——O(n) 12 n 1.6.3 对数时间——O(logn) 13 n 1.6.4 线性对数时间——O(nlogn) 14 n 1.6.5 阶乘时间——O(n!) 15 n 1.6.6 平方时间——O(n2) 16 n 1.7 性能分析最佳实践 18 n 1.7.1 建立回归测试套件 18 n 1.7.2 思考代码结构 18 n 1.7.3 耐心 18 n 1.7.4 尽可能多地收集数据 19 n 1.7.5 数据预处理 19 n 1.7.6 数据可视化 19 n 1.8 小结 21 n 第2 章 性能分析器 22 n 2.1 认识新朋友:性能分析器 22 n 2.2 cProfile 23 n 2.2.1 工具的局限 24 n 2.2.2 支持的API 24 n 2.2.3 Stats 类 27 n 2.2.4 性能分析示例 30 n 2.3 line_profiler 41 n 2.3.1 kernprof 43 n 2.3.2 kernprof 注意事项 43 n 2.3.3 性能分析示例 45 n 2.4 小结 53 n 第3 章 可视化——利用GUI 理解性能分析数据 54 n 3.1 KCacheGrind/pyprof2calltree 54 n 3.1.1 安装 55 n 3.1.2 用法 55 n 3.1.3 性能分析器示例:TweetStats 57 n 3.1.4 性能分析器示例:倒排索引 60 n 3.2 RunSnakeRun 64 n 3.2.1 安装 65 n 3.2.2 使用方法 65 n 3.2.3 性能分析示例:最小公倍数 66 n 3.2.4 性能分析示例:用倒排索引查询 68 n 3.3 小结 75 n 第4 章 优化每一个细节 76 n 4.1 函数返回值缓存和函数查询表 76 n 4.1.1 用列表或链表做查询表 79 n 4.1.2 用字典做查询表 80 n 4.1.3 二分查找 80 n 4.1.4 查询表使用案例 80 n 4.2 使用默认参数 84 n 4.3 列表综合表达式与生成器 85 n 4.4 ctypes 90 n 4.4.1 加载自定义ctypes 90 n 4.4.2 加载一个系统库 92 n 4.5 字符串连接 92 n 4.6 其他优化技巧 96 n 4.7 小结 98 n 第5 章 多线程与多进程 99 n 5.1 并行与并发 99 n 5.2 多线程 100 n 5.3 线程 101 n 5.3.1 用thread 模块创建线程 102 n 5.3.2 用threading 模块创建线程 106 n 5.4 多进程 112 n 5.5 小结 117 n 第6 章 常用的优化方法 118 n 6.1 PyPy 118 n 6.1.1 安装PyPy 119 n 6.1.2 JIT 编译器 120 n 6.1.3 沙盒 121 n 6.1.4 JIT 优化 122 n 6.1.5 代码示例 124 n 6.2 Cython 126 n 6.2.1 安装Cython 127 n 6.2.2 建立一个Cython 模块 127 n 6.2.3 调用C 语言函数 129 n 6.2.4 定义类型 130 n 6.2.5 定义函数类型 131 n 6.2.6 Cython 示例 133 n 6.2.7 定义类型的时机选择 134 n 6.2.8 限制条件 138 n 6.3 如何选择正确的工具 139 n 6.3.1 什么时候用Cython 139 n 6.3.2 什么时候用PyPy 139 n 6.4 小结 140 n 第7 章 用Numba、Parakeet 和pandas实现极速数据处理 141 n 7.1 Numba 141 n 7.1.1 安装 142 n 7.1.2 使用Numba 144 n 7.2 pandas 工具 151 n 7.2.1 安装pandas 151 n 7.2.2 用pandas 做数据分析 152 n 7.3 Parakeet 155 n 7.3.1 安装Parakeet 156 n 7.3.2 Parakeet 是如何工作的 156 n 7.4 小结 158 n 第8 章 付诸实践 159 n 8.1 需要解决的问题 159 n 8.1.1 从网站上抓取数据 159 n 8.1.2 数据预处理 162 n 8.2 编写初始代码 162 n 8.2.1 分析代码性能 168 n 8.2.2 数据分析代码的优化 172 n 8.3 小结 178 |