.NET6とBlazorのコンパイル

.NET6にてBlazor WebAssembyにAOTコンパイル、事前コンパイルがサポートされました。これにより直接.NETコードを直接 Blazor WebAssemby にコンパイルできます。
これにより.NET6以前は.NET中間言語インタープリタを使用して実行されていた時に比べAOTコンパイルによってパフォーマンスの向上が期待されます。

.NET中間言語インタープリタ を使用して実行されていた時は通常の.NETランタイムを使用していたため実行速度が遅くなっていました。
しかしデメリットとしてアプリのサイズが大きくなります。

AOTを有効化

通常設定のままではAOTは有効化されないため、まずはAOTを有効にする必要があります。
AOTを使用するために必要なworkroadをインストールします。下記のコマンドを実行してください。

dotnet workload install wasm-tools

次にプロジェクトにAOTを有効にします。
Blazor WebAssembyのプロジェクトから、<プロジェクト>を右クリックで選択し、[プロパティ]を選択します。
開いたプロジェクトのプロパティから[ビルド] – [全般] – [Ahead-of-time(AOT) compilation]のチェックボックスにチェックを入れます。


これでAOTを有効化できました。

AOTの有無による表示速度差

Blazor WebAssembyにAOTを有効化するとどれくらい速度の違いが出るかの確認を以下に記します。

項目AOTコンパイルありAOTコンパイルなし
速度1439ms1931ms

私が試したプログラムでは約0.5秒の速度短縮になりました。
処理速度の短縮具合はプログラムによって異なることが考えられるため様々なもので試してみたいことと、
.NET MAUI Blazor Appとの速度差がどのような結果になるかというのも機会があれば記事にしていきたいと思います。

Webアプリの開発だと React / Vue / Angular が上がることが多いと思いますが、主に.NETでの開発経験が多い私にとっては、このBlazor WebAssembyの発展も気になるところであります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA