摘要:注本文的原文地址为这个是性能快速优化的第二部分,第一部分请点击这里。当你写代码了,过一遍数据结构,迭代结构,内建和为创建扩展,如有必要。更新是在的范围之外,这意味着你可以使用这个标准库来运行多个进程。看下我的的印度演讲
注:本文的原文地址为 Quick Python Performance Optimization: Part II
这个是 Python 性能快速优化的第二部分,第一部分请点击这里。
使用 Map ,Reduce 和 Filter 代替 for 循环
校验 a in b, 字典 或 set 比 列表 或 元组 更好
当数据量大的时候,尽可能使用不可变数据类型,他们更快 元组 > 列表
在一个列表中插入数据的复杂度为 O(n)
如果你需要操作列表的两端,使用 deque
del - 删除对象使用如下
1) python 自己处理它,但确保使用了 gc 模块
2) 编写 __del__ 函数
3) 最简单的方式,使用后调用 del
time.clock()
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 演讲
www.slideshare.net/atmb4u/faster-python
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/37329.html
摘要:这意味着一级优化,而不是进入冗长的优化序列。使用创建生成器以及尽可能使用,它们比正常的列表方式更快。让我继续下一个层次的第二部分快速优化技巧 注: 本文的原文地址 quick-python-performance-optimization-part-i Python可能最容易扼杀你的想法,但不是最好的代码实现。尽管强烈反对过早优化,但在 Python 代码中一点点的优化都可能...
摘要:新闻热点国内国外,前端最新动态发布近日,正式发布新版本中提供了一系列的特性与问题修复。而近日正式发布,其能够帮助开发者快速构建应用。 前端每周清单第 10 期:Firefox53、React VR发布、JS测试技术概述、Microsoft Edge现代DOM树构建及性能之道 为InfoQ中文站特供稿件,首发地址为这里;如需转载,请与InfoQ中文站联系。从属于笔者的 Web 前端入门...
摘要:让你收获满满码个蛋从年月日推送第篇文章一年过去了已累积推文近篇文章,本文为年度精选,共计篇,按照类别整理便于读者主题阅读。本篇文章是今年的最后一篇技术文章,为了让大家在家也能好好学习,特此花了几个小时整理了这些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 让你收获满满! 码个蛋从2017年02月20...
摘要:十开放模式识别项目开放模式识别项目,致力于开发出一套包含图像处理计算机视觉自然语言处理模式识别机器学习和相关领域算法的函数库。 一、开源生物特征识别库 OpenBROpenBR 是一个用来从照片中识别人脸的工具。还支持推算性别与年龄。使用方法:$ br -algorithm FaceRecognition -compare me.jpg you.jpg二、计算机视觉库 OpenCVOpenC...
阅读 5579·2021-11-24 10:25
阅读 2597·2021-11-16 11:44
阅读 3795·2021-10-11 11:09
阅读 3134·2021-09-02 15:41
阅读 3227·2019-08-30 14:14
阅读 2243·2019-08-29 14:10
阅读 2316·2019-08-29 11:03
阅读 1092·2019-08-26 13:47