我的公司內部軟件項目主要用Java完成的主要原因是Java程序獨立於主機架構,因此具有很大的靈活性將申請分發給國際部門。用於獨立於系統的程序分發的動態C++編譯器
我們需要開始一個新的應用程序,它處理大量的數字,我想使用我們可用的C++庫和代碼(我也更喜歡C++)。
現在我不知道爲什麼沒有一些軟件,其作用類似於Java JIT編譯器在以下意義:
- 進行編譯,直至這樣intermediate representation LLVM IR
- 分發包裝中間表示到客戶端計算機
- 編譯在本地機器上一次
- 執行
這結合了Java和C++幾個好處:
- 優化本地計算機的體系結構(如JIT一樣)
- 分發操作系統軟件的獨立版本(Java)的
- 執行的程序之間沒有虛擬機(C++)
是什麼原因這樣的事情沒有完成?
表現主要。直接在目標平臺上編譯的C++通常比依賴中間語言(例如Java和.NET家族)的語言要快得多,因爲編譯更高效,並且在運行時沒有任何所需的解釋。對於課程來說,它是一匹馬 - 人們使用C++來處理O/S級別的東西和性能關鍵的事情,比如遊戲,並且他們使用Java/.NET來處理LOB應用程序等等,因爲內存管理更簡單,還有更多的語言功能,您可以瞄準多個平臺。換句話說,你使用正確的工具來完成這項工作。 – ADyson
@ADyson的想法是在目標平臺上編譯。 – Beginner
我不知道有關編譯器的大量數據,但我強烈懷疑中間編譯步驟仍然會以性能成本計算。編譯特定目標允許編譯器優化可利用目標平臺功能的源代碼。如果你編譯成一個通用的中介,那麼很可能會失去微妙的一面。 – ADyson