我在這裏錯過了一些基本的東西。從源語言編譯成字節碼(Java)或中間語言(.NET),然後從JVM或CLR內部運行它們的用法是什麼?爲什麼我們需要/使用託管代碼(通過本機)?
有性能的使用託管代碼(無論多小或大)的下降,但有什麼好處?我知道存在垃圾回收和內存管理,但即使將源代碼直接編譯爲本地代碼而不需要此中間級別,也不是更好嗎?
另外(我在這裏添加它,因爲它直接與問題相關) - 顯然Windows 10通用應用程序編譯爲.NET Native編譯爲本機機器碼。我很好奇爲什麼在所有的.NET程序中都沒有這樣做。
無論如何,你已經實現了虛擬機,字節碼的一大優勢就是能夠運行它。這在Windows中是有限的,因爲你只是針對一些體系結構(原子,x86等)。 – Sammy
.NET Native並不是簡單地「編譯爲機器代碼」,它本質上並不需要提早開始,所以它不需要稍後再被激怒。這仍然轉換爲與jit期間相同的機器碼;你的過分簡單化讓它聽起來像你認爲它奇蹟般地變成了原生的C++。 – Krythic
@Krythic我明白了。但是這些不是我選擇的單詞,我從我剛纔提到的鏈接引用([.NET Native](https://msdn.microsoft.com/en-us/vstudio/dotnetnative.aspx))。 –