マイクロソフト、「.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人材需要で学部新設 指導者不足が課題
IT関連
2021-05-26 07:14
医療・福祉サービスの和光会、クラウド経営管理システムを導入–経営管理業務のDX推進
IT関連
2024-04-25 21:36
アドビ、アプリのデザインを刷新する「Spectrum 2」を発表
IT関連
2023-12-14 04:05
「戦艦大和の主砲を作った機械」に怒涛の寄付 「艦これ」運営も呼び掛け、クラファン1日で1億円突破
ネットトピック
2021-08-05 02:54
AIがマンガのコマ・キャラの顔を自動検出 「クリスタ」開発元が無料のWebツール
イラスト・デザイン
2021-04-03 11:00
実寸大、煉獄杏寿郎の「日輪刀」をバンダイが発売 セリフや効果音収録 劇中の「うまい!」を全て収録した「うまいモード」も
くらテク
2021-01-16 12:29
日立製作所、大阪・通天閣の屋外広告を9月に再開
IT関連
2023-07-28 21:16
2021年は、突貫工事の後始末へ–コンタクトセンター基盤のベンダー座談会(前編)
IT関連
2021-02-01 06:57
課題を個人に委ねない–日立ソリューションズ、女性社員の健康を支える新サービス
IT関連
2023-03-11 22:58
医師が処方する保険適用「ニコチン依存症治療アプリ」など研究開発のCureAppが21億円調達
ヘルステック
2021-03-13 16:06
NTTデータ経営研究所ら、高知県のゆず農園でローカル5Gを用いたスマート農業実証を開始
IT関連
2023-01-12 03:46
EUが「スタートアップに優しい法案」を加盟国に今週提案、何カ国が署名するのか?
その他
2021-03-19 17:40
アドビのページ記述言語「PostScript」、ソースコードが博物館で公開
IT関連
2022-12-07 18:31
カスタマーデータプラットフォームのLexerがグローバル展開に向け27億円調達
ソフトウェア
2021-02-28 03:21