ハイ パフォーマンス パッケージの概要
CommunityToolkit.HighPerformance
には、ハイパフォーマンスのシナリオで動作するヘルパーと拡張機能が含まれています。 このパッケージは NuGet を使用してインストールでき、次のマルチターゲットがあります。
- .NET Standard 2.0
- .NET Standard 2.1
- .NET 6
- .NET 7
つまり、UWP またはレガシ .NET Framework アプリケーション、Unity で記述されたゲーム、Xamarin を使用したクロスプラットフォーム モバイル アプリケーションから、.NET Standard ライブラリと最新の .NET 6 および .NET 7 アプリケーションまで、あらゆるものから使用できます。 API サーフェスは、すべてのケースでほぼ同じであり、多くの作業が、可能な限り多くの機能として、.NET Standard 2.0 などの古いターゲットへのバックポートに組み込まれています。 いくつかの小さな違いを除けば、すべてのターゲット フレームワークで同じ API を利用できるものとお考ください。 マルチターゲットが使用されている理由は、パッケージが可能な限り最新のランタイム (.NET 7 など) 上のすべての最新 API を利用できるようにするためであり、同時にその機能の大部分をすべてのターゲット プラットフォームに提供するためです。
作業の開始
Visual Studio 内でパッケージをインストールするには:
ソリューション エクスプローラーでプロジェクトを右クリックし、[NuGet パッケージの管理] を選択します。 CommunityToolkit.HighPerformance を検索してインストールします。
新しい API を使用するために、using または Imports ディレクティブを追加します。
using CommunityToolkit.HighPerformance;
Imports CommunityToolkit.HighPerformance
コード サンプルは、MVVM Toolkit の他のドキュメント ページ、およびプロジェクトの単体テストで入手できます。
このパッケージを使用するタイミング
名前が示すように、ハイ パフォーマンス パッケージには、最適化に重点を置いた一連の API が含まれています。 すべての新しい API は、メモリ割り当ての削減、アセンブリ レベルでのマイクロ最適化、または一般的なパフォーマンス指向コードの記述を容易にする方法で API を構成することによって、それらを使用するときに可能な限り最高のパフォーマンスを実現するように慎重に作成されています。
このパッケージでは、次のような API を多用しています。
System.Span<T>
System.Memory<T>
System.Buffers.ArrayPool<T>
System.Runtime.CompilerServices.Unsafe
System.Runtime.InteropServices.MemoryMarshal
System.Threading.Tasks.Parallel
これらの API に既に慣れている場合や、C# でハイ パフォーマンス コードの記述を始めたばかりで、テスト済みの一連のヘルパーを自身のプロジェクトで使用する場合でも、このパッケージに含まれている内容を確認して、自身のプロジェクトで使用する方法を確認してください。
どこから開始する?
上記のいずれかの種類の API を既に使用している場合は、最初に確認できる API をいくつか次に示します。
Span2D<T>
とMemory2D<T>
は、2D メモリ上のSpan<T>
とMemory<T>
のような抽象化のためのものです。MemoryOwner<T>
とSpanOwner<T>
は、System.Buffers.ArrayPool<T>
を使用していた場合。string
インスタンスをキャッシュするArrayPool<T>
のような型のStringPool
ParallelHelper
は、System.Threading.Tasks.Parallel
を使用していた場合。
その他のリソース
「単体テスト」では、さらに他の例を見つけることができます。
.NET Community Toolkit