Dart的JIT 與 AOT

JIT:Just In Time
AOT:Ahead of Time
含義:
目前,程序主要有兩種運行方式:靜態編譯與動態解釋。
靜態編譯的程序在執行前所有被翻譯爲機器碼,一般將這種類型稱爲AOT (Ahead of time compiler)即 「提早編譯」;如C、C++。性能

判斷標準是:程序執行前是否須要編譯。測試


而解釋執行的則是一句一句邊翻譯邊運行,一般將這種類型稱爲JIT(Just-in-time)即「即時編譯」。如JavaScript、Python。翻譯

程序運行的方式和具體的語言沒有強制關係,好比Python,既能夠JIT,也能夠AOT。ip

Dart中的JIT和AOT:開發

  1. Dart在開發過程當中使用JIT,所以每次改都不須要再編譯成字節碼。節省了大量時間。
  2. 在部署中使用AOT生成高效的ARM代碼以保證高效的性能。

Dart 是少數同時支持 JIT(Just In Time,即時編譯)和 AOT(Ahead of Time,運行前編譯)的語言之一。部署

JIT 在運行時即時編譯,在開發週期中使用,能夠動態下發和執行代碼,開發測試效率高,但運行速度和執行性能則會由於運行時即時編譯受到影響。產品

總結來說,在開發期使用 JIT 編譯,能夠縮短產品的開發週期。Flutter 最受歡迎的功能之一熱重載,正是基於此特 性。編譯

而在發佈期使用 AOT,就不須要像 React Native 那樣在跨平臺 JavaScript 代碼和原生 Android、iOS 代碼之間創建低效的方法調用映射關係。效率

因此說,Dart 具備運行速 度快、執行性能好的特色。程序

相關文章
相關標籤/搜索