根据这个:
IronPython(Python for .Net)在同一台机器上比常规Python(cPython)更快。为什么是这样?我认为编译的C代码总是比等效的CLI字节码快。
答案 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传球比 默认值