高效的 python 实践总结
资源固定的情况下, 少干活才是硬道理。即好的算法胜过一切。
C 优于 Python + ctypes 优于 Python 3.2 优于 Python2.7。
语言内部功能对比。
3.1 优先级:set > dict > list
3.2 合理使用生成器(generator)和yield
3.3 join() 优于+优于%
3.4 使用a,b=b,a而不是c=a;a=b;b=c;来交换 a,b 的值
3.5 使用if is True
而不是if == True
3.6 使用级联比较x < y < z
3.7 while 1 比 while True 更快
3.8 使用 ** 而不是pow
3.9 使用局部变量,避免global
关键字
3.10 优先使用xrange()
而不是range()
3.11sorted(iterable[,cmp[,key[,reverse]]])
与sort(cmp[,key[,reverse]])
中优先使用key
而不是CMP
3.12build in
函数通常较快,add(a,b)
要优于a+b
如何开启性能优化。
- 拒绝调优诱惑。
- 你做了性能测试报告吗?
- 你能减少硬盘的 I/O 访问吗?
- 你能减少网络 I/O 访问吗?
- 你能升级硬件吗?
- 你是为其它开发者编译库吗?
- 你的第三方库软件是最新版吗?
- 使用工具监控代码,而不是直觉,总结文档中有不少样例。
- 审查时间复杂度。
- 使用第三方包。
- NumPy: 一个开源的相当于 MatLab 的包
- SciPy:另一个数值处理库
- GPULib:使用GPUs加速代码
- PyPy:使用 just-in-time 编译器优化 Python 代码
- Cython:将 Python 优码转成 C
- ShedSkin:将 Python 代码转成 C++
- 拒绝调优诱惑。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
下一篇: JavaScript 集合的方法
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论