Python 性能优化技巧总结
2016-11-01 08:45
417 查看
1.使用测量工具,量化性能才能改进性能,常用的
timeit和
memory_profiler,此外还有
profile、
cProfile、
hotshot等,
memory_profiler用了
psutil,所以不能跟踪
cpython的扩展;
2.用C来解决费时的处理,c是效率的代名词,也是python用来解决效率问题的主要途径,甚至有时候我都觉得python是c的完美搭档。常用的是
Cython,直接把py代码c化然后又能像使用py包一样使用,其次是
ctypes,效率最最高的存在,最后还有
CPython和
cffi都是屌屌的存在;
3.优化算法,所有语言通病,算法的提升我觉得是在所有提升之上的,但也是最难的,好在现在大部分常用的算法都已经封包,除非自己给自己挖坑,所以弄懂标准库里的数据结构和常用api是如何实现的很重要;
4.2里的实现有人做了更高效的包用以替换python中常见的一些实现,如果瓶颈在
stringio、pickle、profile这类上的可以考虑替换为c的版本;
5.数据结构尽量使用元组tuple,特别是数据量大的时候,实在不行list也可以,尽量不要用
class,如果一定要用可以加
slot,效率再不够就只能结合2来加速了;
6.延迟加载,
import不是一定要写在一页的开始,哪里都可以,越碎片越能把包的加载延迟甚至不被加载;
7.用
multiprocessing来实现多线程,可以跳出GIL的限制;
8.python处理循环很烂,解释性语言就这样,跟其它编译型语言比就是蜗牛,所以减少循环次数和嵌套次数能显著提升性能,当然了使用pypy就没有这个问题了;
9.使用加速器,很喜欢psyco的使用方式,如果用2.7-的版本那么不失为一个懒人的选择,现在已经不再维护,创始人去了pypy,pypy是用Python实现的python,底层转为平台依赖的c、.net、java的中间语言,方式非常聪明,大爱,但是缺点是库的支持还不完善,我的项目基本都能支持,解决几个小问题即可,如果性能瓶颈在循环和内存上可以试试,最大的好处是不需要更改一句代码和做另外的设置,没有任何侵入。
参考资料:
Python 代码性能优化技巧: https://www.ibm.com/developerworks/cn/linux/l-cn-python-optim/
Python性能优化技巧: http://kuanghy.github.io/2016/09/26/python-optimize
您可能感兴趣的文章:
相关文章推荐
- Python性能优化技巧总结
- Python性能优化技巧总结
- Python 性能优化技巧总结
- [转]Oracle SQL性能优化技巧总结
- Oracle SQL性能优化技巧大总结_水
- Oracle SQL性能优化技巧大总结
- Python代码性能优化技巧
- Python 代码性能优化技巧
- Oracle SQL性能优化技巧大总结
- Oracle SQL性能优化技巧大总结
- Python 代码性能优化技巧(转)
- Python 代码性能优化技巧
- Python 代码性能优化技巧
- Oracle SQL性能优化技巧大总结
- Python 代码性能优化技巧分享
- Java性能优化技巧总结
- Oracle SQL性能优化技巧大总结_水
- Oracle SQL性能优化技巧大总结
- Oracle SQL性能优化技巧大总结
- Python 代码性能优化技巧分享