编辑推荐
null
内容简介
加布丽埃勒·拉纳诺著的《Python高性能(第2版)/图灵程序设计丛书》主要介绍如何让Python程序发挥强大性能,内容涵盖针对数值计算和科学代码的优化,以及用于提高Web服务和应用响应速度的策略。具体内容有:基准测试与剖析、纯粹的Python优化、基于NumPy和Pandas的快速数组操作、使用Cython获得C语言性能、编译器探索、实现并发性、并行处理、分布式处理、高性能设计等。 本书适合Python开发人员阅读。
目 录
第1章 基准测试与剖析 1.1 设计应用程序 1.2 编写测试和基准测试程序 1.3 使用pytest-benchmark编写更佳的测试和基准测试程序 1.4 使用cProfile找出瓶颈 1.5 使用line_profiler逐行进行剖析 1.6 优化代码 1.7 模块dis 1.8 使用memory_profiler剖析内存使用情况 1.9 小结 第2章 纯粹的Python优化 2.1 有用的算法和数据结构 2.1.1 列表和双端队列 2.1.2 字典 2.1.3 集 2.1.4 堆 2.1.5 字典树 2.2 缓存和memoization 2.3 推导和生成器 2.4 小结 第3章 使用NumPy和Pandas快速执行数组操作 3.1 NumPy基础 3.1.1 创建数组 3.1.2 访问数组 3.1.3 广播 3.1.4 数学运算 3.1.5 计算范数 3.2 使用NumPy重写粒子模拟器 3.3 使用numexpr最大限度地提高性能 3.4 Pandas 3.4.1 Pandas基础 3.4.2 使用Pandas执行数据库式操作 3.5 小结 第4章 使用Cython获得C语言性能 4.1 编译Cython扩展 4.2 添加静态类型 4.2.1 变量 4.2.2 函数 4.2.3 类 4.3 共享声明 4.4 使用数组 4.4.1 C语言数组和指针 4.4.2 NumPy数组 4.4.3 类型化内存视图 4.5 使用Cython编写粒子模拟器 4.6 剖析Cython代码 4.7 在Jupyter中使用Cython 4.8 小结 第5章 探索编译器 5.1 Numba 5.1.1 Numba入门 5.1.2 类型特殊化 5.1.3 对象模式和原生模式 5.1.4 Numba和NumPy 5.1.5 JIT类 5.1.6 Numba的局限性 5.2 PyPy项目 5.2.1 安装PyPy 5.2.2 在PyPy中运行粒子模拟器 5.3 其他有趣的项目 5.4 小结 第6章 实现并发性 6.1 异步编程 6.1.1 等待I/O 6.1.2 并发 6.1.3 回调函数 6.1.4 future 6.1.5 事件循环 6.2 asyncio框架 6.2.1 协程 6.2.2 将阻塞代码转换为非阻塞代码 6.3 响应式编程 6.3.1 被观察者 6.3.2 很有用的运算符 6.3.3 hot被观察者和cold被观察者 6.3.4 打造CPU监视器 6.4 小结 第7章 并行处理 7.1 并行编程简介 7.2 使用多个进程 7.2.1 Process和Pool类 7.2.2 接口Executor 7.2.3 使用蒙特卡洛方法计算pi的近似值 7.2.4 同步和锁 7.3 使用OpenMP编写并行的Cython代码 7.4 并行自动化 7.4.1 Theano初步 7.4.2 Tensorflow 7.4.3 在GPU中运行代码 7.5 小结 第8章 分布式处理 8.1 分布式计算简介 8.2 Dask 8.2.1 有向无环图 8.2.2 Dask数组 8.2.3 Dask Bag和Datadata-xss 8.2.4 Dask distributed 8.3 使用PySpark 8.3.1 搭建Spark和PySpark环境 8.3.2 Spark架构 8.3.3 弹性分布式数据集 8.3.4 Spark Datadata-xss 8.4 使用mpi4py执行科学计算 8.5 小结 第9章 高性能设计 9.1 选择合适的策略 9.1.1 普通应用程序 9.1.2 数值计算代码 9.1.3 大数据 9.2 组织代码 9.3 隔离、虚拟环境和容器 9.3.1 使用conda环境 9.3.2 虚拟化和容器 9.4 持续集成 9.5 小结
媒体评论
null