Oracle® Solaris Studio 12.4: パフォーマンスアナライザ

印刷ビューの終了

更新: 2015 年 1 月
 
 

データオブジェクト記述子

データオブジェクトは、宣言された型と名前の組み合わせで記述します。単純なスカラーデータオブジェクト {int i} は、int 型の変数 i を記述しているのに対して、{const+pointer+int p} は、intp への定数ポインタを記述しています。型名のスペースは「_」(アンダースコア) に置き換えられ、名前の付いていないデータオブジェクトは「-」(ハイフン)、たとえば {double_precision_complex -} という名前で表されます。

集合体全体も同様に、foo_t 型の構造体の場合は {structure:foo_t} と表します。集合体の要素では、その要素のコンテナを追加指定する必要があります。たとえば、前述の foo_t 型の構造体のメンバーである int 型の i の場合は {structure:foo_t}.{int i} となります。集合体はそれ自体、(さらに大きい) 集合体の要素になることも可能で、対応する記述子は集合体記述子を連結したもの、最終的にはスカラー記述子になります。

完全修飾された記述子は、データオブジェクトを明確にするために必ずしも必要ではありませんが、データオブジェクトの識別を支援するために一般的な完全指定を示します。

<Total> データオブジェクト

<Total> データオブジェクトは、プログラム全体のデータオブジェクトを表すために使用される擬似的な構造です。あらゆるパフォーマンスメトリックは、異なるデータオブジェクト (およびそのオブジェクトが属する集合体) のメトリックとして帰属するほか、<Total> という特別なデータオブジェクトに帰属します。これは、データオブジェクトリストの上部に表示されます。そのデータを使用すると、ほかのデータオブジェクトのデータの概略を得ることができます。

<Scalars> データオブジェクト

集合体要素のパフォーマンスメトリックが、それに関連付けられた集合体のメトリック値にさらに帰属するのに対して、すべてのスカラー定数および変数のパフォーマンスメトリックは、擬似的な <Scalars> データオブジェクトのメトリック値にさらに帰属します。

<Unknown> データオブジェクトとその要素

さまざまな状況下で、特定のデータオブジェクトにイベントデータをマップできない場合があります。このような場合、そのデータは、<Unknown> という名前の特殊なデータオブジェクトとその要素の 1 つに次のようにマップされます。

  • トリガー PC を持つモジュールが -xhwcprof を使用してコンパイルされていない

    トリガー PC を持つモジュールが -xhwcprof を使用してコンパイルされていない イベントの原因となっている命令またはデータオブジェクトは、オブジェクトコードがハードウェアカウンタプロファイルサポートを指定してコンパイルされていなかったので、識別されませんでした。

  • バックトラッキングで有効な分岐先が検出できなかった

    バックトラッキングで有効な分岐先を検出できなかったイベントの原因となっている命令は、コンパイルオブジェクト内で提供されたハードウェアプロファイルサポート情報が、バックトラッキングの妥当性を検証するには不十分だったため、識別されませんでした。

  • バックトラッキングで分岐先をトラバースした

    バックトラッキングで分岐先をトラバースしたイベントの原因となっている命令またはデータオブジェクトは、バックトラッキングで命令ストリーム内から制御転送ターゲットが検出されたため、識別されませんでした。

  • 識別する記述子がコンパイラから提供されなかった

    コンパイラは、メモリー参照命令のデータオブジェクト情報を提供しませんでした。

  • タイプ情報がない

    コンパイラは、その命令をメモリー参照命令として識別しませんでした。

  • コンパイラが提供したシンボリック情報から判別不能

    コンパイラには、その命令のシンボリック情報がありません。コンパイラのテンポラリは一般に識別されません。

  • ジャンプ命令または呼び出し命令によってバックトラッキングが阻止された

    バックトラッキングが、ジャンプ命令または呼び出し命令によって阻止された イベントの原因となっている命令は、バックトラッキングで命令ストリームの中から分岐命令または呼び出し命令が検出されたため、識別されませんでした。

  • バックトラッキングでトリガー PC が検出されなかった

    バックトラッキングでトリガー PC が検出されなかったイベントの原因である命令を、最大のバックトラッキング範囲内から検出できませんでした。

  • トリガー命令のあとでレジスタが変更されたため、仮想アドレスを特定できなかった

    トリガー命令のあとでレジスタが変更されたため、仮想アドレスを判別できなかったレジスタがハードウェアカウンタのスキッド中に上書きされたため、データオブジェクトの仮想アドレスを判別できませんでした。

  • メモリー参照命令で有効な仮想アドレスが指定されなかった

    メモリー参照命令で有効な仮想アドレスが指定されなかった データオブジェクトの仮想アドレスが有効であるように見えませんでした。