内容简介
本书由两位资深Python开发者Micha Gorelick和Ian Ozsvald撰写,旨在帮助读者理解和掌握Python语言在高效能计算中的核心技巧与实践方法。书中深入剖析了Python程序性能瓶颈的常见原因,并提供了系统化的优化策略,涵盖从代码层面到系统架构的多个维度。
内容从基础开始,首先介绍了如何通过性能剖析工具识别代码中的热点与低效部分,随后详细讲解了向量化计算、使用NumPy和Pandas进行数据操作、并行与并发编程、内存管理与缓存优化、以及利用C扩展和Cython提升运算速度等关键技术。书中还涉及GPU编程、分布式计算等进阶主题,帮助读者在云计算和大数据场景下实现Python程序的高效运行。
与普通编程书籍不同,本书注重实践,每个章节都配有真实的案例和代码示例,引导读者在实际项目中应用性能优化方法。无论是数据科学家、机器学习工程师、后端开发者还是对Python性能感兴趣的爱好者,都能从中获得提升程序运行效率的实用指导。
目录
内容提要
作者简介
第1章 理解高性能Python
1.1 基本的计算机系统
1.2 将基本的元素组装到一起
1.3 为什么使用Python
第2章 通过性能分析找到瓶颈
2.1 高效地分析性能
2.2 Julia集合的介绍
2.3 计算完整的Julia集合
2.4 计时的简单方法——打印和修饰
2.5 用UNIX的time命令进行简单的计时
2.6 使用cProfile模块
2.7 用runsnakerun对cProfile的输出进行可视化
2.8 用line_profiler进行逐行分析
2.9 用memory_profiler诊断内存的用量
2.10 用heapy调查堆上的对象
2.11 用dowser实时画出变量的实例
2.12 用dis模块检查CPython字节码
2.13 在优化期间进行单元测试保持代码的正确性
2.14 确保性能分析成功的策略
2.15 小结
第3章 列表和元组
3.1 一个更有效的搜索
3.2 列表和元组
3.3 小结
第4章 字典和集合
4.1 字典和集合如何工作
4.2 字典和命名空间
4.3 小结
第5章 迭代器和生成器
5.1 无穷数列的迭代器
5.2 生成器的延迟估值
5.3 小结
第6章 矩阵和矢量计算
6.1 问题介绍
6.2 Python列表还不够吗
6.3 内存碎片
6.4 用numpy解决扩散问题
6.5 numexpr:让就地操作更快更简单
6.6 告诫故事:验证你的“优化”(scipy)
6.7 小结
第7章 编译成C
7.1 可能获得哪种类型的速度提升
7.2 JIT和AOT编译器的对比
7.3 为什么类型检查有助代码更快运行
7.4 使用C编译器
7.5 复习Julia集的例子
7.6 Cython
7.7 Shed Skin
7.8 Cython和numpy
7.9 Numba
7.10 Pythran
7.11 PyPy
7.12 什么时候使用每种工具
7.13 外部函数接口
7.14 小结
第8章 并发
8.1 异步编程介绍
8.2 串行爬虫
8.3 gevent
8.4 tornado
8.5 AsyncIO
8.6 数据库的例子
8.7 小结
第9章 multiprocessing模块
9.1 multiprocessing模块综述
9.2 使用蒙特卡罗方法来估算pi
9.3 使用多进程和多线程来估算pi
9.4 寻找素数
9.5 使用进程间通信来验证素数
9.6 用multiprocessing来共享numpy数据
9.7 同步文件和变量访问
9.8 小结
第10章 集群和工作队列
10.1 集群的益处
10.2 集群的缺陷
10.3 通用的集群设计
10.4 怎样启动一个集群化的解决方案
10.5 使用集群时避免痛苦的方法
10.6 三个集群化解决方案
10.7 为鲁棒生产集群的NSQ
10.8 看一下其他的集群化工具
10.9 小结
第11章 使用更少的RAM
11.1 基础类型的对象开销高
11.2 理解集合中的RAM使用
11.3 字节和Unicode的对比
11.4 高效地在RAM中存储许多文本
11.5 使用更少RAM的窍门
11.6 概率数据结构
第12章 现场教训
12.1 自适应实验室(Adaptive Lab)的社交媒体分析(SoMA)
12.4 在Smesh的大规模社交媒体分析
12.5 PyPy促成了成功的Web和数据处理系统
欢迎来到异步社区!
您当前的等级为
登录后免费下载登录
小黑屋反思中,不准下载!
评论后刷新页面下载评论
支付¥以后下载
请先登录
您今天的下载次数(次)用完了,请明天再来
支付积分以后下载立即支付
支付以后下载立即支付
您当前的用户组不允许下载升级会员
您已获得下载权限
您可以每天下载资源次,今日剩余次
免责申明:
1. 本站分享的所有书籍均来源于自互联网,我们只进行收集整理,并不对书籍内容进行更改。
2. 部分书籍中可能有书籍压制者放置的广告,这并不是本站所为,请注意甄别。
3. 我们分享这些书籍,纯粹是出于知识分享的热情,以及对互联网分享精神的高度认同和践行,不以盈利为目的。
4. 本站分享的所有书籍,仅供个人学习研究使用,请勿用于任何商业用途,否则产生的一切法律纠纷与本站无关。
5. 如果这些书籍让你有所收获,在条件允许的情况下,请一定购买正版书籍,这是对创作者最好的支持。
6. 如果您是此书籍的版权所有者,且您不希望此作品出现在本站,请联系我们,我们将在收到您的请求后48小时内予以删除。