既然有這麼多的JIT實現,那麼每個JIT都會發出本機代碼。那麼爲什麼沒有人做出像JIT2EXE這樣的工具來將本地代碼保存到本機可執行文件?將JIT轉換爲EXE?
回答
這個問題有點含糊,因爲你沒有清楚地說明你正在談論的是什麼語言,在我的.NET領域,.NET可執行文件在運行時爲了加速加載時間而預先拼版。代碼可以通過稱爲NGEN的過程生成爲本機代碼,該過程採用.NET IL代碼並在處理器可以理解的二進制過程中將其轉換。通常,NGEN代碼存儲在'C:\ Windows \ Assembly \ NativeImages_ {版本}'文件夾中,其中版本代表.NET Framework版本。看看Jeffrey Richter的CodeGuru,關於NGEN,以及它可以在哪裏使用以及何時使用它。在這裏看看Codeproject關於本文的統計/比較本地二進制代碼,還有here以及Daniel Pistelli。
你的意思是說像ngen?
事實上,有很多Java(或其他解釋語言)到本地編譯器。曾聽說過gcj?
也有編譯爲本地代碼的某些關鍵部分,並保持其他的字節碼,以節省空間混合的編譯器。哈里薩在十多年前做了這件事。
的Java代碼先編譯爲C代碼,然後將其傳遞到普通的C編譯器,以利用其優化的優勢。這樣的代碼可能會變得非常快。
當然,這種提前編譯(與即時編譯相對)取消了字節碼形式的某些優點(特別是可移植性和低內存佔用),所以真實世界的應用程序相當於罕見。
可移植性沒有受損,因爲您仍然有字節碼,並且如果考慮到JRE佔用空間,整體佔用空間實際上會下降:http://www.excelsior-usa.com/java-download-size.html – 2012-02-15 05:22:13
你在你的問題什麼狀態(「沒有人做出像JIT2EXE工具」)是不完全正確:
- 1. 將BAT轉換爲EXE
- 2. 將html + js轉換爲exe
- 3. 將exe轉換爲apk
- 4. 將.Hta轉換爲.Exe
- 5. 將PyGTK轉換爲exe
- 6. 將xap轉換爲exe
- 7. 將HTML + JavaScript轉換爲exe
- 8. 將py轉換爲exe
- 9. 將.pyw轉換爲.exe
- 10. 將.py文件轉換爲exe
- 11. 將pdb轉換爲exe文件?
- 12. 如何將java項目轉換爲.exe?
- 13. 將python3.2遊戲轉換爲exe與cx_Freeeze
- 14. 使用py2exe將python轉換爲exe
- 15. 將.exe項目轉換爲類庫
- 16. 如何將CLR轉換爲EXE
- 17. 如何將php腳本轉換爲exe?
- 18. 通過anaconda將python轉換爲exe
- 19. 將VBA腳本轉換爲.exe文件
- 20. 將EXE文件轉換爲XML
- 21. 如何將python 3.5轉換爲exe?
- 22. 將C++項目從.exe轉換爲.dll?
- 23. 使用dicom2.exe將DICOM轉換爲PNG
- 24. 將.exe轉換爲注入式DLL
- 25. 在Perl中將.exe轉換爲.pl?
- 26. 將Perl + shell腳本轉換爲EXE
- 27. 如何將fla轉換爲exe?
- 28. Groovy:如何將.groovy轉換爲.exe
- 29. Jsmooth如何將.jar轉換爲.exe?
- 30. 如何將.jar轉換爲.exe?
什麼樣的JIT的?這是非常籠統和模糊的。 – skaffman 2010-02-27 12:25:58