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:開發
Dart 是少數同時支持 JIT(Just In Time,即時編譯)和 AOT(Ahead of Time,運行前編譯)的語言之一。部署
JIT 在運行時即時編譯,在開發週期中使用,能夠動態下發和執行代碼,開發測試效率高,但運行速度和執行性能則會由於運行時即時編譯受到影響。產品
總結來說,在開發期使用 JIT 編譯,能夠縮短產品的開發週期。Flutter 最受歡迎的功能之一熱重載,正是基於此特 性。編譯
而在發佈期使用 AOT,就不須要像 React Native 那樣在跨平臺 JavaScript 代碼和原生 Android、iOS 代碼之間創建低效的方法調用映射關係。效率
因此說,Dart 具備運行速 度快、執行性能好的特色。程序