为什么IronPython比官方Python解释器更快

时间:2009-02-02 20:21:28

标签: python performance ironpython

根据这个:

http://www.codeplex.com/IronPython/Wiki/View.aspx?title=IP20VsCPy25Perf&referringTitle=IronPython%20Performance

IronPython(Python for .Net)在同一台机器上比常规Python(cPython)更快。为什么是这样?我认为编译的C代码总是比等效的CLI字节码快。

5 个答案:

答案 0 :(得分:40)

Python代码不会被编译为C,Python本身是用C编写的并且解释Python字节码。 CIL被编译为机器代码,这就是为什么你在使用IronPython时看到更好的性能。

答案 1 :(得分:8)

你是对的,C快得多。这就是为什么在这些结果中CPython的速度是字典的两倍,这几乎是纯粹的C.另一方面,Python代码没有被编译,它被解释了。 CPython中的函数调用非常慢。 但另一方面:

TryRaiseExcept:  +4478.9%

现在,IronPython获得的地方非常糟糕。

然后,就有了这个PyPy项目,其中一个目标是Just-In-Time编译器。甚至还有Python的子集,称为RPython(Reduced Python),可以静态编译。当然,很多更快。

答案 2 :(得分:5)

我不确定你是如何得出IronPython比CPython更快的结论。您发布的链接似乎表明他们擅长不同的事情(如已经指出的例外情况)。

答案 3 :(得分:5)

撇开你的问题“为什么?”,“哦,真的吗?” “擅长不同的事情”(杰森贝克)是对的。例如,cpython击败IronPython开始时间。

c:\Python26\python.exe Hello.py
c:\IronPython\ipy.exe Hello.py

Cpython几乎立即(<100ms)执行一个基本的hello世界,其中IronPython的启动开销为4或5秒。这让我很烦,但还不足以阻止我使用IronPython。

答案 4 :(得分:3)

可以通过您链接到的页面上的这种表示法来解释:

  

由于动态中的站点缓存   语言运行时,IronPython执行   更好的PyStone传球比   默认值