"データ処理システムにおいて実行されるアプリケーションプログラムのパフォーマンスを解析する方法であって、前記アプリケーションプログラムは、各スレッドが複数の状態を遷移する複数のスレッドを用いて実行され、当該方法は、測定期間中に各スレッドの複数の状態について前記アプリケーションプログラムの所定のパフォーマンスに関する特徴に対応するデータを読むステップと、前記測定期間を反映する各スレッドのグラフと、前記アプリケーションプログラムの所定のパフォーマンスに関する特徴に対応するパフォーマンスレベルと、各状態における各時点のパフォーマンスの変化とを有する画像を表示するステップと、を有する方法。アプリケーションプログラムのパフォーマンスを解析する装置であって、測定期間中に各スレッドの複数の状態について前記アプリケーションプログラムの所定のパフォーマンスに関する特徴に対応するデータを読み、前記測定期間を反映する各スレッドのグラフと、前記アプリケーションプログラムの所定のパフォーマンスに関する特徴に対応するパフォーマンスレベルと、各状態における各時点のパフォーマンスの変化とを有する画像を表示するプログラムを有するメモリと、前記プログラムを実行するプロセッサと、を有する装置。プロセッサを実行させる方法を実行するようコンピュータシステムを制御するための命令を有するコンピュータ可読媒体であって、前記方法は、測定期間中に各スレッドの複数の状態について前記アプリケーションプログラムの所定のパフォーマンスに関する特徴に対応するデータを読むステップと、前記測定期間を反映する各スレッドのグラフと、前記アプリケーションプログラムの所定のパフォーマンスに関する特徴に対応するパフォーマンスレベルと、各状態における各時点のパフォーマンスの変化とを有する画像を表示するステップと、を有するコンピュータ可読媒体。データ処理システムにおいて実行されるアプリケーションプログラムのパフォーマンスを解析する方法であって、前記アプリケーションプログラムは、各スレッドが複数の状態を遷移する複数のスレッドを用いて実行され、当該方法は、測定期間中に各スレッドの複数の状態について前記アプリケーションプログラムの所定のパフォーマンスに関する特徴に対応するデータを読むステップと、前記測定期間を反映する各スレッドのグラフと、前記アプリケーションプログラムの所定のパフォーマンスに関する特徴に対応するパフォーマンスレベルとを有する画像を表示するステップと、前記アプリケーションプログラムのパフォーマンスを向上させるよう調整されるべき前記アプリケーションプログラムの何れかの部分をユーザに指示するステップと、を有する方法。前記グラフは、前記スレッド間における処理の同期を向上させるよう調整されるべき前記アプリケーションプログラムの何れかの部分をユーザに指示する、請求項4記載の方法。特定状態の間、プロセッサが何をしたかを考察する場合には、パフォーマンス解析ツールは、当該パフォーマンスレベルでの状態におけるオペレーションの影響を決定することができる。これらの要因が一旦確認されると、パフォーマンスに対して重要なインパクトを与えるオペレーションと、それよりは重要度が低いインパクトを与えるオペレーションとを同調させることができ、全体としてよりよいパフォーマンスレベルを実現することができる。例えば、第一のスレッドは、重要なリソースを使用するオペレーションを実行することができるが、その間、第一のスレッドと並列に別個のオペレーションを実行するようにスケジューリングされた他のスレッドは、当該第一のスレッドがそのオペレーションを完遂するまでアイドル状態である。従って、第二のスレッドには、第一のスレッドのオペレーションの完遂を要求しない他のオペレーションを実行させ、これによって、当該第二のスレッドのアイドル状態を除去することが望ましい。パフォーマンス解析ツールが特定状態で発生した問題を通知するが、当該問題をアプリケーションで発生した他のイベントに関連させるのに失敗したとき例えば、他の状態のオペレーションは、当該通知された情報は、どちらかといえば無意味なものとなる。有用なものとするには、パフォーマンス解析ツールは、パフォーマンス情報がプログラム実行にどのように関連しているのかをディベロッパーが決定するのを補助する必要がある。従って、発生したパフォーマンス問題の内容をディベロッパーが判断できるようにすれば、問題分析に役立つものとなる。パフォーマンス解析用にこの情報を収集するプロセスは、インストルメンテーションと称される。インストルメンテーションは、通常、検査中のプログラムに命令追加を要求するものであり、これにより、当該プログラムが実行されたときに当該命令によりデータが生成され、このデータからパフォーマンス情報が取り出すことができる。カレントパフォーマンス解析ツールがデータを収集する方法には、サブプログラムレベルインストルメンテーションとバケットレベルインストルメンテーションという2つの方法があり、いずれを用いてもよい。パフォーマンス解析のサブプログラムレベルインストルメンテーション方法は、各サブプログラムの呼出を反映するデータ生成用の命令セットを用いて、当該サブプログラムを操作インストルメントすることによって多くのサブプログラムの呼出を検出する。この方法によれば、ディベロッパーは、各サブプログラムにより、又は当該サブプログラムの特定部分により実行されたオペレーション例えば、サブプログラム内の開始終了ポイント収集データの指定により実行されたオペレーションのパフォーマンスデータを検出することができない。バケットレベルのインストルメンテーションのパフォーマンス解析ツールは、実行コードを等間隔に配置されたグループ又はバケットに分割する。パフォーマンスデータは、指定された時間間隔でプログラムカウンタが特定バケット内にあった回数を検出する。このパフォーマンスデータ収集方法は、実質的に、指定された時間間隔でプログラムカウンタのスナップショットをとる。この方法では、包括的なパフォーマンス情報を提供することができない。その理由は、この方法は、指定された時間間隔での特定バケットのデータ収集に留まるからである。また、現在のパフォーマンス解析方法によれば、パフォーマンスデータをカスタマイズして収集又は出力を行うことができない。一般に、パフォーマンスツールは、予め指定されたディベロッパー呈示用のデータセットのみを収集する。本発明は、上述した従来の欠点を克服するためになされたものであり、データプロセッシングシステムにおいて実行されるマルチスレッド化プログラムのパフォーマンス解析を容易にすることができるアプリケーションプログラムのパフォーマンス解析方法、アプリケーションプログラムのパフォーマンス解析に用いられるシステム及び装置を提供することを課題とする。上記課題を解決するために、本発明に係る方法、システム及び装置は、測定期間内に実行される各スレッドの状態を反映するデータを受信し、前記測定期間内の各スレッド状態に対応するパフォーマンスレベルを表示することにより、データプロセッシングシステムで実行されるスレッドのパフォーマンスを解析することを要旨とするものである。本発明に係る請求項1乃至3に記載のパフォーマンス解析方法は、測定期間内に実行される各スレッドの状態を反映し収集すべきものと指定されたデータを受信し、プログラム実行中に生成されたデータファイルにアクセスして当該測定期間内の各スレッド状態に対応するパフォーマンスレベルを表示するものであるから、ディベロッパーは、どのようにパフォーマンスデータがプログラムの各スレッドに関連しているかを判断することができるとともに、プログラム内で生じたパフォーマンス発行の理解や、その順次診断が簡単になる。従って、本発明によれば、パフォーマンス解析を容易に行うことができるという利点がある。以下、添付図面を参照して本発明の一実施の形態を説明する。また、この説明によって本発明によって得られる利点と趣旨とを裏付けようとするものである。尚、図面及び説明において同一又は略同一の部材を参照する場合には、できる限り同一の参照符号を用いている。概略本発明に係る方法、システム及び装置は、アプリケーションプログラムの実行中に収集されたパフォーマンスデータを利用して、プログラムのパフォーマンスデータをディベロッパーに対して図式的に説明しようとするものである。プログラムは、実行中にパフォーマンスデータを生成するように操作インストルメントされる。各プログラムスレッドは、1又は複数のオペレーションを実行するものであり、各オペレーションは、種々のスレッドの状態を反映する。パフォーマンスデータは、実行中のスレッドの各状態のパフォーマンスレベルと同様に、各スレッドの全パフォーマンスを反映するものであればよい。ディベロッパーは、収集すべきパフォーマンスデータのタイプと範囲とを指定することができる。全スレッドのパフォーマンスを同時にグラフィック表示すれば、ディベロッパーは、スレッド間のオペレーションを同期させることにより、全パフォーマンスを改善するために何時どこで適切な調整を行うべきかが判る。パフォーマンス解析データベースへのアクセス言語は、本発明に係る方法でプログラムを操作インストルメントするために使用される。この操作インストルメントは、プログラム内の指定ロケーションに命令を追加する周知の技術を用いて自動的に、又はディベロッパーによる手動操作で行うことができる。命令は、マルチシステムコンポーネントからのパフォーマンスデータの収集を指定するものであればよく、パフォーマンスデータは、ハードウエア及びオペレーティングシステムの両者から収集可能であればよい。パフォーマンスデータの4要素ディスプレイは、スレッド情報、時間、状態及びパフォーマンスレベルを含むものである。パフォーマンスアナライザは、また、ディベロッパーによって指定されたパフォーマンス測定法により数式評価を行い、その演算結果を表示する。パフォーマンス解析システム図1は、本発明に係る方法及びシステムの実施に好適なデータプロセッシングシステム100を示したものである。データプロセッシングシステム100は、コンピュータシステム105を備え、このコンピュータシステム105は、ローカルエリアネットワーク、ワイドエリアネットワーク又はインターネット等のネットワーク190に接続されている。コンピュータシステム105は、メインメモリ130、補助記憶デバイス140、プロセッサ150、入力デバイス170及びビデオディスプレイ160を備える。これらの内部コンポーネントは、システムバス165を経由して互いに情報交換を行う。当該コンポーネントは、本発明に係る方法を実施したり、本発明に係るシステムを構成するのに好適な殆どのコンピュータシステムにおいて標準となっているものである。このようなコンピュータシステムとして、サンマイクロシステムズインコーポレーテッド製のSPARCstationが一例として挙げられる。コンピュータシステム100は、単一プロセッサを備えたものであるが、マルチプロセッサ環境においても同様に本発明に係る方法でオペレーションを実行できることは、いわゆる当業者にとっては周知である。メモリ130は、プログラム110及びパフォーマンスアナライザ115を備えている。プログラム110は、マルチスレッド化プログラムである。本発明に係る方法においては、プログラム110のパフォーマンス解析を容易にする目的で、当該プログラムは、ディベロッパーが選択した適当な命令で操作インストルメントされ、所定のパフォーマンスデータを生成する。パフォーマンスアナライザ115は、2つのコンポーネントから構成されている。第一のコンポーネント115aは、操作インストルメントされたプログラムにより指定された方法で実行される関数ライブラリである。第二のコンポーネント115bは、ディベロッパーインタフェースであり、2つの機能、即ち、1プログラムを自動的に操作インストルメントする機能、及び2プログラム実行時に収集されたパフォーマンス情報を閲覧する機能を実現するために用いられる。説明したように、操作インストルメンテーションは、パフォーマンス解析インタフェース115bを用いて自動的に行うことができる。このようなアプローチによれば、ディベロッパーは、収集されるべきパフォーマンスデータのタイプをアナライザ用に指定し、アナライザは、パフォーマンス解析データベースアクセス言語による適当なコマンドをプログラムの適当な位置に追加する。このような手法での自動操作インストルメンテーションの技術は、いわゆる当業者にとっては周知である。これに代えて、実行中に指定パフォーマンスデータを記録できるように、ディベロッパーは、パフォーマンス解析データベースアクセス言語のコマンドを手動で適当な位置に挿入してもよい。プログラム110の実行中に生成されたパフォーマンスデータは、例えば、メインメモリ130等のメモリへ記憶される。パフォーマンス解析インタフェース115bは、ディベロッパーにプログラム110の実行時に記憶されたパフォーマンスデータに対応するパフォーマンス情報の閲覧を許可する。後述するように、ディベロッパーは、閲覧画面を変更するのにアナライザと対話型で作業をすすめるが、これは、種々のコンフィギュレーションにおけるパフォーマンス情報を表示することにより、プログラムパフォーマンスを種々の視点で観察するためである。従って、プログラムが完全に最初から操作インストルメントされていると仮定すれば、各閲覧画面に対応する情報収集プログラムを繰り返し実行する必要はない。各閲覧画面は、11又は複数のスレッドに用いる完全な測定サイクル、2各スレッドが各状態に出たり入ったりするタイミング、3各状態に対応する選択されたパフォーマンス基準、を表示する。図1には示していないが、全てのコンピュータシステムと同様に、システム105は、オペレーティングシステムを備え、オペレーティングシステム105は、そのオペレーションを制御するが、この制御には、プロセッサ150によるプログラム110の実行が含まれる。また、本発明に係る好適な一実施形態の要旨は、メインメモリ120に記憶されたパフォーマンスアナライザとして開示されているが、いわゆる当業者にとっては、本発明に係るシステム及び方法の全てが、他のコンピュータ読取可能媒体例えば、補助記憶装置ハードディスク、フロッピーディスク、CD-ROM等、インターネットからの伝送波、又は、他の形態リードオンリメモリ又はランダムアクセスメモリ上に記憶され、又は、これらから読み出され得るものであることは自明である。以上、データプロセッシングシステム100の指定コンポーネントについて説明したが、いわゆる当業者にとって周知のように実施形態として好適なデータプロセッシングシステムは、追加の又は異なるコンポーネントを備えたものでもよい。図2は、本発明に係るパフォーマンス解析システムのブロック構成を示したものである。図示したように、プログラム210は、マルチスレッド212,214,216,218からなる。プロセッサ220は、スレッド212,214,216,218を並列に実行する。メモリ240は、共有メモリを表したものであり、この共有メモリは、全実行スレッドがアクセスすることができる。共有メモリへのアクセスを調整するプロトコルについては、シャウンデニーによる米国特許出願第号、発明の名称共有メモリ分布の調整プロトコル代理人整理番号06502020700000に開示されており、これを参照されたい。ここでは、単一プロセッサ220が示されているが、マルチプロセッサを用いてスレッド212,214,216,218を実行してもよい。マルチスレッド212,214,216,218の並列実行を容易にするために、オペレーティングシステムは、各スレッドのオペレーション用にメモリ240をセグメントに分割し、各セグメントフィールドを初期化する。例えば、メモリセグメント245は、エンター状態/イグジット状態の識別子、ディベロッパー指定情報、及びスレッド識別情報から構成される。エンター状態識別子は、実行中において、スレッドが特定状態に入った場合に、これに対応するデータを記憶する。同様に、イグジット状態識別子は、アプリケーションプログラムの実行中において、スレッドが特定状態から出た場合に、これに対応するデータを記憶する。ディベロッパー指定データは、収集されたパフォーマンス解析データを表している。メモリのリザーブエリア250は、メモリ管理機能、例えば、競合スレッドの共有メモリ分布の調整等を行う。メモリのリザーブエリア250は、また、識別情報をメモリを使用するスレッドに割り付けるのに用いられる。図3に示したフローチャートは、本発明の一実施形態に係るパフォーマンス解析システムのオペレーションに関する付加詳細情報を提供するものである。パフォーマンスデータを生成する命令は、プログラムに挿入されるステップ305。操作インストルメントされたプログラムが実行されると、パフォーマンスデータが生成されるステップ310及び315。パフォーマンスデータの閲覧要求があると、パフォーマンスアナライザは、パフォーマンスデータにアクセスし、これを表示するステップ320。パフォーマンスアナライザは、データに対応して、パフォーマンスデータ及び関連ソースコードアセンブリコード即ち、機械語命令を表示することができる。これにより、ディベロッパーは、パフォーマンスデータを当該データを生成したソースコード及びアセンブリコードに関連付けることができる。図4は、A及びBとラベルされた2つの部分を備えたディスプレイ400を示したものである。Aとラベルされた第一の部分は、スレッド、時間、状態、及びパフォーマンスという4つの要素でのアプリケーションプログラムのパフォーマンス特性を示したものである。各スレッドについてのパフォーマンス情報は、棒グラフタイプの様式を用いて水平に表示される。時間は、横軸に表示され、パフォーマンスは、縦軸に表示される。ディスプレイ400上の2つのスレッド、即ち、スレッド1及びスレッド2は、同時に実行される。図示されるように、スレッド1についての横軸は、402とラベルされている。スレッド1は、横軸402上のxとラベルされた時間上のポイントで実行を開始する。スレッド2についての横軸は、404とラベルされている。スレッド2は、時間bで実行を開始する。各スレッドは、マルチ状態でオペレーションを実行し、各状態は、異なるパターンで表される。スレッド2は、測定周期の開始点では、アイドル状態である。このようなアイドル状態をとる理由の一つとして、スレッド2がスレッド1からのリソースを待つ状態にあることが挙げられる。この情報に基づいて、ディベロッパーは、状態間にあるスレッドにオペレーションを割り当てることができる。この割当は、パフォーマンスを改善するために、例えば、同一のシステムリソースの同時使用を要求するオペレーションを実行することなくなされる。図示されるように、スレッド1は、横軸402の時間xのポイントで、状態410になり、その状態410を時間yまで維持し、時間mで状態420になり、その状態420を時間nまで維持する。xとyとの間の水平距離は、mとnとの間の水平距離よりも短い。従って、スレッド1は、状態420でオペレーションが実行された時間の方が状態410でオペレーションが実行された時間よりも長くなっている。棒の垂直高さは、パフォーマンスレベルを示している。状態410の垂直高さは、状態420の垂直高さよりも低くなっており、これにより、状態410と状態420とは、異なったパフォーマンスレベルでオペレーションが実行されていることがわかる。実行スレッドがある状態から他の状態へ遷移するにつれての垂直高さの変化は、パフォーマンスレベルの変化に対応している。この情報は、パフォーマンスの連続状態間の遷移の影響を識別するのに用いることができる。更に、この情報によりディベロッパーの注意をプログラムエリアに差し向けることができ、パフォーマンス増加という変化を起こさせることが可能となる。Bとラベルされたディスプレイの下半分は、パフォーマンスアナライザのインタフェースの評価形態を表したものである。ディベロッパーは、選択された状態のパフォーマンス測定法に対応した演算式を指定する。パフォーマンスアナライザは、収集されたパフォーマンスデータ用の式の値を演算する。図示される例によれば、ディベロッパーは、状態440を選択している。最初の式NUMOPSは、一秒MFLOPS当たりの浮動小数点命令の回数100万の単位を演算するためのものである。2番目の式2CPUMHZは、指定した状態のパフォーマンスの理論ピークレベルを演算するためのものである。パフォーマンスアナライザは、特定状態についての数量的情報を提供することに関して、これらの2つの式を評価するものであればよい。例えば、MFLOPSを状態440の理論ピークパフォーマンスレベルで除算することにより、パフォーマンスアナライザは、状態440における各オペレーションにより表された理論ピークのパーセンテージ計算してディベロッパーに呈示する。結論本発明に係る方法及びシステムは、ハードウエア及びアプリケーションプログラムのソフトウエアコンポーネントからパフォーマンスデータを収集し、これによって、ディベロッパーは、どのようにパフォーマンスデータがプログラムの各スレッドに関連しているかを理解することができる。更に、このようなパフォーマンスデータの収集は、結局のところ、ディベロッパーがプログラム内で生じたパフォーマンス発行を理解したり、順次診断したりするのを補助することになる。以上本発明の実施の形態について説明したが、本発明の趣旨と範囲を逸脱しない範囲で種々の変更が可能であることは、いわゆる当業者にとって自明である。本発明の範囲は、特許請求の範囲とそれを裏付ける記述によって定められる。以下、図面に基づいて本発明の実施の形態を説明する。"