根据这个:
http://www.codeplex.com/IronPython/Wiki/View.aspx?title=IP20VsCPy25Perf&referringTitle=IronPython%20Performance
IronPython(Python for .Net)在同一台机器上比常规Python(cPython)更快.为什么是这样?我认为编译的C代码总是比等效的CLI字节码快.
Python代码不会被编译为C,Python本身是用C编写的并且解释Python字节码.CIL被编译为机器代码,这就是为什么你在使用IronPython时看到更好的性能.
你是对的,C快得多.这就是为什么在这些结果中CPython的速度是字典的两倍,这几乎是纯粹的C.另一方面,Python代码没有被编译,它被解释了.CPython中的函数调用非常慢.但另一方面:
TryRaiseExcept: +4478.9%
现在,IronPython获得的地方非常糟糕.
然后,有这个PyPy项目,其中一个目标是Just-In-Time编译器.甚至还有Python的子集,称为RPython(Reduced Python),可以静态编译.这当然是一个很大更快.
我不确定你是如何得出IronPython比CPython更快的结论.您发布的链接似乎表明他们擅长不同的事情(如已经指出的例外情况).
徘徊在你的问题"为什么?","哦,真的吗?" "擅长不同的事情"(杰森贝克)是对的.例如,cpython击败IronPython开始时间.
c:\Python26\python.exe Hello.py c:\IronPython\ipy.exe Hello.py
Cpython几乎立即(<100ms)执行一个基本的hello世界,其中IronPython的启动开销为4或5秒.这让我很烦,但还不足以阻止我使用IronPython.