見出し画像

Why Flutter Uses Dart?を読んで分からなかったコトバをまとめました。

元記事はこちらです。

この記事を読む過程で、情弱な私が理解できなかったところをメモしておきます。一緒に読んでいただければと思います。

AOTとJIT

AOTコンパイラ

Ahead Of Timeのことです。日本語だと事前コンパイラと呼ばれ、その名の通りにアプリケーション実行前にコンパイルするものを指します。Javaのバイトコードも同じですね。事前にコンパイルするため、実行時速度は早いですが、コンパイル(ビルド)に時間がかかるため、開発中はtwitterがはかどります。

JITコンパイラ

Just In Timeのことです。日本語だと実行時コンパイラと呼ばれます。DartのHot Reloadは、JITコンパイラを採用しているために実現されるものです。ただし、その場で実行されるため、パフォーマンスに影響が出る場合があります。

Dartの場合

元記事には以下のような記述があります。

Dart is one of very few languages that is well suited to being compiled both AOT and JIT. Supporting both kinds of compilation provides significant advantages to Dart and (especially) Flutter.

DartはAOTとJITの両方をサポートしているため、特にFlutterでは大きなメリットが享受できます。仕組みまでは理解できませんでしたが、Dartが強力であることだけは理解したつもりです。

マルチスレッド

マルチスレッドをサポートしたプログラム言語では、通常Preemption(プリエンプション)と呼ばれるスレッドの一時停止処理を行なっています。
一方、DartではIsolateと呼ばれる別のアプローチを使っています。

Isolate

こちらの記事がわかりやすかったです。

スレッド同様に並行処理が実現できるが、メモリ領域は独立しているので、スレッドのように互いに直接干渉することはない、とのことです。Isolate間でやりとりが必要な場合は、メッセージ通信で行われます。





この記事が気に入ったらサポートをしてみませんか?