• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python 性能优化技巧总结

Python 性能优化技巧总结

作者:hebedich 字体:[增加 减小] 来源:互联网

hebedich 通过本文主要向大家介绍了python性能分析与优化,python 性能优化,python性能,python性能测试,高性能python等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

</div>

您可能想查找下面的文章:

  • Python性能提升之延迟初始化
  • Python 性能优化技巧总结
  • python 性能提升的几种方法
  • Python实现测试磁盘性能的方法
  • Python性能优化技巧
  • Python 代码性能优化技巧分享
  • Python 代码性能优化技巧分享

相关文章

  • python如何实现远程控制电脑(结合微信)
  • Python设计模式编程中Adapter适配器模式的使用实例
  • python函数返回多个值的示例方法
  • Python中__init__和__new__的区别详解
  • 用Python编写简单的微博爬虫
  • python模拟Django框架实例
  • python常见的格式化输出小结
  • Python使用面向对象方式创建线程实现12306售票系统
  • python命令行参数解析OptionParser类用法实例
  • Pycharm学习教程(3) 代码运行调试

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python批量重命名同一文件夹下文件的方法
    • python从入门到精通(DAY 3)
    • Python实现生成简单的Makefile文件代码示例
    • Python循环语句之break与continue的用法
    • 详解python进行mp3格式判断
    • pygame学习笔记(1):矩形、圆型画图实例
    • 低版本中Python除法运算小技巧
    • 使用Python从有道词典网页获取单词翻译
    • python socket网络编程步骤详解(socket套接字使用)
    • 使用python统计文件行数示例分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有