Oracle Solaris Studio 12.2 リリースの新機能

第 4 章 パフォーマンス解析ツール

この章では、Oracle Solaris Studio のこのリリースのパフォーマンス解析ツールに関する新機能および変更された機能について説明します。

パフォーマンスアナライザ

ここでは、このリリースの Solaris Studio パフォーマンスアナライザおよび関連ツールの新機能および変更された機能について説明します。詳細は、『Oracle Solaris Studio 12.2: パフォーマンスアナライザ』『Oracle Solaris Studio 12.2: パフォーマンスアナライザ』マニュアルを参照してください。

実験形式の変更

実験の形式が拡張されましたが、現在、バージョン番号は変更されていません (10.1)。

ツールは、Oracle Solaris Studio 12.2 の FCS バージョンで作成された実験、および Studio 12 Update 1 と Studio 12 の FCS およびパッチ適用バージョンで作成された実験を読み取ることができます。

Sun Studio 12 より前のバージョンで作成された実験は、Oracle Solaris Studio 12.2 のツールで読み取ることはできません。

パフォーマンスアナライザツールの変更

パフォーマンスアナライザツールの機能は次のように拡張されています。

新しい「呼び出しツリー」タブ

新しい「呼び出しツリー」タブには、プログラムの動的なコールグラフがツリーとして表示され、ノードとして示される各関数呼び出しを展開したり折りたたんだりできます。関数ノードを展開すると、その関数によって行われたすべての関数呼び出しに加えて、それらの関数呼び出しのパフォーマンス測定基準が表示されます。ノードを選択すると、右側の「サマリー」タブにその関数呼び出しと呼び出し先に関する測定基準が表示されます。属性付き測定基準に対して示されるパーセンテージは、プログラムの全測定基準のパーセンテージです。

もっとも多くの時間を消費するブランチを簡単に見つけるには、いずれかのノードを右クリックして、「もっとも活動的なブランチを展開」を選択します。

「呼び出し側-呼び出し先」タブの拡張

呼び出しスタックに呼び出し側と呼び出し先を追加することで、一度に 1 つの呼び出しの呼び出しスタックフラグメントを中央の「スタックフラグメント」パネルに作成できます。呼び出し側はそのフラグメントを呼び出している関数であり、呼び出し先はそのフラグメントから呼び出されている関数です。次の機能が含まれます。

新しい実験比較機能

パフォーマンスアナライザでは、同じ実行可能ファイルで収集された実験を比較できるようになりました。この機能は部分的にのみ実装されており、今後のリリースで変更される可能性があります。現在のリリースでは、実験の比較は次のように動作します。

その他の拡張機能

er_print コマンド

er_print コマンドはこのリリースでは次のように変更されています。

新しいデータ収集機能

collect コマンドはこのリリースでは次のように変更されています。

dbx collector の新機能

dbx デバッガの collector サブコマンドは次のように変更されています。

er_kernel に対する変更

Solaris カーネルをプロファイリングするためのコマンドは、シグナル SIGINTSIGTERM、または SIGQUIT のいずれかがプロセスに送信されたときは er_kernel が次の動作を行うように変更されています。

新しい er_generic コマンド

er_generic コマンドは、プロファイル情報を含むテキストファイルから実験を生成します。その後、シミュレートされた実験を、パフォーマンスアナライザまたは er_print コマンドを使用して調べることができます。詳細は、er_generic(1) のマニュアルページを参照してください。

en_desc に対する変更

デフォルトで、en_desc コマンドはすべての子孫を読み取るようになりました。

スレッドアナライザ

スレッドアナライザは、ソースレベルまたはバイナリレベルで計装されているコードのデータ競合の検出をサポートするようになりました。ソースレベルの計装はこのリリースでは変更されていません。

プログラムのバイナリコードを計装するには、discover ツールを使用する必要があります。このツールは、Oracle Solaris Studio に組み込まれており、discover(1) のマニュアルページで説明されています。『Oracle Solaris Studio 12.2 Discover および Uncover ユーザーズガイド』も参照してください。

データの競合を検出するためにプログラムのバイナリコードを計装するには、discover ツールの入力バイナリを次の条件でコンパイルする必要があります。

バイナリがコンパイラオプション -xbinopt=prepare を指定してコンパイルされている場合、SPARC ベースのシステムで実行している以前のバージョンの Solaris でも discover ツールを使用できる場合があります。このコンパイラオプションについては、cc(1)、CC(1)、または f95(1) のマニュアルページを参照してください。

バイナリの名前が a.out である場合、次のコマンドで a.out_i という名前の計装されたバイナリを作成できます。


% discover -i datarace -o a.out_i a.out

詳細は、『Oracle Solaris Studio 12.2: スレッドアナライザユーザーズガイド』または tha(1) のマニュアルページを参照してください。