簡體   English   中英

為什么IronPython比官方Python解釋器更快

[英]Why is IronPython faster than the Official Python Interpreter

根據這個:

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。

可以通過您鏈接到的頁面上的這種表示法來解釋:

由於動態語言運行時中的站點緩存,IronPython在更多PyStone傳遞時的性能優於默認值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM