内容介绍
Python性能分析与优化从基本的概念开始讲解,循序渐进地介绍高级的优化主题。首先介绍了Python的主流性能分析器,以及用于帮助理解性能分析结果的可视化工具。然后介绍了通用的性能优化方法和专门针对Python的性能优化方法,带你浏览该语言的主要结构,让你只需做一点改变,即可迅速改善代码的性能。最后还介绍了一些专门用于数据处理的程序库,教你如何正确地使用如何它们来完成更好的操作。章节目录
第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
使用说明
1、下载并解压,得出pdf文件忘川风华录韩非猫值得培养吗?好多玩家不是太清楚,现在小编给大家说下韩非喵培养技巧攻略。
打开今日头条,选中要分享的内容, 点击右下角的分享图标, 选择朋友圈,点击发表即可。
忘川风华录镜渊怎么玩?相信有的朋友还不知道,下面就和小编一起来看看吧。
黎明觉醒消音器怎么得?消音器在游戏中的作用还是很大的,消音器是枪械的一个配件,枪械在装备消音器之后可以减小开火的声音,在偷袭埋伏的时候可以使用,不会轻易地惊动敌人。那
现在疫情当下北京实行弹窗设置,只要几天不做核酸的话北京健康码就会出现弹窗3的提示,那健康宝弹窗3不在北京怎么解决呢?健康宝弹窗3必须进京怎么办呢?下面就和小编一起来看看健
首先点击手机页面上的【捞月狗】,如下图所示。 然后登录自己的手机号,如下图所示。 进入软件以后点击【我】,如下图所示。 接着点击【申请陪玩大神】,如下图所示。 再选择适合
拼多多提现的时候需要身份证认证,不少用户担心这样会泄露自己的信息,因此不予认证,或者认证后想要解绑。那么怎么解绑身份证呢?下面一起来看看了解一下吧!
古镜记围棋关卡怎么通过,在古镜记游戏中很多小伙伴都不清楚围棋这一关怎么通过,下面小编为大家带来了最新攻略。
来不及了快上车手游怎么选择对局模式?这款游戏已经在9月下旬开始公测了,很多玩家都非常喜欢这款游戏,近期对于这款游戏比较热门的话题就是该如何更换游戏的模式,这款游戏有很
现在疫情当下北京实行弹窗设置,只要几天不做核酸的话北京健康码就会出现弹窗3的提示,那健康宝弹窗3不在北京怎么解决呢?健康宝弹窗3必须进京怎么办呢?下面就和小编一起来看看健