マイクロソフト、「ASP.NET Core in .NET 8」正式版リリース。事前コンパイルにより、高速に起動する軽量なWebアプリケーションを実現
マイクロソフトは、同社の包括的なアプリケーションフレームワーク「.NET 8」の正式リリースと同時に、.NETをベースとしたWebアプリケーションフレームワークの最新版となる「ASP.NET Core in .NET 8」正式版をリリースしました。
ASP.NET CoreがAOTコンパイラに対応
ASP.NET Core in .NET 8の最大の新機能はAOTコンパイルに対応したことでしょう。
C#などの.NETに対応したプログラミング言語をコンパイルし、ネイティブバイナリを生成するAOTコンパイラ(Ahead-of-Timeコンパイラ:事前コンパイラ)は、.NET 7で登場した新機能でした。
.NETには開発時にコードをコンパイルをするプロセスがありますが、これはソースコードを.NET専用の中間言語に変換するものです。アプリケーションの実行時に.NETランタイムのJITコンパイラによって中間言語から動的にネイティブバイナリが生成されることでターゲットマシン上でアプリケーションが実行されます。
AOTコンパイラは、このネイティブバイナリの生成を開発時に行えるコンパイラです。アプリケーション実行時には生成済みのネイティブバイナリを実行することで、高速に起動し、少ないメモリや低いコンピューティングパワーでも高速に実行可能な軽量なアプリケーションにできる利点があります。
.NET 7ではWindows、macOS、LinuxのOSでユーザーインターフェイスを持たないコンソールアプリの生成にのみ対応していましたが、.NET 8でASP.NET CoreによるWebアプリケーションのコンパイルにも対応するようになりました。
下記はマイクロソフトによるベンチマークの結果です。緑のマーカーがトリミングされたASP.NET Coreアプリケーション、黄色のマーカーが通常のASP.NET Coreアプリケーション、そしてオレンジのマーカーがAOTコンパイルされたASP.NET Coreアプリケーションを示しています。
アプリケーションのサイズ、消費メモリ、起動時間のいずれもAOTコンパイルされたASP.NET Coreアプリケーションが明確に優れていることが示されました。
ただしあらゆるASP.NET CoreアプリケーションがAOTコンパイラでネイティブバイナリ化できるわけではなく、MVC、Blazor Server、SignalR、Authengication、Session、SPAなどの機能は現時点でサポートされていません。
またAOTコンパイラに対応させるためのテンプレートが用意されています。
あわせて読みたい
マイクロソフト、「.NET 8」正式リリース、2年ぶりのLTS版。Dynamic PGOによる最適化コンパイル、事前コンパイルのバイナリサイズが半分など、さらなる高速化が前進
≪前の記事
ゲーム業界のデータベース事情。大量のシャーディングで複雑化する負荷分散、メンテナンスで止めないとスケールアップ・ダウンができないなどの課題。解決方法は?[PR]