トラブルシューティング

次の表は、インテル(R) VTune(TM) Amplifier XE でアプリケーションを解析する場合に発生する可能性のある既知の問題点と推奨する解決方法を示しています。

問題

原因と推奨する解決方法

ビューですべての子の合計値がその親の合計時間と等しくならない

原因

データ列の値は丸められています。複数のスタックを持つ関数など、複数の項目の合計からなる項目では、丸められた合計値が個々の丸め値の合計と若干異なることがあります。

例:

モジュール/関数

時間 (実際の値)

時間 (丸め値)

foo.dll

0.2468

0.247

    foo()

0.1234

0.123

    bar()

0.1234

0.123

ここでは、個々の丸め値の合計 (0.123 + 0.123) と、丸められた合計値 0.247 は等しくなりません。

[Call Stack (コールスタック)] ペインに [Bottom-up (ボトムアップ)] ペイン呼び出しツリーよりも多くのスタックが表示される

原因

いくつかのスタックが異なるコード行で同じ関数を呼び出しています。

[Bottom-up (ボトムアップ)] ペインの呼び出しツリーではこれらのスタックが 1 行にまとめて表示されますが、[Call Stack (コールスタック)] ペインでは個々のスタックが表示されます。詳細は、「ペイン: Bottom-up (ボトムアップ)」を参照してください。

[Call Stack (コールスタック)] ペインに表示される情報が正しくない

原因

デバッグ情報が不完全な可能性があります。

解決方法

完全なデバッグ情報を含めるオプションを使用して、ターゲットを再コンパイルします。このオプションを有効にする方法は、「デバッグ情報の使用」を参照してください。

[Top-down Tree (トップダウン・ツリー)] ペインのスタック情報が正しくない

原因

バイナリーからスタック情報を削除する最適化レベルでターゲットがビルドされています。

解決方法

プロジェクトの最適化レベルを下げてターゲットを再コンパイルし、 インテル(R) VTune(TM) Amplifier XE でプロファイリングを行ってください。

フィルターバーの [Call Stack Mode (コール・スタック・モード)][Only user functions (ユーザー関数のみ)] にしても、結果ウィンドウにシステム関数が表示される

原因

ユーザー関数から呼び出されないシステム関数がある場合、そのようなシステム関数とその時間が解析結果ウィンドウに表示されます。

複数回の実行が無効な場合、イベント数 = サンプリング間隔の値 (SAV) * サンプル数にならない 原因

デフォルトでは、[Project Properties (プロジェクト・プロパティー)] ダイアログボックスの [Target (ターゲット)] タブにある [Allow multiple runs (複数回の実行を許可)] オプションは無効です。そのため、インテル(R) VTune(TM) Amplifier XE はイベントの多重化を使用し、データ収集を 1 回だけ実行します。この方法では、収集されるデータの精度が低下するので、 インテル(R) VTune(TM) Amplifier XE は次の式を使用して収集したイベント数を計算します: イベント数= サンプリング間隔の値 (SAV) * サンプル数。しかし、イベントの多重化が有効な場合には次の式が使用されます: イベント数 = サンプリング間隔の値 (SAV) * サンプル数 * イベント・グループ・カウント。イベント・グループ・カウントとは、収集中に使用された互換性のないイベントグループの数です。このイベント・グループ・カウントは、インテル(R) VTune(TM) Amplifier XE で 1 つのイベントグループのイベントのみを収集した場合に生じるギャップを補完するためのヒューリスティックに基づいて使用されています。

例えば、A、B、C という 3 つのイベントグループがあり、A1 はグループ A に属す場合について考えてみましょう。アプリケーション実行時に、インテル(R) VTune(TM) Amplifier XE はそれぞれのグループのイベントの収集に同じ時間を費やします。グループ A の解析において、イベント A1 は SAV 10.000 で 10 サンプル発生し、その後は全く発生しないとします。この場合、正確な結果は 100.000 イベント (10.000 * 10) です。しかし、インテル(R) VTune(TM) Amplifier XE では、結果が 100.000 * 3 (グループ A、B、C) = 300.000 となります。

解決方法

[Allow multiple runs (複数回の実行を許可)] オプションを選択してイベントの多重化を無効にし、それぞれのイベントグループのデータ収集を個別に実行します。これにより、収集されるイベントのデータ精度が向上します。

[Bottom-up (ボトムアップ)/Top-down Tree (トップダウン・ツリー)] ペイン [Skipped frame(s) (スキップされたフレーム)] が表示される

原因

インテル(R) VTune(TM) Amplifier XE が、データ収集のオーバーヘッドを軽減するためにスタックの巻き戻しを行わず、ヒューリスティックによるスタックの紐付けに失敗しています。

[Bottom-up (ボトムアップ)/Top-down Tree (トップダウン・ツリー)] ペイン [Guessed frame(s) (推測されたフレーム)] が表示される

原因

インテル(R) VTune(TM) Amplifier XE が、データ収集のオーバーヘッドを軽減するためにスタックの巻き戻しを行わなかったため、ヒューリスティックによりスタックが紐付けられています。

[Guessed frame(s) (推測されたフレーム)] はシステム関数と見なされます。フィルターバー[Call Stack Mode (コール・スタック・モード)][User/system functions (ユーザー/システム関数)] にすると、[Guessed frame(s) (推測されたフレーム)] が表示されます。

解決方法

[Guessed frame(s) (推測されたフレーム)] を表示しないようにするには、フィルターバー[Call Stack Mode (コール・スタック・モード)][Only user functions (ユーザー関数のみ)] にします。

エラーメッセージ: Data may be attributed incorrectly (データが正しく紐付けられていません)

原因

選択した関数の行情報が不完全です。 コンパイラーの不具合か、インテル(R) VTune(TM) Amplifier XE の制約が原因の可能性があります。デバッグ情報が不完全な場合、ソースファイルは [Unknown (不明)] と表示されます。この場合、[Source (ソース)] ウィンドウのソース行からアセンブリー命令へのマップとソース行ごとのデータの集計は正しくありません。

解決方法

完全なデバッグ情報を含めるオプションを使用して、バイナリーファイルがコンパイルされていることを確認してください。このオプションを有効にする方法は、「デバッグ情報の使用」を参照してください。

関連項目


このヘルプトピックについてのフィードバックを送信
 
インテル(R) ソフトウェア製品ドキュメント・ライブラリー

© 2010 Intel Corporation. 無断での引用、転載を禁じます。