次の方法で共有


ProfileOptimization クラス

定義

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

public ref class ProfileOptimization abstract sealed
public static class ProfileOptimization
type ProfileOptimization = class
Public Class ProfileOptimization
継承
ProfileOptimization

注釈

  • プロファイルの最適化には、マルチコア コンピューターが必要です。 他のコンピューターでは、メソッドは無視されます。
  • この API により、起動時間が短縮されます。 これらの機能強化は、 動的プロファイルガイド付き最適化 (動的 PGO) を補完し、観察された実行パターンに基づいてランタイムの最適化を改善します。

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

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

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

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

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

メソッド

名前 説明
SetProfileRoot(String)

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

StartProfile(String)

指定したプロファイル ファイルに以前に記録されたメソッドの Just-In-Time (JIT) コンパイルをバックグラウンド スレッドで開始します。 現在のメソッドの使用を記録するプロセスを開始し、後で指定したプロファイル ファイルを上書きします。

適用対象