英語で読む

次の方法で共有


ProfileOptimization クラス

定義

以前のコンパイル中に作成されたプロファイルに基づいて、実行される可能性が高いメソッドをバックグラウンドでコンパイルすることにより、JIT (Just-In-Time) コンパイラを必要とするアプリケーションのアプリケーション ドメインで、起動時のパフォーマンスが向上します。

C#
public static class ProfileOptimization
継承
ProfileOptimization

注釈

重要

プロファイルの最適化にはマルチコア コンピューターが必要です。 メソッドは、他のコンピューターでは無視されます。

アプリケーション ドメインでプロファイルの最適化を開始するたびに、前の使用時に作成されたプロファイルが読み取られます。 プロファイル内の情報は、起動時に実行される可能性が最も高いメソッドを識別することで、バックグラウンド コンパイルをガイドするために使用されます。 マルチコア コンピューターでは、これにより、メイン アプリケーション スレッドが JIT コンパイラを呼び出す必要がないように、必要な時間までにメソッドが既にコンパイルされる可能性が高くなります。

プロファイル ファイルは使用時に上書きされるため、起動時に使用されるメソッドに関する最新の情報が常に含まれます。

最適化プロファイルは、アプリケーション ドメインの起動に限定されません。 JIT コンパイラを大量に使用する必要がある任意のアクティビティに使用できます。 アプリケーション ドメインに対して複数のプロファイルを保持して、各アクティビティに独自のプロファイルを設定することができます。

アプリケーション ドメインで最適化プロファイルを使用するには、 メソッドを SetProfileRoot 呼び出し、プロファイルを格納するフォルダーを指定する必要があります。 フォルダーは既に存在している必要があります。 プロファイルの使用を開始するには、 メソッドを StartProfile 呼び出し、プロファイルのファイル名を指定します。 ファイルが以前に記録されていない場合は、最初の使用時に作成されます。 プロファイルを初めて作成する場合、パフォーマンス上の利点はありません。

プロファイルの最適化では、メソッドの実行順序は変更されません。 メソッドはバックグラウンド スレッドでは実行されません。メソッドがコンパイルされていても呼び出されない場合は、単に使用されません。 プロファイル ファイルが破損しているか、指定したフォルダーに書き込むことができない場合 (たとえば、フォルダーが存在しないため)、最適化プロファイリングなしでプログラムの実行が続行されます。

メソッド

SetProfileRoot(String)

現在のアプリケーション ドメインに対する最適化プロファイルを有効にし、最適化プロファイル ファイルが格納されるフォルダーを設定します。 シングルコア コンピューターでは、メソッドは無視されます。

StartProfile(String)

バックグラウンド スレッド上で、指定したプロファイル ファイルに前もって記録済みのメソッドの、Just-In-Time (JIT) コンパイラを開始します。 指定したプロファイル ファイルをあとで上書きする、現在のメソッド使用の記録処理を開始します。

適用対象

製品 バージョン
.NET Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1