マイクロソフト、「.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
グーグル「Gemini」とは–新しいマルチモーダル生成AIモデルを知る
IT関連
2023-12-10 01:20
ランサムウェアで注目されるサイバーレジリエンスとバックアップ/リカバリー
IT関連
2023-06-15 23:09
SAP ECCからS/4HANAへの移行進む、想定移行費用は高額化–電通総研調べ
IT関連
2024-12-07 09:38
LIXIL、SAPによる国内事業の基幹システムを標準化
IT関連
2021-06-24 09:14
NVIDIAとデル、ヴイエムウェアがAI時代のデータセンターソリューションで提携
IT関連
2022-09-01 09:34
三菱商事ロジスティクス、荷主と船会社をつなぐ物流ウェブマッチングを開始
IT関連
2023-10-05 22:12
改正電帳法へ具体的に取り組む企業は全体の約3割–ウイングアーク1st
IT関連
2022-03-24 16:01
TikTokで聴くキャッチーなヒット曲は偽情報キャンペーンの操作とほぼ同じもの
ネットサービス
2021-04-27 16:52
Gaudiyが体験ミュージアム「約束のネバーランド」GFハウス脱獄編でNFTを活用したキャンペーンを実施
ブロックチェーン
2021-07-09 02:06
JR東、中国SNS「Weibo」で運行情報を発信 アフターコロナ見据え
企業・業界動向
2021-03-26 16:53
Puppeteer、テスト自動化の次世代標準「WebDriver BiDi」に対応開始。Firefoxもサポートへ
Chrome
2024-01-15 10:45
モバイルバッテリーが月額1100円で借り放題 シェアリングサービスのChargeSPOTが実験
企業・業界動向
2021-07-03 16:14
グーグル、「Chrome」にメモリーとバッテリーを節約する新機能を追加へ
IT関連
2022-12-10 21:47
AI契約管理システム「LegalForceキャビネ」にフラグ付け機能–リスクある契約の把握を容易に
IT関連
2022-02-26 15:40