书籍简介
Python高性能编程
作者: 【美】 戈雷利克 (Micha Gorelick) / 【美】 欧日沃尔德(Ian Ozsvald)出版社:人民邮电出版社出品方:异步图书原作名:High Performance Python: Practical Performant Programming for Humans译者: 胡世杰 / 徐旭彬出版年:2017-7-1页数:352定价:79装帧:平装ISBN:9787115454898
获取方法
关注微信公众号:申霖,发送:20230955
目录
第1章 理解高性能Python 11.1 基本的计算机系统 11.1.1 计算单元 21.1.2 存储单元 51.1.3 通信层 61.2 将基本的元素组装到一起 81.3 为什么使用Python 12第2章 通过性能分析找到瓶颈 152.1 高效地分析性能 162.2 Julia集合的介绍 172.3 计算完整的Julia集合 202.4 计时的简单方法——打印和修饰 242.5 用UNIX的time命令进行简单的计时 272.6 使用cProfile模块 282.7 用runsnakerun对cProfile的输出进行可视化 332.8 用line_profiler进行逐行分析 342.9 用memory_profiler诊断内存的用量 392.10 用heapy调查堆上的对象 452.11 用dowser实时画出变量的实例 472.12 用dis模块检查CPython字节码 492.13 在优化期间进行单元测试保持代码的正确性 532.14 确保性能分析成功的策略 562.15 小结 57第3章 列表和元组 583.1 一个更有效的搜索 613.2 列表和元组 633.2.1 动态数组:列表 643.2.2 静态数组:元组 673.3 小结 68第4章 字典和集合 694.1 字典和集合如何工作 724.1.1 插入和获取 734.1.2 删除 764.1.3 改变大小 764.1.4 散列函数和熵 764.2 字典和命名空间 804.3 小结 83第5章 迭代器和生成器 845.1 无穷数列的迭代器 875.2 生成器的延迟估值 895.3 小结 93第6章 矩阵和矢量计算 946.1 问题介绍 956.2 Python列表还不够吗 996.3 内存碎片 1036.3.1 理解perf 1056.3.2 根据perf输出做出抉择 1066.3.3 使用numpy 1076.4 用numpy解决扩散问题 1106.4.1 内存分配和就地操作 1136.4.2 选择优化点:找到需要被修正的地方 1166.5 numexpr:让就地操作更快更简单 1206.6 告诫故事:验证你的优化(scipy) 1216.7 小结 123第7章 编译成C 1267.1 可能获得哪种类型的速度提升 1277.2 JIT和AOT编译器的对比 1297.3 为什么类型检查有助代码更快运行 1297.4 使用C编译器 1307.5 复习Julia集的例子 1317.6 Cython 1317.6.1 使用Cython编译纯Python版本 1327.6.2 Cython注解来分析代码块 1347.6.3 增加一些类型注解 1367.7 Shed Skin 1407.7.1 构建扩展模块 1417.7.2 内存拷贝的开销 1447.8 Cython和numpy 1447.9 Numba 1487.10 Pythran 1497.11 PyPy 1517.11.1 垃圾收集的差异 1527.11.2 运行PyPy并安装模块 1527.12 什么时候使用每种工具 1547.12.1 其他即将出现的项目 1557.12.2 一个图像处理单元(GPU)的注意点 1567.12.3 一个对未来编译器项目的展望 1577.13 外部函数接口 1577.13.1 ctypes 1587.13.2 cffi 1607.13.3 f2py 1637.13.4 CPython模块 1667.14 小结 170第8章 并发 1718.1 异步编程介绍 1728.2 串行爬虫 1758.3 gevent 1778.4 tornado 1828.5 AsyncIO 1858.6 数据库的例子 1888.7 小结 191第9章 multiprocessing模块 1939.1 multiprocessing模块综述 1969.2 使用蒙特卡罗方法来估算Pi 1989.3 使用多进程和多线程来估算Pi 1999.3.1 使用Python对象 2009.3.2 并行系统中的随机数 2079.3.3 使用numpy 2079.4 寻找素数 2109.5 使用进程间通信来验证素数 2219.5.1 串行解决方案 2259.5.2 Naïve Pool解决方案 2259.5.3 Less Naïve Pool解决方案 2269.5.4 使用Manager.Value作为一个标记 2279.5.5 使用Redis作为一个标记 2299.5.6 使用RawValue作为一个标记 2329.5.7 使用mmap作为一个标记 2329.5.8 使用mmap作为一个标记的终极效果 2349.6 用multiprocessing来共享numpy数据 2369.7 同步文件和变量访问 2439.7.1 文件锁 2439.7.2 给Value加锁 2479.8 小结 249第10章 集群和工作队列 25110.1 集群的益处 25210.2 集群的缺陷 25310.2.1 糟糕的集群升级策略造成华尔街损失4.62亿美元 25410.2.2 Skype的24小时全球中断 25510.3 通用的集群设计 25510.4 怎样启动一个集群化的解决方案 25610.5 使用集群时避免痛苦的方法 25710.6 三个集群化解决方案 25810.6.1 为简单的本地集群使用Parallel Python模块 25910.6.2 使用IPython Parallel来支持研究 26010.7 为鲁棒生产集群的NSQ 26510.7.1 队列 26510.7.2 发布者/订阅者 26610.7.3 分布式素数计算器 26810.8 看一下其他的集群化工具 27110.9 小结 272第11章 使用更少的RAM 27311.1 基础类型的对象开销高 27411.2 理解集合中的RAM使用 27811.3 字节和Unicode的对比 28011.4 高效地在RAM中存储许多文本 28111.5 使用更少RAM的窍门 29011.6 概率数据结构 29111.6.1 使用1字节的Morris计数器来做近似计数 29211.6.2 K最小值 29511.6.3 布隆过滤器 29811.6.4 LogLog计数器 30311.6.5 真实世界的例子 307第12章 现场教训 31112.1 自适应实验室(Adaptive Lab)的社交媒体分析(SoMA) 31112.1.1 自适应实验室(Adaptive Lab)使用的Python 31212.1.2 SoMA的设计 31212.1.3 我们的开发方法论 31312.1.4 维护SoMA 31312.1.5 对工程师同行的建议 31312.2 使用RadimRehurek.com让深度学习飞翔 31412.2.1 最佳时机 31412.2.2 优化方面的教训 31612.2.3 总结 31812.3 在Lyst.com的大规模产品化的机器学习 31812.3.1 Python在Lyst的地位 31912.3.2 集群设计 31912.3.3 在快速前进的初创公司中做代码评估 31912.3.4 构建推荐引擎 31912.3.5 报告和监控 32012.3.6 一些建议 32012.4 在Smesh的大规模社交媒体分析 32112.4.1 Python在Smesh中的角色 32112.4.2 平台 32112.4.3 高性能的实时字符串匹配 32212.4.4 报告、监控、调试和部署 32312.5 PyPy促成了成功的Web和数据处理系统 32412.5.1 先决条件 32512.5.2 数据库 32512.5.3 Web应用 32612.5.4 OCR和翻译 32612.5.5 任务分发和工作者 32712.5.6 结论 32712.6 在Lanyrd.com中的任务队列 32712.6.1 Python在Lanyrd中的角色 32812.6.2 使任务队列变高性能 32812.6.3 报告、监控、调试和部署 32812.6.4 对开发者同行的建议 329
声明:本文部分素材转载自互联网,如有侵权立即删除 。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容