インテル® VTune™ プロファイラーは、[プロセスにアタッチ] と [システムをプロファイル] によって Windows* ストア C/C++、C#、および JavaScript* アプリケーションのハードウェア・イベントベース・サンプリング解析をサポートします。[アプリケーションを起動] モードはサポートされません。
解析を始める前に、データ収集を実行する管理者権限があることを確認してください。
Microsoft* Windows* 8 から、すべての Windows* ストア C# アプリケーションは 24 時間ごとに自動的に NGEN サービスによって事前コンパイルされるようになりました。インテル® VTune™ プロファイラーは、必要なシンボル情報が利用できないためネイティブイメージのメソッドを解決できません。その結果、インテル® VTune™ プロファイラーで事前コンパイルされたアプリケーションをプロファイルすると、C# メソッドの代わりに [不明] という関数エントリーを表示されます。これは、Ngen.exe ツールを使用してネイティブイメージの .pdb ファイルを生成するか、次回の自動 NGEN 事前コンパイルまでこの問題を一時的に回避できます。
自動的に事前コンパイルされたアセンブリーの場所を特定します。一般に、32 ビットのアセンブリーは、C:\Users\Administrator\AppData\Local\Packages\<package>\AC\Microsoft\CLR_v4.0_32\NativeImages\ フォルダーに配置され、64 ビットのアセンブリーは C:\Users\Administrator\AppData\Local\Packages\<package>\AC\Microsoft\CLR_v4.0_32\NativeImages\ フォルダーに配置されます。
<package> はアプリケーションによって異なります。<package> を特定するには、次のいずれかのオプションを使用します。
[タスク マネージャー] を開いて、アプリケーションのプロパティーをチェックします。[全般] タブには、省略されるべきバージョンを含むパッケージの値が含まれます。例えば、[全般] タブに表示される値が 47828<app_name>_1.0.0.4_neutral__sgvg9sxsmbbt4 の場合、NGEN で処理されたモジュールは C:\Users\Administrator\AppData\Local\Packages\47828<app_name>_sgvg9sxsmbbt4\AC\Microsoft\CLR_v4.0_32\NativeImages\ に配置されます。
[プロセス エクスプローラー] ツールを使用: アプリケーションにロードされたモジュールのリストを調査し、*.ni.exe モジュールを検索して、その場所を特定します。
そして、*.ni.dll または *.ni.exe を含むフォルダーの名前を変更します。例えば、C:\Users\Administrator\AppData\Local\Packages\47828<app_name>_sgvg9sxsmbbt4\AC\Microsoft\CLR_v4.0_32\NativeImages\<app_name> を C:\Users\Administrator\AppData\Local\Packages\47828<app_name>_sgvg9sxsmbbt4\AC\Microsoft\CLR_v4.0_32\NativeImages\<app_name> に変更します。
アプリケーションを再起動します。
メソッドを CLR JIT コンパイルします。次回の自動 NGEN 事前コンパイルまで、インテル® VTune™ プロファイラーを利用して C# アプリケーションをプロファイルできます。
この解決方法は、.NET Framework ライブラリー (例えば、mscorlib.dll) には推奨されません。
インテル® VTune™ プロファイラーは、JavaScript* モジュールのソースファイルへのマッピングをサポートします。しかし、グリッドや [タイムライン] ペインからソースへ移動したときに、インテル® VTune™ プロファイラーはデフォルトではパフォーマンス・クリティカルなコード行の場所を特定せず、[ソース] ペインには関数の最初の行が表示されます。ホットなコード行を切り替えるには、ナビゲーション・ボタンを使用します。