5
A
回答
4
從annakata的回答是:(!希望)
託管代碼不會被編譯成機器碼,而是這是一臺機器上的解釋和執行一些 服務,因此內運行的中間語言 安全的框架,處理危險的東西,如內存和 線程爲你。在現代用法中,這通常意味着.NET,但並不是必須的。
非託管代碼被編譯爲機器代碼,因此直接由OS執行。因此它有能力去做 破壞/強大的事情託管代碼沒有。這是一切 如何用來工作,所以通常它與舊的東西一樣的.dll
現在,什麼是引擎蓋下回事關聯? 託管與非託管是全部關於內存。
在託管代碼中,代碼本身不直接處理內存。它向代表代碼的運行時提供指令。這樣,可以阻止不安全或非法操作,並且代碼在半沙箱中運行。託管語言可以並經常具有非託管代碼 - 這就是計算的本質。
可視化內存就像一個巨大的停車場。託管語言和非託管語言之間的區別如下所示:
在託管語言中,您走向代理並解釋您希望停放10輛汽車。你不知道他們停在哪裏其中,但你知道,僕人會很樂意隨時爲你找回他們。你也不會去決定他們停在哪裏 - 你只需告訴代客他們需要停放。
在非託管語言中,選擇這些點是您的工作。你可以開車進入其他車輛,停在殘疾人的地方,無論 - 這給你更好的表現(你不必經常中轉指示給僕人)但是你也可以犯很多愚蠢/危險的錯誤。
相關問題
- 1. 託管代碼在非託管
- 2. 什麼是託管代碼和非託管代碼?
- 3. 如何使用託管代碼從非託管代碼?
- 4. 從非託管代碼獲取值到託管代碼
- 5. 在調試託管代碼時調試非託管代碼
- 6. .NET中的託管代碼和非託管代碼
- 7. 更改託管代碼中非託管代碼的內存值
- 8. 使用託管代碼中的非託管代碼
- 9. 調試託管代碼和非託管代碼
- 10. 通多 - 從託管代碼維數組非託管代碼
- 11. 從託管代碼調用非託管代碼的性能
- 12. C++ cli從非託管代碼調用託管代碼
- 13. 將非託管C++代碼編譯爲託管代碼
- 14. 從託管代碼調用非託管代碼
- 15. C++/cli將託管代碼傳遞給非託管代碼
- 16. 從非託管代碼調用託管代碼
- 17. 允許託管環境中的託管代碼回撥非託管代碼
- 18. 非託管dll代碼
- 19. 從非託管代碼
- 20. MEF和非託管代碼
- 21. 在非託管C++代碼
- 22. 託管代碼和非託管代碼之間的調用代碼
- 23. 半非託管代碼與c#
- 24. 與LPTSTR(wchar_t的*)從非託管代碼
- 25. CLR SP與非託管代碼
- 26. 與來自託管代碼
- 27. 託管Java代碼
- 28. C++託管代碼
- 29. 託管源代碼管理?
- 30. 自託管代碼管理
這是關於垃圾收集的一切,使得託管代碼與衆不同的地方在於GC可以找回代碼使用的對象引用。即時編譯器在此方案中起着非常關鍵的作用,除了將MSIL編譯爲機器代碼(就像C編譯器用C代碼所做的那樣),它還*生成一個表,告訴GC在哪裏查找對象引用。該表是不同的,非託管代碼不能提供該表。 –