Python 性能快速优化: 系列二

发布时间:2019-06-29 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Python 性能快速优化: 系列二脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

注:本文的原文地址为 Quick Python Performance Optimization: Part II

这个是 Python 性能快速优化的第二部分,第一部分请点击这里

  1. 使用 MapreduceFilter 代替 for 循环
  2. 校验 a in b字典set列表元组 更好
  3. 当数据量大的时候,尽可能使用不可变数据类型,他们更快 元组 > 列表
  4. 在一个列表中插入数据的复杂度为 O(n)
  5. 如果你需要操作列表的两端,使用 deque
  6. del - 删除对象使用如下
    1) @L_777_3@ 自己处理它,但确保使用了 gc 模块
    2) 编写 __del__ 函数
    3) 最简单的方式,使用后调用 del

  7. time.clock()

  8. GIL(http://wiki.python.org/moin/GlobalInterpreterLock) - GIL is a daemon

GIL 仅仅允许一个 Python 的原生线程来运行每个进程。阻止 CPU 级别的并行,尝试使用 ctyPEs 和 原生的 C 库来解决它,当你达到 Python 优化的最后,总是存在一个选项,可以使用原生的 C 重写慢的函数,通过 Python 的 C 绑定使用它,其他的库如 gevent 也是致力于解决这个问题,并且获得了成功。

TL,DR:当你写代码了,过一遍数据结构,迭代结构,内建和为 GIL 创建 C 扩展,如有必要。

更新:multiPRocessing 是在 GIL 的范围之外,这意味着你可以使用 multiprocessing 这个标准库来运行多个进程。

看下我的 2013 的印度 PyCon 演讲

脚本宝典总结

以上是脚本宝典为你收集整理的Python 性能快速优化: 系列二全部内容,希望文章能够帮你解决Python 性能快速优化: 系列二所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。