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。

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 具有運行速 度快、執行性能好的特點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM