2011-01-10 177 views
1

Release IS NOT Debug: 64bit Optimizations and C# Method Inlining in Release Build Call StacksCLR語言優化。語言編譯器VS JIT編譯器

斯科特Haselman說:「最託管代碼的優化是由JIT編譯器,而不是語言的編譯器來完成。」在上面的帖子。我認爲,'JIT編譯時間'看起來像'運行時間',所以JIT編譯時優化可以使程序變慢。但他說這是相反的。你知道爲什麼CLR優化是這樣的嗎?

+0

我真的不明白問題是什麼。你問是否使用像NGEN這樣的東西提前編譯爲本地圖像,因此繞過JITer實際上可以讓你的應用程序運行速度更慢?還是你問JITer是否在做其工作(優化)實際上使程序運行速度變慢? – 2011-01-10 08:44:40

回答

0

所以是的,速度較慢,速度也較快。 CLR函數的初始運行將比本地例程慢,因爲JIT編譯器需要時間將函數編譯爲機器代碼。然而,在後續運行中,代碼實際上可能會更快,因爲JIT編譯器比AOT(提前)編譯器更瞭解應用程序。

例如,JIT編譯器可以在支持的處理器上啓用SSE擴展。