(57)【要約】【課題】本発明は、性能チューニング方法及び装置、プログラム及び記憶媒体に関し、プログラムの性能チューニングを効率を向上することを目的とする。【解決手段】プログラムの実行性能をチューニングする性能チューニング方法において、任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理し、任意の測定環境とは異なる測定環境を用いてプログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定し、性能情報に応じてプログラムの実行性能をチューニングするように構成する。【選択図】図１３
2007233855.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの実行性能をチューニングする性能チューニング方法であって、
任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、該任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理ステップと、
該任意の測定環境とは異なる測定環境を用いて該プログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定ステップと、
該性能情報に応じて該プログラムの実行性能をチューニングするチューニングステップとを含むことを特徴とする、性能チューニング方法。
【請求項２】
該測定条件は、測定を行う測定環境及びその測定環境での測定対象に関する情報を含むことを特徴とする、請求項１記載の性能チューニング方法。
【請求項３】
該リンク可能に管理された情報には、該任意の測定環境での測定時に設定された測定範囲と、該任意の測定範囲とは異なる次回の測定環境の候補に対して格納される対応する測定情報とを含むことを特徴とする、請求項１又は２記載の性能チューニング方法。
【請求項４】
異なる測定環境は、エミュレータによる測定とシミュレータによる測定とを含むことを特徴とする、請求項１〜３のいずれか１項記載の性能チューニング方法。
【請求項５】
該管理ステップは、複数の次回の測定環境に対して該測定条件と該性能情報をリンク可能に管理することを特徴とする、請求項１〜４のいずれか１項記載の性能チューニング方法。
【請求項６】
請求項１〜５のいずれか１項記載の性能チューニング方法の各ステップをコンピュータに実行させることを特徴とする、プログラム。
【請求項７】
請求項６記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【請求項８】
プログラムの実行性能をチューニングする性能チューニング装置であって、
任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、該任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理手段と、
該任意の測定環境とは異なる測定環境を用いて該プログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定手段と、
該性能情報に応じて該プログラムの実行性能をチューニングするチューニング手段とを含むことを特徴とする、性能チューニング装置。
【請求項９】
該測定条件は、測定を行う測定環境及びその測定環境での測定対象に関する情報を含むことを特徴とする、請求項９記載の性能チューニング装置。
【請求項１０】
該リンク可能に管理された情報には、該任意の測定環境での測定時に設定された測定範囲と、該任意の測定範囲とは異なる次回の測定環境の候補に対して格納される対応する測定情報とを含むことを特徴とする、請求項８又は９記載の性能チューニング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、性能チューニング方法及び装置、プログラム及び記憶媒体に係り、特に異なる実行性能の測定方法を用いて測定対象となるターゲットプログラムの性能をチューニングする性能チューニング方法及び装置、コンピュータにそのような性能チューニング方法による性能チューニングを行わせるプログラム、及びそのようなプログラムを格納したコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【０００２】
一般的に、クロス開発環境では、シミュレータやエミュレータ等を介して実行性能に関する情報を取得してプログラムのチューニングを行う。プログラムの実行性能の測定方法は、プログラムの実行環境に応じて異なる場合が多い。
【０００３】
例えば、エミュレータであるサンプラによりプログラム全体を測定し、関数毎の占有率や参照回数から、チューニング対象となる部分の絞り込みが行われる。又、絞り込んだ部分のより詳細な実行性能に関する情報を、サンプラ以外の実機稼動状況を表示するエミュレータであるパフォーマンスアナライザ（ＰＡ：Performance Analyzer）やシミュレータである高精度のプロファイラ等を用いて取得することで、チューニングポイントを絞り込むことも行われる。これにより、効果的で効率的なプログラムの性能チューニングを行うことができる。
【０００４】
サンプラの実行環境、ＰＡの実行環境、プロファイラの実行環境は、夫々独立して存在する。このため、測定対象となるターゲットプログラムの実行制御は、各プロジェクトに対して設定する必要がある。
【０００５】
図１は、従来の性能チューニング方法の一例を説明するフローチャートである。ここでは説明の便宜上、測定環境として、プログラムの実行性能の測定方法がプログラムの実行環境に応じて異なるサンプラ、プロファイラ及びＰＡが選択可能な場合について説明する。サンプラ、プロファイラ及びＰＡは、プログラムの実行性能を測定するツールである。
【０００６】
ステップＳ１は、プログラムの実行性能の測定環境を選択し、選択された測定環境がサンプラであれば処理はステップＳ２−１へ進み、プロファイラであれば処理はステップＳ２−２へ進み、ＰＡであれば処理はステップＳ２−３へ進む。ステップＳ２−２〜Ｓ７−２及びステップＳ２−３〜Ｓ７−３は、基本的にはステップＳ２−１〜Ｓ７−１と同様の処理を行うので、以下の説明では、最初に選択された測定環境がサンプラであり、次回に選択された測定環境がＰＡである場合について説明する。
【０００７】
ステップＳ２−１は、サンプラによりプログラムの実行性能を測定するプロジェクトを作成する。ステップＳ３−１は、サンプラの測定範囲（即ち、測定環境）をソース埋め込みの形で設定する場合に行われ、測定範囲を設定する。ステップＳ４−１は、測定ターゲットのビルド及びロードを行う。ステップＳ５−１は、ステップＳ３−１が実行されない場合に実行され、サンプラの測定範囲（即ち、測定環境）を設定する。ステップＳ６−１は、設定された測定範囲でサンプラによる測定を実行する。ステップＳ７−１は、測定の結果得られるプログラムの性能情報を取得し、処理はステップＳ８へ進む。
【０００８】
ステップＳ８は、取得された性能情報が所望の性能以上であり十分であるか否かを判定する。ステップＳ８の判定結果がＹＥＳであると、ステップＳ９は、プログラムの性能チューニングを行うか否かを判定する。ステップＳ９の判定結果がＹＥＳであると、ステップＳ１０は、オペレータからの指示に基づいてプログラムをチューニングする。ステップＳ８の判定結果がＮＯ、或いは、ステップＳ１０の後、ステップＳ１１は、他の測定環境でプログラムの実行性能を測定するか否かを判定し、判定結果がＹＥＳであると、処理はステップＳ１へ戻る。ステップＳ９又はＳ１１の判定結果がＮＯであると、処理は終了する。
【０００９】
図２〜図５は、図１に示すステップＳ２−１，Ｓ３−１，Ｓ５−１，Ｓ７−１を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
【００１０】
図２中、「+Sampler.PRJ」はステップＳ２−１において作成されたプロジェクトを示し、ここでは統合開発環境（ＩＤＥ：Integrated Development Environment）中に登録されているものとする。又、「-start_sampler.s」、「-sampler.lib」はサンプラによる測定で用いる測定用のソース、ライブラリである。更に、「-test1.c」、「-test2.c」、「-test3.c」はユーザアプリケーションである。ＩＤＥでは、上記の場合はプロジェクト制御によりサンプラ、ＰＡ又はプロファイラが選択され、ビルド制御によりコンパイル、アセンブル及びリンクが行われ、サンプラ又はＰＡ選択時にエミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得され、プロファイラ選択時にシミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得される。
【００１１】
図３中、太線で囲まれた部分は、ステップＳ３−１においてソース埋め込みの形で設定されるサンプラの測定範囲を示す。
【００１２】
図４中、太線で囲まれた部分は、ステップＳ５−１においてソース埋め込みの以外の形で設定されるサンプラの測定範囲を示す。特にプロファイラ等の場合のように、ツールにより「-start_sampler()」等のようにソース埋め込みを行わなくても良い場合がある。このような場合には、例えば図４に示す「○」でブレーク（break）してサンプラをオンにしてプログラムの実行性能の測定を行い、次の「○」でブレークすることで「○」と「○」の間を測定可能な測定範囲として設定することができる。
【００１３】
図５に示す例では、ステップＳ７−１で取得されるプログラムの性能情報は、各関数名に対する呼出し数及び占有率を含む。図５に示す如きプログラムの性能情報から、高コストの関数を特定することができ、例えば高コスト関数「func11()」に対しては別の測定環境でプログラムの実行性能を測定する。ここでは説明の便宜上、ステップＳ１において高コスト関数「func11()」に対してＰＡが測定環境として選択されるものとする。
【００１４】
図６〜図１０は、図１に示すステップＳ２−３，Ｓ３−３，Ｓ５−３，Ｓ７−３を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
【００１５】
図６中、「+PA.PRJ」はステップＳ２−３において作成されるプロジェクトを示し、「-start_pa.s」はＰＡによる測定で用いる測定用のソースである。又、「-test1.c」、「-test2.c」、「-test3.c」はユーザアプリケーションである。
【００１６】
図７中、太線で囲まれた部分は、ステップＳ３−１においてソース埋め込みの形で設定されたサンプラの測定範囲なので、ステップＳ３−３において先ず削除する。図８中、太線で囲まれた部分は、ステップＳ３−３においてソース埋め込みの形で設定されるＰＡの測定範囲を示す。ここでは、高コスト関数「func11()」に対してＰＡで測定を行うために、専用の関数が埋め込まれる。
【００１７】
図９中、太線で囲まれた部分は、ステップＳ５−３においてソース埋め込みの以外の形で設定されるＰＡの測定範囲を示す。
【００１８】
図１０に示す例では、ステップＳ７−３で取得されるプログラムの性能情報は、ＩＬＰ（並列度）、I＄−Miss、D$-Miss及びストールを含む性能指標からなる。従って、高コストの関数「func11()」の性能指標を特定することができる。
【発明の開示】
【発明が解決しようとする課題】
【００１９】
従来の性能チューニング方法では、プログラムの実行性能を測定する際、異なる測定環境（即ち、測定方法）を用いる場合や測定範囲を絞り込む測定を複数回行う場合に、オペレータはその都度測定範囲を設定し直すという煩雑な操作を行う必要があった。
【００２０】
又、例えばサンプラでの測定時に設定した設定情報をＰＡでの測定時に流用することが考えられるが、先に測定を行うサンプラでの測定結果が確定して初めて次に行うＰＡでの測定時の測定範囲が特定される場合等があるため、異なる測定方法（即ち、異なる測定環境）での測定時に設定した設定情報をそのまま流用することはできない。
【００２１】
従って、従来の性能チューニング方法では、プログラムの性能チューニングを効率良く行うことができないという問題があった。
【００２２】
そこで、本発明は、プログラムの性能チューニングの効率を向上可能な性能チューニング方法及び装置、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記の課題は、プログラムの実行性能をチューニングする性能チューニング方法であって、任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、該任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理ステップと、該任意の測定環境とは異なる測定環境を用いて該プログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定ステップと、該性能情報に応じて該プログラムの実行性能をチューニングするチューニングステップとを含むことを特徴とする性能チューニング方法によって達成できる。
【００２４】
上記の課題は、上記性能チューニング方法の各ステップをコンピュータに実行させることを特徴とするプログラムによっても達成できる。
【００２５】
上記の課題は、上記プログラムを格納したことを特徴とするコンピュータ読み取り可能な記憶媒体によっても達成できる。
【００２６】
上記の課題は、上記性能チューニング方法を用いることを特徴とするプログラム開発方法によっても達成できる。
【００２７】
上記の課題は、プログラムの実行性能をチューニングする性能チューニング装置であって、任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、該任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理手段と、該任意の測定環境とは異なる測定環境を用いて該プログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定手段と、該性能情報に応じて該プログラムの実行性能をチューニングするチューニング手段とを含むことを特徴とする性能チューニング装置によっても達成できる。
【発明の効果】
【００２８】
本発明によれば、プログラムの性能チューニングの効率を向上可能な性能チューニング方法及び装置、プログラム及び記憶媒体を実現することができる。
【発明を実施するための最良の形態】
【００２９】
本発明では、プログラムの実行性能を測定する際に設定された測定条件と、測定の結果取得された性能情報とを、異なる測定環境（即ち、測定方法）の候補に対してリンク可能に管理する。これにより、次に異なる測定環境（即ち、測定方法）を用いてプログラムの実行性能を測定する場合、測定範囲を絞り込む測定を複数回行う場合や先に行う測定の結果が確定しないと次に行う測定の測定条件が特定できない場合等であっても、次に行う測定の測定条件は自動的に設定できる。
【００３０】
例えば、統合開発環境（ＩＤＥ）では、プロジェクト制御によりサンプラ、パフォーマンスアナライザ（ＰＡ）又はプロファイラが選択され、ビルド制御によりコンパイル、アセンブル及びリンクが行われ、サンプラ又はＰＡ選択時にエミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得され測定時に設定された測定条件と共に次回の測定環境の候補に対してリンク可能に管理され、プロファイラ選択時にシミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得され測定時に設定された測定条件と共に次回の測定環境の候補に対してリンク可能に管理される。
【００３１】
つまり、異なる測定環境間で、測定条件と性能情報を共有することができる。
【００３２】
従って、オペレータは測定環境が変わる度に測定範囲等の測定条件を設定し直すという煩雑な操作を行う必要がない。又、測定環境が変わっても、チューニングポイントを逃すことなく、測定環境の候補を確実に抽出することができる。このため、効率が良く、且つ、効果的なチューニングを行うことができる。
【００３３】
以下に、本発明になる性能チューニング方法及び装置、プログラム及び記憶媒体の各実施例を、図１１以降と共に説明する。
【実施例】
【００３４】
本発明になる性能チューニング装置の一実施例は、本発明になる性能チューニング方法の一実施例、本発明になるプログラムの一実施例及び本発明になる記憶媒体の一実施例を用いる。本実施例では、本発明がパーソナルコンピュータ（ＰＣ）等のコンピュータシステムに適用されている。図１１は、本実施例において本発明が適用されるコンピュータシステムを示す斜視図である。
【００３５】
図１１に示すコンピュータシステム１００は、ＣＰＵやディスクドライブ等を内蔵した本体部１０１、本体部１０１からの指示により表示画面１０２ａ上に画像を表示するディスプレイ１０２、コンピュータシステム１００に種々の情報を入力するためのキーボード１０３、ディスプレイ１０２の表示画面１０２ａ上の任意の位置を指定するマウス１０４及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードするモデム１０５を有する。ディスプレイ１０２が表示部を構成し、キーボード１０３及びマウス１０４は入力部を構成する。
【００３６】
ディスク１１０等の可搬型記録媒体に格納されるか、モデム１０５等の通信装置を使って他のコンピュータシステムの記録媒体１０６からダウンロードされる、コンピュータシステム１００に少なくとも性能チューニング機能を持たせるプログラム（性能チューニングソフトウェア）の本実施例は、コンピュータシステム１００に入力されてコンパイルされる。プログラムの本実施例は、コンピュータシステム１００（即ち、後述するＣＰＵ２０１）をＣＡＤ機能を有するＣＡＤ装置の本実施例として動作させる。記憶媒体の本実施例は、プログラムの本実施例を格納した、例えばディスク１１０等のコンピュータ読み取り可能な記録媒体からなる。記録媒体の本実施例は、ディスク１１０、ＩＣカードメモリ、フロッピー（登録商標）ディスク等の磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の可搬型記録媒体に限定されるものではなく、モデム１０５やＬＡＮ等の通信装置や通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
【００３７】
図１２は、コンピュータシステム１００の本体部１０１内の要部の構成を説明するブロック図である。同図中、本体部１０１は、バス２００により接続されたＣＰＵ２０１、ＲＡＭやＲＯＭ等からなるメモリ部２０２、ディスク１１０用のディスクドライブ２０３及びハードディスクドライブ（ＨＤＤ）２０４からなる。本実施例では、ディスプレイ１０２、キーボード１０３及びマウス１０４も、バス２００を介してＣＰＵ２０１に接続されているが、これらは直接ＣＰＵ２０１に接続されていても良い。又、ディスプレイ１０２は、入出力画像データの処理を行う周知のグラフィックインタフェース（図示せず）を介してＣＰＵ２０１に接続されていても良い。プログラムや各種データを格納するための記憶部は、メモリ部２０２、ディスクドライブ２０３、ＨＤＤ２０４及びコンピュータシステム１００からアクセス可能な記録媒体１０６から選択された少なくとも１つで構成可能である。
【００３８】
尚、コンピュータシステム１００の構成は図１１及び図１２に示す構成に限定されるものではなく、代わりに各種周知の構成を使用しても良い。
【００３９】
図１３は、本実施例の動作を説明するフローチャートである。ステップＳ２１〜Ｓ３１の処理は、プログラムの手順に対応し、測定対象となるターゲットプログラムに対してＣＰＵ２０１により、即ち、コンピュータシステム１００の対応する手段により実行される。ここでは説明の便宜上、測定環境として、プログラムの実行性能の測定方法がプログラムの実行環境に応じて異なるサンプラ、プロファイラ及びＰＡが選択可能な場合について説明する。サンプラ、プロファイラ及びＰＡは、プログラムの実行性能を測定するツールである。
【００４０】
ステップＳ２１は、入力部から入力されたオペレータの指示に基づいて、プログラムの実行性能の測定環境を表示画面１０２ａ上で選択し、選択された測定環境がサンプラであれば処理はステップＳ２２−１へ進み、プロファイラであれば処理はステップＳ２２−２へ進み、ＰＡであれば処理はステップＳ２２−３へ進む。ステップＳ２２−２〜Ｓ２７及びステップＳ２２−３〜Ｓ２７は、基本的にはステップＳ２２−１〜Ｓ２７と同様の処理を行うので、以下の説明では、最初に選択された測定環境がサンプラであり、次回に選択された測定環境がＰＡである場合について説明する。
【００４１】
ステップＳ２２−１は、サンプラによりプログラムの実行性能を測定するプロジェクトを作成する。ステップＳ２３は、入力部から入力されたオペレータの指示に基づいて、最初はサンプラの測定範囲（即ち、測定開始及び終了情報を示す測定制御情報）をソース埋め込みの形で設定すると共に、次回の測定条件を設定する。次回の測定条件には、次回測定を行う測定環境や測定対象に関する情報が含まれる。このようにして設定された測定範囲及び次回の測定条件は、上記記憶部に格納される。ステップＳ２４−１は、測定対象となるターゲットのビルド及びロードを行う。ステップＳ２５は、ステップＳ２３が実行されない場合に実行され、入力部から入力されたオペレータの指示に基づいて、最初はサンプラの測定範囲（即ち、測定制御情報）を設定すると共に、次回の測定条件を設定する。このようにして設定された測定範囲及び次回の測定条件は、上記記憶部に格納される。ステップＳ２６−１は、設定された測定範囲でサンプラによる測定を実行する。ステップＳ２７は、測定の結果得られるプログラムの性能情報を取得し、測定時に設定された測定条件と共に次回の測定環境の候補に対してリンク可能に管理して記憶部に格納すると共に表示画面１０２ａ上に表示し、処理はステップＳ２８へ進む。
【００４２】
ステップＳ２８は、取得されて表示された性能情報が予め設定されている所望の性能以上であり十分であるか否かを判定する。ステップＳ２８の判定結果がＹＥＳであると、ステップＳ２９は、入力部から入力されたオペレータの指示に基づいて、プログラムの実行性能のチューニングを行うか否かを判定する。ステップＳ２９の判定結果がＹＥＳであると、ステップＳ３０は、入力部から入力されたオペレータからの指示に基づいて、プログラムの実行性能をチューニングする。これにより、測定結果、即ち、性能情報に応じて、プログラムの実行性能のチューニングを行うことができる。ステップＳ２８の判定結果がＮＯ、或いは、ステップＳ３０の後、ステップＳ３１は、入力部から入力されたオペレータの指示に基づいて、他の測定環境でプログラムの実行性能を測定するか否かを判定し、判定結果がＹＥＳであると、処理はステップＳ２１へ戻る。ステップＳ２９又はＳ３１の判定結果がＮＯであると、処理は終了する。
【００４３】
ここでは、次回の測定環境としてＰＡが選択されているので、次回の測定時には、ステップＳ２３又はＳ２５は入力部から入力されたオペレータの指示に基づいて、今度はＰＡの測定範囲（即ち、測定制御情報）を設定すると共に、必要に応じて次回の測定条件を設定する。説明の便宜上、更に次回の測定は行われないものとすると、ステップＳ２３又はＳ２５で設定された測定範囲は、上記記憶部に格納される。又、ステップＳ２７は、測定の結果得られるプログラムの性能情報を取得して記憶部に格納すると共に表示画面１０２ａ上に表示する。
【００４４】
次に、図１３に示すステップＳ２２−１，Ｓ２３，Ｓ２５，Ｓ２７を最初の測定時に実行する際にコンピュータシステム１００のディスプレイ１０２に表示される表示画面について説明する。
【００４５】
ステップＳ２２−１で作成されるプロジェクト「+Sampler.PRJ」は、例えば図２に示すように表示され、ここでは統合開発環境（ＩＤＥ）中に登録されているものとする。ＩＤＥでは、上記の場合はプロジェクト制御によりサンプラ、パフォーマンスアナライザ（ＰＡ）又はプロファイラが選択され、ビルド制御によりコンパイル、アセンブル及びリンクが行われ、サンプラ又はＰＡ選択時にエミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得され測定時に設定された測定条件と共に次回の測定環境の候補に対してリンク可能に管理され、プロファイラ選択時にシミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得され測定時に設定された測定条件と共に次回の測定環境の候補に対してリンク可能に管理される。
【００４６】
最初の測定時にステップＳ２３が行われると、図３に示すようにサンプラの測定範囲がソース埋め込みの形で設定される。この際、図１４に示す如き画面を表示して、入力部から入力されたオペレータの指示に基づいて、次回測定を行う測定環境や測定対象に関する情報が次回の測定条件として設定される。図１４は、一例として、ＰＡが次回測定を行う測定環境として設定され、占有率が８０％以上の関数が測定対象に設定される場合を示す。これにより、この場合の次回の測定条件については、例えば図１５に示す情報が記憶部に格納される。図１５では、各選択可能なツールに対して、測定開始及び終了情報を示す測定制御情報「開始」及び「終了」と次回測定を行うツール（測定環境）であるか否かを示す情報「次回」と、次回測定を行うＰＡの測定対象が占有率が８０％以上の関数であることを示す情報が、次回測定を行う測定条件として設定されている。図１５中、「次回」のフィールドに「○」印が記載されていると、次回測定を行うツールであることが示される。ここでは、先ずサンプラで測定を行い、次にＰＡで測定を行うので、図１５中、先ずサンプラに対する測定制御情報（測定範囲）が格納されると、必要に応じて適切な変換処理を行って得られた対応する測定制御情報がＰＡに対して自動的に格納される。サンプラでの測定の後にプロファイラでの測定を行う場合には、先ずサンプラに対する測定制御情報が格納されると、必要に応じて適切な変換処理を行って得られた対応する測定制御情報がプロファイラに対して自動的に格納される。
【００４７】
ステップＳ２３の代わりに最初の測定時にステップＳ２５が行われると、図４に示すようにサンプラの測定範囲がソース埋め込みの以外の形で設定される。この際、上記ステップＳ２３の場合と同様に、図１４に示す如き画面を表示して、入力部から入力されたオペレータの指示に基づいて、次回測定を行う測定環境や測定対象に関する情報が次回の測定条件として設定される。これにより、この場合の次回の測定条件については、例えば図１５に示す情報が記憶部に格納される。
【００４８】
図１６は、最初の測定時にステップＳ２７が行われると表示される測定結果を示す図である。図１６に示す測定結果には、最初の測定により得られる、各関数名に対する呼出し数及び占有率を含むプログラムの性能情報と、図１５に示す如き格納情報から得られる、次回の測定時の測定制御情報と測定対象を含む次回測定条件とからなる。測定制御情報は、次回測定を行うＰＡの測定開始及び終了に関する情報からなる。又、測定対象は、次回測定を行うＰＡの測定対象を「○」印で示し、測定対象外を「×」印で示す。図１６に示す如きプログラムの性能情報から、高コストの関数を特定することができ、高コスト関数に対してプログラムの実行性能を次回測定する測定環境を選択できる。ここでは、ステップＳ２１において占有率が最も高い高コスト関数「func11()」に対してＰＡが次回の測定環境として選択される。従って、次回測定するＰＡの測定範囲は、「test1.c line 12」にＰＡの測定開始位置を示す「 pa_start:」が挿入候補として示されている図１６の測定制御情報から抽出可能である。尚、占有率が最も高い関数に対してＰＡを次回の測定環境として選択する等の選択基準は、予め設定されていても、オペレータにより動的に選択可能としても良い。このようにして、ステップＳ２７での測定の結果得られるプログラムの性能情報は、ステップＳ２３又はＳ２５で設定された次回の測定時の測定条件と共に次回の測定環境の候補に対してリンク可能に管理される。
【００４９】
次に、図１３に示すステップＳ２２−３，Ｓ２３，Ｓ２５，Ｓ２７を次回の測定時に実行する際にコンピュータシステム１００のディスプレイ１０２に表示される表示画面について説明する。ここでは、ステップＳ２８は、例えば関数の占有率が８０％以上の場合に所望の性能以上であり十分であると判断するものとする。
【００５０】
次回の測定時にステップＳ２２−３で作成されるプロジェクト「+PA.PRJ」は、例えば図６に示すように表示される。次回の測定時に行われるステップＳ２３では、ソース埋め込みの形でＰＡの測定範囲を設定するが、最初の測定時に行ったステップＳ２７で抽出された測定制御情報から、高コスト関数「func11()」に対してＰＡで測定を行うための専用の関数が自動的に埋め込まれる。このようなＰＡの測定範囲の自動的な設定は、最初の測定時に行ったステップＳ２７での測定の結果得られるプログラムの性能情報が、最初の測定時に行ったステップＳ２３又はＳ２５で設定された次回の測定時の測定条件と共に次回の測定環境の候補に対してリンク可能に管理されているため実現できる。この結果、例えば図８の如きＰＡの測定範囲が自動的に設定される。
【００５１】
又、次回の測定時にステップＳ２３が実行されずに行われるステップＳ２５では、ソース埋め込みの以外の形でＰＡの測定範囲が設定される。この場合も、最初の測定時に行ったステップＳ２７で抽出された測定制御情報から、ＰＡの測定範囲が自動的に設定される。この結果、例えば図８の如きＰＡの測定範囲が自動的に設定される。
【００５２】
この結果、次回の測定時に行われるステップＳ２７では、例えば図１０に示す如き性能情報が取得されて表示される。これにより、オペレータに煩雑な操作を必要とすることなく、容易に、且つ、確実に、高コストの関数「func11()」の性能指標を特定することができる。
【００５３】
従って、プログラムの実行性能をチューニングする性能チューニング方法又は装置において、任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理機能又は手段は、上記ステップＳ２３又はＳ２５及びステップＳ２７で構成可能であり、任意の測定環境とは異なる測定環境を用いてプログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定機能又は手段は、上記ステップＳ２３又はＳ２５で構成可能であり、性能情報に応じてプログラムの実行性能をチューニングするチューニング機能又は手段は、上記ステップＳ２８〜Ｓ３０で構成可能である。
【００５４】
ところで、サンプラによる測定の後、ＰＡで測定を行ったり、或いは、プロファイラで測定を行ったりする場合もある。このような場合には、最初にステップＳ２３又はＳ２５が行われる際に図１７に示す如き画面を表示して、入力部から入力されたオペレータの指示に基づいて、次回測定を行う測定環境や測定対象に関する情報が２種類の次回の測定条件として設定されるようにしても良い。図１７中、左側ではＰＡで次回測定を行う場合の条件設定が行え、右側ではプロファイラで次回測定を行う場合の条件設定が行える。ここでは、一例として左側でＰＡに対して占有率が８０％以上の関数が測定対象に設定され、測定箇所として「関数」と「ソース反映」が選択されており、右側でプロファイラに対して呼び出し数（又は、参照回数）が８回以上の関数が測定対象に設定され、測定箇所として「ループ（LOOP）」と「範囲設定」が設定されている。尚、２種類の測定条件を設定する画面は、同時に表示されなくても例えば交互に表示される構成であっても良い。「ソース反映」は、占有率が８０％以上の関数（即ち、ＰＡの測定範囲の関数）をソース中に自動的に埋め込む設定である。又、「範囲設定」は、ループ（即ち、プロファイラの測定範囲）の設定を有効化する設定である。
【００５５】
図１８は、図１７の如き条件設定の後に最初の測定時にステップＳ２７が行われると表示される測定結果を示す図である。図１８に示す測定結果には、各関数名に対する呼出し数及び占有率を含むプログラムの性能情報と、ＰＡによる次回の測定時の測定制御情報と測定対象を含むＰＡの次回の測定条件と、プロファイラによる次回測定時の測定制御情報と測定対象を含むプロファイラの次回の測定条件とからなる。ＰＡの測定制御情報は、次回測定を行うＰＡの測定開始及び終了に関する情報が測定対象区間のアドレスとして示されており、ＰＡの測定対象は、次回測定を行うＰＡの測定対象が「関数」であるか否か等を示す。プロファイラの測定制御情報は、次回測定を行うプロファイラの測定開始及び終了に関する情報からなり、プロファイラの測定対象は、次回測定を行うプロファイラの測定対象が「ループ（LOOP）」であるか否か等を示す。図１８に示すプログラムの性能情報によれば、次回の測定時にＰＡを用いる場合にもプロファイラを用いる場合にも対応できる。図１８に示す如きプログラムの性能情報からも、高コストの関数を特定することができ、高コスト関数に対してプログラムの実行性能を次回測定する測定環境を選択できる。
【００５６】
又、サンプラによる測定の後、プロファイラで測定する測定範囲がチューニングポイントに直結しているような場合もある。このような場合には、最初の測定時にステップＳ２３又はＳ２５が行われる際に図１９に示す如き画面を表示して、入力部から入力されたオペレータの指示に基づいて、次回測定を行う測定環境や測定対象に関する情報が次回の測定条件として設定されるようにしても良い。図１９中、プロファイラで次回測定を行う場合の条件設定が、一例としてプロファイラに対して測定対象が呼び出し数（又は、参照回数）が８回以上の関数に設定され、測定箇所として「ループ（LOOP）」と「範囲設定」が設定され、埋め込み記述として最適化挿入命令「# pragma loop unroll」が設定されている。「範囲設定」は、ループ（即ち、プロファイラの測定範囲）の設定を有効化する設定である。「# pragma loop unroll」は、高頻度ループの箇所に、最適化命令（# pragma loop unroll: for/whileループの展開最適化）の挿入を行う設定である。最適化挿入命令を測定条件に埋め込むことで、図２０に示すように、プログラムの自動チューニングが可能となる。最適化命令の挿入行が関数外であるか関数内であるかは、図１３に示すステップＳ２２−１（Ｓ２２−２又はＳ２２−３）においてターゲットをビルドする際に通常ターゲットに含まれるデバッグ情報の関数定義行等から判断することが可能である。
【００５７】
図２０は、図１９の如き条件設定の後に最初の測定時にステップＳ２７が行われると表示される測定結果を示す図である。図２０に示す測定結果には、各関数名に対する呼出し数及び占有率を含むプログラムの性能情報と、ＰＡによる次回の測定時の測定制御情報と測定対象を含むＰＡの次回測定情報と、プロファイラによる次回測定時の測定制御情報と測定対象を含むプロファイラの次回測定情報と、最適化挿入命令とからなる。つまり、図２０に示す測定結果は、図１８に示す測定結果に加え、最適化挿入命令を含む。図２０に示すプログラムの性能情報によれば、次回の測定時にＰＡを用いる場合にもプロファイラを用いる場合にも対応できる。図２０に示す如きプログラムの性能情報からも、高コストの関数を特定することができ、高コスト関数に対してプログラムの実行性能を次回測定する測定環境を選択できる。更に、プログラムの自動チューニングを行うことができる。
【００５８】
尚、本発明は、以下に付記する発明をも包含するものである。
（付記１）  プログラムの実行性能をチューニングする性能チューニング方法であって、
任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、該任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理ステップと、
該任意の測定環境とは異なる測定環境を用いて該プログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定ステップと、
該性能情報に応じて該プログラムの実行性能をチューニングするチューニングステップとを含むことを特徴とする、性能チューニング方法。
（付記２）  該測定条件は、測定を行う測定環境及びその測定環境での測定対象に関する情報を含むことを特徴とする、付記１記載の性能チューニング方法。
（付記３）  該リンク可能に管理された情報には、該任意の測定環境での測定時に設定された測定範囲と、該任意の測定範囲とは異なる次回の測定環境の候補に対して格納される対応する測定情報とを含むことを特徴とする、付記１又は２記載の性能チューニング方法。
（付記４）  異なる測定環境は、エミュレータによる測定とシミュレータによる測定とを含むことを特徴とする、付記１〜３のいずれか１項記載の性能チューニング方法。
（付記５）  該管理ステップは、複数の次回の測定環境に対して該測定条件と該性能情報をリンク可能に管理することを特徴とする、付記１〜４のいずれか１項記載の性能チューニング方法。
（付記６）  付記１〜５のいずれか１項記載の性能チューニング方法の各ステップをコンピュータに実行させることを特徴とする、プログラム。
（付記７）  付記６記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
（付記８）  付記１〜５のいずれか１項記載の性能チューニング方法を用いることを特徴とする、プログラム開発方法。
（付記９）  プログラムの実行性能をチューニングする性能チューニング装置であって、
任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、該任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理手段と、
該任意の測定環境とは異なる測定環境を用いて該プログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定手段と、
該性能情報に応じて該プログラムの実行性能をチューニングするチューニング手段とを含むことを特徴とする、性能チューニング装置。
（付記１０）  該測定条件は、測定を行う測定環境及びその測定環境での測定対象に関する情報を含むことを特徴とする、付記９記載の性能チューニング装置。
（付記１１）  該リンク可能に管理された情報には、該任意の測定環境での測定時に設定された測定範囲と、該任意の測定範囲とは異なる次回の測定環境の候補に対して格納される対応する測定情報とを含むことを特徴とする、付記９又は１０記載の性能チューニング装置。
（付記１２）  異なる測定環境は、エミュレータによる測定とシミュレータによる測定とを含むことを特徴とする、付記９〜１１のいずれか１項記載の性能チューニング装置。
（付記１３）  該管理手段は、複数の次回の測定環境に対して該測定条件と該性能情報をリンク可能に管理することを特徴とする、付記９〜１２のいずれか１項記載のチューニング装置。
【００５９】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図面の簡単な説明】
【００６０】
【図１】従来の性能チューニング方法の一例を説明するフローチャートである。
【図２】ステップＳ２−１を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
【図３】ステップＳ３−１を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
【図４】ステップＳ５−１を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
【図５】ステップＳ７−１を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
【図６】ステップＳ２−３を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
【図７】ステップＳ３−３を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
【図８】ステップＳ３−３を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
【図９】ステップＳ５−３を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
【図１０】ステップＳ７−３を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
【図１１】本発明が適用されるコンピュータシステムを示す斜視図である。
【図１２】コンピュータシステムの本体部内の要部の構成を説明するブロック図である。
【図１３】実施例の動作を説明するフローチャートである。
【図１４】最初にステップＳ２３が行われる際に表示される次回の測定条件設定画面の一例を示す図である。
【図１５】測定範囲及び次回の測定条件が設定されると記憶部に格納される情報を説明する図である。
【図１６】最初にステップＳ２７が行われる際に表示される測定結果を示す図である。
【図１７】次回の測定条件設定画面の他の例を示す図である。
【図１８】次回にステップＳ２７が行われる際に表示される測定結果を示す図である。
【図１９】次回の測定条件設定画面の更に他の例を示す図である。
【図２０】次回にステップＳ２７が行われる際に表示される測定結果を示す図である。
【符号の説明】
【００６１】
１００      コンピュータシステム
１０１      本体部
１０２      ディスプレイ
１０２ａ      表示画面
１０３      キーボード
１０４      マウス
１０５      モデム
１０６      記録媒体
１１０      ディスク
２００      バス
２０１      ＣＰＵ
２０２      メモリ部
２０３      ディスクドライブ
２０４      ハードディスクドライブ
【図１】
2007233855.tif 000003
【図２】
2007233855.tif 000004
【図３】
2007233855.tif 000005
【図４】
2007233855.tif 000006
【図５】
2007233855.tif 000007
【図６】
2007233855.tif 000008
【図７】
2007233855.tif 000009
【図８】
2007233855.tif 000010
【図９】
2007233855.tif 000011
【図１０】
2007233855.tif 000012
【図１１】
2007233855.tif 000013
【図１２】
2007233855.tif 000014
【図１３】
2007233855.tif 000015
【図１４】
2007233855.tif 000016
【図１５】
2007233855.tif 000017
【図１６】
2007233855.tif 000018
【図１７】
2007233855.tif 000019
【図１８】
2007233855.tif 000020
【図１９】
2007233855.tif 000021
【図２０】
2007233855.tif 000022