使用Python 通常在乎的是它的开发效率,而不是运行性能。 但如果通过很简单的方法可以测试出n种不同的写法之间的性能差异,这个过程本身也是一种乐趣。
python 自带了timeit 模块,可以在代码中调用,也可以在Python 命令行调用。
>>> import timeit
>>> timeit.timeit('1+1', number=1000000)
0.01681208610534668
$ python -m timeit '"".join(" \t foo \n bar ".split())'
1000000 loops, best of 3: 0.319 usec per loop
$ python -m timeit -s 'import re' 're.sub(r"\s+", "", " \t foo \n bar ")'
100000 loops, best of 3: 1.95 usec per loop
$ python -m timeit -n 10000000 -s 'import re; e = re.compile(r"\s+")' 'e.sub("", " \t foo \n bar ")'
10000000 loops, best of 3: 1.2 usec per loop
通过第二个例子,我们就可以知道去除字符串空格更好的方法是 ''.join(stri.split())
注意例子中的-s 'xxxx' 只会被执行一次。 可理解s 为 setup.
参考文档