1. 程式人生 > >晚期(執行期)優化——Java與C/C++編譯器比較

晚期(執行期)優化——Java與C/C++編譯器比較

文章目錄


單從編譯和執行上講為什麼說C/C++編譯器比Java編譯器快?

  1. 因為Java中的即時編譯器是要佔用使用者程式的執行時間的。
  2. Java是一門型別安全的語言,會進行很多的檢查行為。如陣列是否越界、檢查空指標等
  3. 雖然java中沒有virtual關鍵子,但進行多型選擇的頻率遠遠大於C/C++。
  4. java是一門動態擴充套件的語言,執行是載入新的的類會改變程式型別的繼承結構,所以一些激進優化不得不注意撤銷
  5. Java的記憶體是在堆上分配的,而C/C++有多種記憶體分配方式。另外,C/C++的記憶體回收主要是使用者程式程式碼實現的,Java虛擬機器的記憶體收集機制自然趕不上。

不過,雖然這方面java慢了,但是它換取了開發效率啊!所以從總體上(整個專案開發),java與C++誰快誰慢還不一定哦!