マイクロソフト、「.NET 8」正式リリース、2年ぶりのLTS版。Dynamic PGOによる最適化コンパイル、事前コンパイルのバイナリサイズが半分など、さらなる高速化が前進

今回は「マイクロソフト、「.NET 8」正式リリース、2年ぶりのLTS版。Dynamic PGOによる最適化コンパイル、事前コンパイルのバイナリサイズが半分など、さらなる高速化が前進」についてご紹介します。

関連ワード (実現、有効化、能力等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


マイクロソフトは同社の包括的なアプリケーションフレームワーク「.NET 8」の正式リリースを発表しました。

fig

Announcing the availability of .NET 8, the latest LTS version of one of the world’s leading development platforms.

With this release, .NET reshapes the way we build intelligent, cloud-native, applications and high-traffic services that scale on demand. https://t.co/WqZkUpJOhN pic.twitter.com/NmARKBd78q

— .NET (@dotnet) November 14, 2023

.NETは、マイクロソフトがWindows用のアプリケーションフレームワークとして開発してきた「.NET Framework」と、オープンソースとして開発を開始した「.NET Core」フレームワーク、モバイル向けの「Xamarin」を統合し、デスクトップアプリケーションからモバイルアプリケーション、クラウドネイティブ、ゲーム、IoTなど、あらゆるアプリケーションを包括的にカバーするフレームワークです。

fig

.NETは1年ごとにメジャーバージョンアップが行われ、2年ごとに登場する偶数バージョンがLTS(Long Term Support:長期サポート)版となります。

今回リリースされた.NET 8は偶数バージョンであるためLTS版となり、長期的にサポートが提供される安定したバージョンとなります。

より高速化のためDynamic PGO、バイナリサイズが半分に

日本時間11月15日に行われたオンラインイベント「.NET Conf 2023」では、.最初のNET 8の特長として性能向上が示されました。

.NET 7と比較してJSON APIのシナリオで約18%、より現実的なアプリケーションに近いFortunesベンチマークで24%高速になっています。

fig

.NET 8の主な新機能は以下です。

Dynamic PGOがデフォルトで有効に
.NETには以前からコンパイルをするプロセスがありますが、このコンパイルはソースコードを.NET専用の中間言語に変換するものです。.NETランタイムによって実行時にこの中間言語からネイティブバイナリが生成され、ターゲットマシン上でアプリケーションが実行されます。

このネイティブバイナリの生成のため、.NETは動的にバイナリを生成するJITコンパイラを搭載しています。

これまでのJITコンパイラは、起動時に短時間でバイナリを生成することを優先したコンパイラと、実行中何度も呼ばれるメソッドを高速に実行するための最適化されたバイナリを生成するためのコンパイラが搭載され、アプリケーションの起動時と実行中に使い分けられていました。

この2つのコンパイラとその使い分けは、「階層化コンパイル」と呼ばれています。

.NET 8で標準で有効化されるDynamic PGOは、この階層化コンパイルの実行中のコンパイル機能をさらに改善したものです。PGOとは「Profile Guided Optimization」の略で、実行中のアプリケーションのプロファイルを基にしてコンパイルを最適に行い、より高速な実行を実現します。これを実行中に動的に行うのがDynamic PGOです。

.NET 8では階層化コンパイルにこのDynamic PGOを組み込み、デフォルトで有効にすることで、より高速なアプリケーションの実行が期待されます。

AOTコンパイラが生成するバイナリの大きさが約半分に縮小

前バージョンである.NET 7からは、実行時にバイナリを生成するJITコンパイラだけでなく、ソースコードを事前にコンパイルし、ネイティブバイナリを生成するAOTコンパイラ(Ahead of Timeコンパイラ)、もしくはネイティブコンパイラと呼ばれるコンパイラも提供開始されました。

AOTコンパイラを利用することで、あらかじめコンパイル済みのバイナリを実行できるため、少ないメモリ容量と低いプロセッサ能力であっても瞬時に起動し高速に実行可能となります。これはサーバレス環境やIoTデバイスなどでのアプリケーション開発に向いています。

.NET 7で登場したAOTコンパイラは、こうしたニーズに主に対応するもので、Windows、macOS、LinuxのOSでユーザーインターフェイスを持たないコンソールアプリの生成にのみ対応しました。

.NET 8ではこのAOTコンパイラが改善され、生成されるバイナリサイズが約半分程度にまで最適化が進んでいます。また、ASP.NETアプリケーションでも(制限がありつつも)AOTコンパイラが利用可能になっています。

参考:次期「.NET 8」プレビューリリース初公開。ネイティブコンパイラ改善で生成バイナリが約半分に、「Blazor United」登場など

また、ASP.NET Core in .NET 8がAOTコンパイラに対応しました。

参考:マイクロソフト、「ASP.NET Core in .NET 8」正式版リリース。事前コンパイルにより、高速に起動する軽量なWebアプリケーションを実現

Arm64プロセッサでの性能向上
.NET 8ではArmのエンジニアとの協力により、Arm64プラットフォームにおける大幅な性能向上が実現しています。

また、.NET 8リリースと同時に.NET 8をベースにしたWebアプリケーションフレームワーク「ASP.NET Core 8」、クロスプラットフォーム対応のUIフレームワーク「.NET MAUI in .NET 8」もリリースされました。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
SBI証券、オンライン取引システムをAWSに移行–新NISAを契機とした口座数の急増が背景に
IT関連
2024-04-25 11:40
SF作家に聞く「スペキュレイティブ・フィクション」はこのクレイジーな世界で何かを教えてくれるのだろうか?
その他
2021-06-21 18:24
Go言語がGenericsを導入、過去最大の変更となる「Go 1.18」正式版リリース
Go
2022-03-18 12:46
トランプ氏、サイバー攻撃へのクラウド悪用を防ぐための大統領令に署名
IT関連
2021-01-21 10:31
インテル、かつて買収したアルテラを母体とするFPGA部門の分社化を発表、株式上場を目指す
FPGA
2023-10-05 03:10
みらい翻訳、特許翻訳に特化したAI自動翻訳モデルを発売
IT関連
2023-10-20 04:27
「Raspberry Pi」がさらに便利に–有用な機能を追加するアクセサリー3選
IT関連
2023-01-26 17:41
GitHub、ファインチューニングモデルを「Copilot Enterprise」で提供–コード提案をカスタマイズ可能に
IT関連
2024-09-13 19:58
KDDI、VMwareベースのプライベートクラウドをマネージドサービスで提供
IT関連
2021-06-26 11:40
Q&AプラットフォームQuoraで専門知識の収益化が可能に
ネットサービス
2021-08-07 13:00
中国、2025年内に全土のスパコンをつなぐネットワークを構築へ
IT関連
2023-04-21 21:00
生成系AIがビジネスの新時代を切り開く–アクセンチュアが2023年の技術トレンドを予測
IT関連
2023-04-07 05:56
Amazon.com、巣ごもり需要による大幅増収増益で過去最高に
企業・業界動向
2021-02-04 01:16
ビットコインの価値はその周りの「ネットワーク効果」で考えるとよくわかる
ブロックチェーン
2021-06-15 11:58