|
上一篇文章中Aicken為大家介紹了.NET平臺的垃圾回收機制與其對性能的影響,這一篇中將繼續為大家介紹.NET平臺的另一批黑馬—JIT。有關JIT的機制分析
● 機制分析以C#為例,在C#代碼運行前,一般會經過兩次編譯,第一階段是C#代碼向MSIL的編譯,第二階段是IL向本地代碼的編譯。第一階段的編譯成果是生成托管模塊,第二階段的編譯成果是生成本地代碼以供運行,從這里各位同學可以看出,第一階段生成的MSIL是不能直接運行的。必須指出的是JIT在第一次編譯IL后,會修改對應方法相應的內存地址入口,下一次需要執行這個方法時,CLR會直接訪問對應的內存地址,而不會經過JIT了。
以Load()方法為例,假如Load()方法中調用了兩次同類型中的方法:
Void Load(){A.a1("First");A.a1("Second");}
static class A{Public void a1(string str){}
Public void a2(string str){}
Public void a3(string str){}}
NET技術:.Net Discovery系列之-深入理解平臺機制與性能影響 (中),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。