python性能调优工具_python之性能优化

性能优化 (Performance tuning) 是一件多姿多彩的事情。Python

是一种解释性语言并不表示你不应该担心代码优化。但也不必太担心。

代码优化是否必要

由于代码优化过程中存在太多的不明确因素,以至于你很难清楚该从何入手。

让我们从这里开始:你真的确信你要这样做吗?

你的代码真的那么差吗?值得花时间去优化它吗?在你的应用程序的生命周期中,与花费在等待一个远程数据库服务器,或是等待用户输入相比,运行这段代码将花费多少时间?

第二,你确信已经完成代码编写了吗?

过早的优化就像是在一块半生不熟的蛋糕上撒糖霜。你花费了几小时、几天(或更长)

时间来优化你的代码以提高性能,却发现它不能完成你希望它做的工作。那是浪费时间。

这并不是说代码优化毫无用处,但是你需要检查一下整个系统,并且确定把时间花在这上面是值得的。在优化代码上每花费一分钟,就意味着你少了增加新功能、编写文档或者陪你的孩子玩或者编写单元测试的一分钟。

哦,是的,单元测试。不必我说,在开始性能优化之前你需要一个完全的单元测试集。你需要的最后一件事情就是在乱动你的算法时引入新的问题。

谨记着这些忠告。

使用timeit模块

你需要知道的最重要问题是,决不要自己编写计时函数。为一个很短的代码计时都很复杂。

Python 具备一个叫做 timeit

的完美计时工具。

import timeit

t=timeit.Timer("soundex.soundex('xyz')", "import soundex") //导入语句以及计时语句

t.timeit(n) //运行n次的耗时,缺省是100万次

t.repeat(3, 200000) //每次测试运行200000次,运行3次测试的耗时

优化正则表达式

就检查一个字符串而言,正则表达式几乎永远不是最好的答案,而且应该被尽可能避开。 这不仅仅是基于性能考虑,而是因为差错和维护都很困难,当然性能也是个原因。

优化字典查找

优化列表操作

优化字符串操作

小结

我希望你有很好的见解:性能并不是一切。 你在优化方面的努力应该与程序的可读性和可维护性相平衡。

如果你要在正则表达式和编写循环间抉择,选择正则表达式。 正则表达式因其是以 C 语言编译的可以本能地在你的计算机上运行,你的循环却以 Python 编写需要通过 Python

解释器运行。

如果你需要在正则表达式和字符串方法间抉择,选择字符串方法。 它们都是以 C 编译的,所以选取简单的。

字典查找的通常应用很快,但是 string.maketrans 之类的特殊函数和 isalpha() 之类的字符串方法更快。如果 Python 有定制方法给你用,就使它吧!

别太聪明了。 有时一些明显的算法是最快的。

不要太迷恋性能优化,性能并不是一切。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值