[转帖]Runtime, Engine, VM 的区别是什么?
生活随笔
收集整理的這篇文章主要介紹了
[转帖]Runtime, Engine, VM 的区别是什么?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這就是個WiFi和WLAN關系的問題嘛。
Runtime是指用于支持程序運行時的組件,它可以是個Engine和/或VM。
VM是一種系統抽象,它提供代碼執行所需的API環境。Engine是一種處理抽象,它負責將代碼變為底層可執行代碼。
一個運行時,可以是VM和Engine中的一種,也可以同時是兩者。當然也可以兩者都不是。
以題主的例子而言,V8是JS的Engine,但同時它也提供了環境,所以它也是VM。
JVM是Java的VM,但它也負責代碼的轉換,所以它也是Engine。
之所以習慣上JS的稱Engine,是因為JS最初并沒有明確的VM概念,也就是說它并沒有明確地定義一套環境。而Java的稱VM,也是因為早期JVM要強調它提供了環境,而不光光用來解釋代碼。
VC++ Runtime,它提供了API環境,但它并不抽象系統,也不翻譯代碼,所以它是另一種Runtime。類似的還有VB Runtime和MFC。
.Net Framework,它提供了API,抽象了系統,翻譯代碼,之所以叫它Framework大概是為了顯得大氣。
作者:沈萬馬
鏈接:https://www.zhihu.com/question/34634496/answer/59537636
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
轉載于:https://www.cnblogs.com/jinanxiaolaohu/p/10648736.html
總結
以上是生活随笔為你收集整理的[转帖]Runtime, Engine, VM 的区别是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【题解】错排问题
- 下一篇: Windows 下面 redis 发布为