.NET 7 はすでにリリースされており、さまざまなパフォーマンスの改善が行われています

NET-7

.NET 7 を使用すると、ブラウザー、クラウド、デスクトップ、IoT デバイス、およびモバイル プラットフォームにまたがるクロスプラットフォーム アプリケーションを構築できます。

マイクロソフトは、RyuJIT JITコンパイラを搭載したランタイム、API仕様、WPFライブラリ、その他のツールを含む、同社のプラットフォーム「.NET 7」の新バージョンのリリースを発表しました。

さらに、ASP.NET Core 7.0 Web アプリケーション、Entity Framework Core 7.0 ORM レイヤー、WPF 7 (Windows Presentation Foundation) ライブラリ、GUI 開発用 Windows Forms 7 フレームワーク、Orleans プラットフォーム。

.NET 7 の新機能

この新バージョンでは、ベースクラスライブラリ(BCL)が統一され、デスクトップアプリケーション、Webアプリケーション、クラウドプラットフォーム、モバイルアプリケーション、ゲーム、組み込みプログラム、機械学習システムなど、さまざまなアプリケーションタイプで利用できるようになりました。共通のSDK、ランタイム、ライブラリセットを使用して、さまざまな種類のアプリケーションを開発できます。

さらに、アプリケーションを.NET 7互換APIにリンクする機能は、「<TargetFramework>net7.0</TargetFramework>」のように「net7.0」というターゲットフレームワーク定義によって提供されていた点にも留意すべきです。プラットフォーム固有のAPIにリンクするには、ターゲットを指定する際にプラットフォームの種類を指定できます。例えば、「net7.0-android」のように指定します。

また、ARM64アーキテクチャとの互換性が向上したこと、およびx86とARM64アーキテクチャで動作する.NETアプリケーションのパフォーマンスを同等にするための継続的な取り組みも注目に値します。ARM64システムでは、ランタイムL3キャッシュの効率が向上しています。並列スレッドのメモリアクセスを区切るためにLSE命令が使用され、レイテンシが45%削減されます。

このライブラリでは、Vector64、Vector128、Vector256のベクトル型を使用するドライバが追加され、EncodeToUtf8関数とDecodeFromUtf8関数はベクトル命令に基づいて書き直され、パフォーマンスが最大60%向上しました(NarrowUtf16ToAscii関数とGetIndexOfFirstNonAsciiChar関数では、パフォーマンス向上率は35%に達します)。全体として、ARM64プラットフォームでのテスト合格速度は10%から60%向上しました。

さらに、Linux サポートの改善も注目に値する。例えば、 Ubuntu 22.04 の標準リポジトリに .NET 6 パッケージが追加されたことや、.NET ベースのアプリケーションを搭載したコンテナを迅速にデプロイするための、最適化されたコンパクトですぐに使用できる Docker イメージが提供されたことなどが挙げられる。

.NET アップグレード アシスタントは、古いアプリケーションを.NET 6 または .NET 7 ブランチに移行しやすくするために導入されました。新バージョンでは、ASP.NET から ASP.NET Core へのアプリケーション移行のサポートが拡張され、WinForms、WPF、およびクラス ライブラリ用のコード アナライザーとチェッカーが追加され、実行可能ファイルの分析サポートが実装され、UWP (ユニバーサル Windows プラットフォーム) のサポートが追加されました。

数学関数のための汎用インターフェースが提案され、仮想インターフェース内で静的要素を定義することが可能になった。これにより、値の型に関する正確な情報がなくても、汎用プログラミング手法を用いて数学演算を実行できるようになった。

JITコンパイラのパフォーマンスも向上しました。さらに、既に実行中のメソッドのコードを変更するOSR(On Stack Replacement)メカニズムのサポートが追加され、現在の呼び出しが完了するのを待たずに、完了に時間がかかるメソッドの最適化を実行できるようになりました(TechEmpowerのテストでは、最初の要求の処理パフォーマンスが10~30%向上しています)。

その他の注目すべき変更点は以下のとおりです。

  • 自己完結型の実行可能ファイル (ネイティブ AOT) へのコンパイルのサポートが追加されました。この場合、最初にプロジェクト全体が中間コードや JIT を使用せずにネイティブ ターゲット プラットフォーム コードにコンパイルされます。
  • .NET SDK は、提供されたプロジェクト テンプレートの使用を制限する機能を実装しています。 たとえば、テンプレートが有効なオペレーティング システムを特定できます。
  • NuGet には、複数のプロジェクトの依存関係を一度に管理できる集中パッケージ管理モードが追加されました。

最後に、さらに詳しく知りたい場合は、以下のリンクから詳細をご確認いただけます。

関心のある方は、.NET SDK 7、.NET ランタイム 7、および ASP.NET Core ランタイム 7 のビルドが Linux、macOS、および Windows 用にビルドされていることを知っておく必要があります。 .NET デスクトップ ランタイム 6 は、Windows でのみ使用できます。


Googleで優先ソースとして追加する