从Python 2.4移植旧应用程序

时间:2010-08-15 02:00:27

标签: python performance

我有一堆用Python 2.4编写的应用程序。我想将它们移植到更新版本的解释器上。假设我不需要语法功能,但我非常关注性能。那么哪个上层python版本最快(最优化) - 2.4或2.5或2.6或2.7?

非常感谢效果比较文章(网址)。

由于

1 个答案:

答案 0 :(得分:4)

通常,2.*行的每个连续版本都比前一版本快一点 - 因为优化和微调是许多贡献者的高优先级。

我不知道有关性能配置的任何文章:我的建议是通过分析来确定你的特定应用程序的“热点”(但是你肯定已经这样做了,如果你“非常关注性能”)并将它们转换为微基准测试,以便在所有四个版本的timeit上运行。

例如,假设''.join中等长度的短字符串列表已知是应用程序中的热点。然后,我们可以测量:

$ python2.4 -mtimeit -s'x=[str(i) for i in range(99)]' '"".join(x)'
100000 loops, best of 3: 2.87 usec per loop
$ python2.5 -mtimeit -s'x=[str(i) for i in range(99)]' '"".join(x)'
100000 loops, best of 3: 3.02 usec per loop
$ python2.6 -mtimeit -s'x=[str(i) for i in range(99)]' '"".join(x)'
100000 loops, best of 3: 2.7 usec per loop
$ python2.7 -mtimeit -s'x=[str(i) for i in range(99)]' '"".join(x)'
100000 loops, best of 3: 2.12 usec per loop
在这种情况下,python2.5不遵循其他版本的总体趋势(重复测量证实它在这个微基准测试中比python2.4慢约5%),2.7比预期快得多(高达26%+更快)比2.4),但这是针对特定的构建和平台(当然还有特定的微基准测试),这就是的基准和平台/构建上执行此类测量的重要性>你的具体兴趣(如果你愿意接受一般的考虑,后来的构建往往会更快,那么你并不是真的“非常”关注性能; - )。