マイクロソフト、「.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
メタバースの現在地–調査結果に見る市場規模、主要ベンダー、展望
IT関連
2022-11-05 05:40
中堅SIerの針路–自社クラウド基盤に載せるサービスの品ぞろえ広げるアイネット
IT関連
2025-03-06 18:35
6月施行の「改正電気通信事業法」、新たな「クッキー規制」とは–IIJが解説
IT関連
2023-06-02 13:24
「Outlook for Windows」の予定表共有が改善–マイクロソフト:「97年以来最も大きな変更」
IT関連
2021-05-31 13:11
日立製作所、JP1とJP1 Cloud Serviceを強化–DX推進でIT運用を変革
IT関連
2022-01-28 17:56
Alphabet傘下の気球ネット企業Loon、解散
企業・業界動向
2021-01-23 03:01
ベゾス氏退任後のアマゾンはどうなる?–AWSによる革新、ジャシー新CEOが直面する課題
IT関連
2021-02-09 13:36
ANAグループ、社内コミュニケーションアプリを開発–従業員エンゲージメントを向上
IT関連
2024-10-24 00:17
応用地質グループ、AIでコンクリート構造物の変状点検を効率化
IT関連
2024-10-18 01:04
「macOS」の「ステージマネージャ」で画面領域を有効利用する方法
IT関連
2023-12-23 11:55
東芝のトップが語るデジタル事業の現在–先端開発や事例の数々を披露
IT関連
2023-12-01 18:56
ARメイクアプリ「YouCam メイク」がGoogleとタッグ、検索結果ページで40以上のブランドのメイク体験が可能に
VR / AR / MR
2021-07-01 20:09
iOSアプリ内でそれぞれのサブスクの管理や返金が可能に、アップルがStoreKit 2を発表
ソフトウェア
2021-06-12 23:31
マイクロソフト、「Windows 10 21H2」の最初のテストビルドを公開
IT関連
2021-07-19 13:21