JP2006277279A - プログラム性能情報の採取方法及びその装置並びにプログラムへの性能情報採取機能追加方法及びその装置 - Google Patents
プログラム性能情報の採取方法及びその装置並びにプログラムへの性能情報採取機能追加方法及びその装置 Download PDFInfo
- Publication number
- JP2006277279A JP2006277279A JP2005094860A JP2005094860A JP2006277279A JP 2006277279 A JP2006277279 A JP 2006277279A JP 2005094860 A JP2005094860 A JP 2005094860A JP 2005094860 A JP2005094860 A JP 2005094860A JP 2006277279 A JP2006277279 A JP 2006277279A
- Authority
- JP
- Japan
- Prior art keywords
- program
- procedure
- performance information
- performance
- collecting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】 手続きの呼出元毎の性能情報を求めることを可能とする。
【解決手段】 手続きが呼び出される度に、該手続きに関連した性能関連情報を収集する収集ステップと、収集された前記性能関連情報を前記手続の呼出元毎にグループ化するグループ化ステップと、グループ化された前記性能関連情報を基に、呼出元毎の性能情報を算出する算出ステップと、を備える。
【選択図】 図5
【解決手段】 手続きが呼び出される度に、該手続きに関連した性能関連情報を収集する収集ステップと、収集された前記性能関連情報を前記手続の呼出元毎にグループ化するグループ化ステップと、グループ化された前記性能関連情報を基に、呼出元毎の性能情報を算出する算出ステップと、を備える。
【選択図】 図5
Description
本発明は、プログラムの性能情報を採取するための方法及びその装置並びにプログラムへの性能情報採取機能追加方法及びその装置に関し、特に、プログラム内において呼び出される手続きに関連した性能情報を採取するための方法及びその装置並びにプログラムへの性能情報採取機能追加方法及びその装置に関する。
プログラムの実行時間を短縮するためには、プログラムリストを見て、実行時間が長いと思われる箇所を改良することが行われるが、プログラムを見ただけでは実行時間が長い箇所を漏れなく発見できるとは限らない。そのため、実際にプログラムを実行してみて、プログラムの各部分毎の実行時間を測定する必要がある。この点に関し、従来、手続き呼び出しの入口・出口に性能情報収集ルーチンを挿入して手続きの性能を収集する方法は知られている(例えば、特許文献1参照。)。
特開平4−215144号公報
しかし、従来の性能情報採取方法では、手続きの実行時間の合計から性能情報を表示しているため、手続きの呼出元毎の性能情報を表示できないという問題があった。つまり、同一の手続きが呼ばれた場合であっても、呼出元毎に引数値が異なったり、呼出し時の情況が異なったりするため、一般には、手続きの実行時間が異なる。このような同一の手続きに対する呼出元毎の実行時間の相違はプログラムリストを見ただけで判断することは困難である。
また、手続きがマルチスレッド化された場合、各スレッドの実行順序が表示できないという問題があった。各スレッドの実行順序が不明であると、デバッグが困難になる場合がある。
そこで、本発明は、手続きの呼出元毎の性能情報とスレッドの実行順序を求めることを可能とするプログラム性能情報の採取方法及びその装置並びにプログラムへの性能情報採取機能追加方法及びその装置を提供することを目的とする。
本発明の第1の観点によれば、手続きが呼び出される度に、該手続きに関連した性能関連情報を収集する収集ステップと、収集された前記性能関連情報を前記手続の呼出元毎にグループ化するグループ化ステップと、グループ化された前記性能関連情報を基に、呼出元毎の性能情報を算出する算出ステップと、を備えることを特徴とするプログラムの性能情報の採取方法が提供される。
本発明の第1の観点によるプログラムの性能情報の採取方法において、前記収集ステップは、前記手続きの内部又は前記手続きから呼び出された収集手続きにおいて行うようにしてもよい。
本発明の第1の観点によるプログラムの性能情報の採取方法において、前記手続きに前記収集ステップを行うための文を追加するステップを更に備えるようにしてもよい。
本発明の第1の観点によるプログラムの性能情報の採取方法において、前記収集手続きを予めライブラリ内に用意しておくようにしてもよい。
本発明の第1の観点によるプログラムの性能情報の採取方法において、前記グループ化ステップは、前記手続きの内部又は前記手続きから呼び出されたグループ化手続きにおいて行うようにしてもよい。
本発明の第1の観点によるプログラムの性能情報の採取方法において、前記手続きに前記グループ化ステップを行うための文を追加するステップを更に備えるようにしてもよい。
本発明の第1の観点によるプログラムの性能情報の採取方法において、前記グループ化手続きを予めライブラリ内に用意しておくようにしてもよい。
本発明の第1の観点によるプログラムの性能情報の採取方法において、前記算出ステップは、性能情報の採取の対象となっているメインプログラムにおいて行うようにしてもよい。
本発明の第1の観点によるプログラムの性能情報の採取方法において、前記メインプログラムに前記算出ステップを行うための文を追加するステップを更に備えるようにしてもよい。
本発明の第1の観点によるプログラムの性能情報の採取方法において、前記性能関連情報及び前記性能情報は、実行時間に関連した情報を含むようにしてもよい。
本発明の第1の観点によるプログラムの性能情報の採取方法において、前記性能関連情報は、マルチスレッド化された手続きの各スレッドに関する性能関連情報も含むようにしてもよい。
本発明の第2の観点によれば、プログラムに、手続きが呼び出される度に、該手続きに関連した性能関連情報を収集するための命令を追加するステップと、前記プログラムに、収集された前記性能関連情報を前記手続の呼出元毎にグループ化するための命令を追加するステップと、前記プログラムに、グループ化された前記性能関連情報を基に、呼出元毎の性能情報を算出するための命令を追加するステップと、を備えることを特徴とするプログラムへの性能情報採取機能追加方法が提供される。
本発明の第2の観点による性能情報採取機能追加方法において、前記命令は、予め用意されたライブラリに含まれた手続きに含まれるものを含むようにしてもよい。
本発明の第2の観点による性能情報採取機能追加方法において、前記命令を追加するステップは、前記命令を実現するための文を前記プログラムに追加するステップを備えるようにしてもよい。
本発明によれば、手続きが呼び出される度に、該手続きに関連した性能関連情報を収集する収集ステップと、収集された前記性能関連情報を前記手続の呼出元毎にグループ化するグループ化ステップと、グループ化された前記性能関連情報を基に、呼出元毎の性能情報を算出する算出ステップと、を備えるので、手続きの呼出元毎の性能情報を求めることが可能となる。また、手続きが並列に実行されているときのスレッドの実行順序を求めることが可能となる。
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
[実施形態1]
図1は、本発明の実施形態による性能情報採取機能追加装置の構成を示すブロック図である。
図1は、本発明の実施形態による性能情報採取機能追加装置の構成を示すブロック図である。
図1を参照すると、性能情報採取機能追加装置は、書換部112、コンパイラ114、手続群ライブラリ116及びリンカ118を備える。
書換部112は、手続呼出文検索手段112−1、呼出元情報追加手段112−2、性能情報算出手続呼出文追加手段112−3、手続本体検索手段112−4、性能関連情報収集処理文追加手段112−5、性能関連情報収集手続呼出文追加手段112−6及び性能関連情報グループ化手続呼出文追加手段112−7を備える。
手続呼出文検索手段112−1は、ソースプログラム111から全ての手続呼出文を検索する。
呼出元情報追加手段112−2は、手続呼出文がある箇所である呼出元を識別するための呼出元識別情報をソースプログラムに追加する。
性能情報算出手続呼出文追加手段112−3は、性能情報算出手続を呼び出すための文をソースプログラムに追加する。追加する箇所は、通常は、メインプログラムの最後であるが、例えば、途中結果を知りたいのであれば、プログラムの途中であっても良い。
手続本体検索手段112−4は、手続きの本体を検索する。ここで、手続きとは、例えば、FORTRANでいえば、サブルーチン(subroutine)やファンクション(function)であり、C言語でいえば関数(function)であり、JAVA(登録商標)でいえばプロシジュアー(procedure)である。また、言語によっては、メソッド(method)ともいう。
性能関連情報収集処理文追加手段112−5は、検索された手続きの内部に性能関連情報収集処理文を追加する。
性能関連情報収集手続呼出文追加手段112−6は、検索された手続きの内部に性能関連情報収集手続呼出文を追加する。
性能関連情報グループ化手続呼出文追加手段112−7は、検索された手続きの内部に性能関連情報グループ化手続呼出し文を追加する。
コンパイラ114は、書換部112により書き換えられたソースプログラム113をコンパイルし、オブジェクト115を生成する。オブジェクトは、ソースプログラム113を反映した機械語の命令群より成る。
手続群ライブラリ116は、性能関連情報収集手続オブジェクト116−1、性能関連情報グループ化手続オブジェクト116−2及び性能情報算出手続オブジェクト116−3を含む。ここでオブジェクトとは、そのオブジェクト用のソースプログラムをコンパイルすることにより得られたものである。例えば、性能関連情報収集手続オブジェクト116−1は、性能関連情報収集手続を記述したソースプログラムをコンパイルすることにより得られたものである。各オブジェクトは、通常のオブジェクトと同様に、リロケータブルであり、アドレス不定の機械語の命令群より成る。
リンカ118は、オブジェクト115と手続群ライブラリ116内のオブジェクト群をリンクして、ロードモジュール119を生成する。
次に、書換部112の動作例について説明する。
ここでは、図2に示すようなプログラムがソースプログラム111であるとする。手続きsub1は2つの異なった呼出元から呼ばれているので、各呼出元毎に手続きsub1の性能情報(例えば、実行時間の平均値)を得たい。手続きsub2は、1つの呼出元のみから呼ばれているが、複数の箇所から呼ばれても、各呼出元毎に手続きsub2の性能情報を得られるようにする。また、ループを手続き呼出に変換し、変換した手続きを並列に実行するときに、符号301−4のループが並列化手続きに変換された場合は、並列化された手続きの実行順序情報も得られるようにする。
図2に示されるソースプログラム111は、書換部112により、図3に示されるプログラムに書き換えられる。但し、図3には、書き換えられたプログラムの他に、性能関連情報収集手続と性能関連情報グループ化手続を兼ねた手続きのソースプログラムと性能情報集計手続のソースプログラムとdoループが並列化されたときのイメージも示している。但し、doループの並列化は、書換部112の前段にある不図示の部分がソースプログラム111の一部修正により行っている。具体的には、符号301−4のdoループは、mulという手続きの呼出しに書き換えられ、手続きmulの内部においては、1例として、4つのスレッドを起動する命令(図示せず)が含まれている。
図4を参照すると、まず、現在位置をソースプログラム111の先頭行にする(ステップS201)。次に、手続呼出文検索手段112−1は、現在行の文は手続呼出文であるか否かを判断する(ステップS203)。ここでは、符号301−1、301−2及び301−3で示される文および符号301−4で示される文が並列化されたときは301−4(図2参照)が手続呼出文であると判断される。
ステップS203の判断結果が肯定的である場合には(ステップS203でYES)、呼出元情報追加手段112−2は、ソースプログラムに呼出元情報を追加する。ここでは、呼出元識別情報を担うための変数positionとスレッドの実行順序情報を担うための変数taskが整数として宣言され(符号302−1、302−2、302−3、302−4及び303−5参照)、各呼出元の直前で変数positionに呼出元識別情報が代入され(符号303−1、303−2及び303−3参照)、更に、手続きの引数としてpositionとtaskが追加される(符号304−1、304−2、304−3、304−4、305−1、305−2、305−3、305−4及び305−5参照)。
次に、性能情報算出手続呼出文追加手段112−3は、現在行は、メインプログラムの最後であるか否かを判断し(ステップS207)、そうであれば(ステップS207でYES)、その直前に性能情報算出手続呼出文を追加する(ステップS209)(符号306−1及び306−2参照)。また、性能関連情報と性能情報を出力するための文をメインプログラムの最後に追加する(ステップS211)(符号307参照)。
次に、手続本体検索手段112−4は、現在行は、手続きの先頭文であるか否かを判断し(ステップS213)、そうであれば(ステップS213でYES)、性能関連情報収集処理文追加手段112−5は、手続きの内部に性能関連情報収集文とスレッドの実行順序情報収集文を追加し(ステップS215)(符号308−1、308−2、308−3、309−1、309−2、309−3、310−1、310−2、310−3、318−1、318−2及び318−3参照)、性能関連情報収集手続呼出文追加手段112−6は、手続きの内部に性能関連情報収集手続呼出文を追加し(ステップS217)(符号311−1、311−2及び311−3参照)、情報関連情報グループ化手続呼出文追加手段112−7は、手続きの内部に情報関連情報グループ化手続呼出文を追加する(ステップS219)(符号311−1、311−2及び311−3参照)。図3に示す例では、shuushuuという名称の手続きは、情報関連情報収集手続きと情報関連情報グループ化手続きを合わせたものである。符号312で示す文が性能関連情報収集手続きに関連した文であり、符号313及び314で示す文が性能関連情報グループ化手続きに関連した文である。なお、ステップS217及びS219に関連して、コモン変数の宣言をソースプログラムに追加する(符号315参照)。これは、性能関連情報収集手続き、性能関連情報グループ化手続及び性能情報算出手続のコモン変数(符号316及び317参照)に合わせたものである。
次に、現在位置を次の行にして(ステップS221)、その行がプログラムの最後でなければ(ステップS223でNO)、ステップS203に戻り、最後であれば(ステップS223でYES)、処理を終了する。
図3の例では、性能関連情報としては、同一の呼出元から手続きが呼ばれる回数kaisuu(position)と同一の呼出元からの全ての手続きの呼出しに対する手続きの合計実行時間total(position)が得られる。また、性能情報としては、同一の呼出元から呼ばれた手続きの平均実行時間heikin(position)が得られる。さらに、手続きが並列に実行されているときは各スレッドの実行開始時間としてスレッドの実行順序情報task(position,task)が得られる。
図5は、ロードモジュール119が実行される時のプログラムの性能情報の採取方法を説明するためのフローチャートである。
図5を参照すると、手続きが呼び出される度に(ステップS231)、性能関連情報を収集し(ステップS233)、性能関連情報をグループ化する(ステップS235)。そして、メインプログラムの最後で性能情報を算出する(ステップS237)。
ステップS231は、符号309、310及び311で示す文を実行することにより実現される。ステップS235は、符号311で示す文を実行することにより実現される。ステップS237は、符号306で示す文を実行することにより実現される。
[実施形態2]
実施形態1では、性能関連情報収集、性能関連情報グループ化及び性能情報算出を手続群ライブラリ116内のオブジェクト群を利用することにより実現していた。
実施形態1では、性能関連情報収集、性能関連情報グループ化及び性能情報算出を手続群ライブラリ116内のオブジェクト群を利用することにより実現していた。
これに対し、実施形態1では、手続群ライブラリ116内のオブジェクト群を利用せずに、性能関連情報収集、性能関連情報グループ化及び性能情報算出を実現する。
図6は、本発明の実施形態による性能情報採取機能追加装置の構成を示すブロック図である。
図6を参照すると、性能情報採取機能追加装置は、書換部112B、コンパイラ114及びリンカ118を備える。
書換部112Bは、手続呼出文検索手段112−1、呼出元情報追加手段112−2、性能情報算出処理文追加手段112−8、手続本体検索手段112−4、性能関連情報収集処理文追加手段112−9及び性能関連情報グループ化処理文追加手段112−10を備える。
手続呼出文検索手段112−1は、ソースプログラム111から全ての手続呼出文を検索する。
呼出元情報追加手段112−2は、手続呼出文がある箇所である呼出元を識別するための呼出元識別情報をソースプログラムに追加する。
性能情報算出処理文追加手段112−8は、性能情報算出処理文をソースプログラムに追加する。追加する箇所は、通常は、メインプログラムの最後であるが、例えば、途中結果を知りたいのであれば、プログラムの途中であっても良い。
手続本体検索手段112−4は、手続きの本体を検索する。ここで、手続きとは、例えば、FORTRANでいえば、サブルーチン(subroutine)やファンクション(function)であり、C言語でいえば関数(function)であり、JAVA(登録商標)でいえばプロシジュアー(procedure)である。また、言語によっては、メソッド(method)ともいう。
性能関連情報収集処理文追加手段112−9は、検索された手続きの内部に性能関連情報収集処理文を追加する。
性能関連情報グループ化処理文追加手段112−10は、検索された手続きの内部に性能関連情報グループ化処理文を追加する。
コンパイラ114は、書換部112により書き換えられたソースプログラム113Bをコンパイルし、オブジェクト115Bを生成する。
リンカ118は、オブジェクト115を元に、ロードモジュール119Bを生成する。
次に、書換部112の動作例について説明する。
ここでは、実施形態1と同様に、図2に示すようなプログラムがソースプログラム111であるとする。手続きsub1は2つの異なった呼出元から呼ばれているので、各呼出元毎に手続きsub1の性能情報(例えば、実行時間の平均値)を得たい。手続きsub2は、1つの呼出元のみから呼ばれているが、複数の箇所から呼ばれても、各呼出元毎に手続きsub2の性能情報を得られるようにする。また、符号301−4のループが並列化手続きに変換された場合は、並列化された手続きの実行順序情報も得られるようにする。
図2に示されるソースプログラム111は、書換部112Bにより、図7に示されるプログラムに書き換えられる。
図8を参照すると、まず、現在位置をソースプログラム111の先頭行にする(ステップS201)。次に、手続呼出文検索手段112−1は、現在行の文は手続呼出文であるか否かを判断する(ステップS203)。ここでは、符号301−1、301−2及び301−3で示される文および符号301−4で示される文が並列化されたときは301−4(図2参照)が手続呼出文であると判断される。
ステップS203の判断結果が肯定的である場合には(ステップS203でYES)、呼出元情報追加手段112−2は、ソースプログラムに呼出元情報を追加する。ここでは、呼出元識別情報を担うための変数positionとスレッドの実行順序情報を担うための変数taskが整数として宣言され(符号402−1、402−2、402−3、402−4、402−5及び402−6参照)、各呼出元の直前で変数positionに呼出元識別情報が代入され(符号403−1、403−2、403−3及び403−4参照)、更に、手続きの引数としてpositionとtaskが追加される(符号404−1、404−2、404−3、404−4、405−1、405−2、405−3、405−4及び405−5参照)。
次に、性能情報算出処理文追加手段112−8は、現在行は、メインプログラムの最後であるか否かを判断し(ステップS207)、そうであれば(ステップS207でYES)、その直前に性能情報算出処理文を追加する(ステップS209B)(符号406−1及び406−2参照)。また、性能関連情報と性能情報を出力するための文をメインプログラムの最後に追加する(ステップS211)(符号407参照)。
次に、手続本体検索手段112−4は、現在行は、手続きの先頭文であるか否かを判断し(ステップS213)、そうであれば(ステップS213でYES)、性能関連情報収集処理文追加手段112−9は、手続きの内部に性能関連情報収集文とスレッドの実行順序情報収集文を追加し(ステップS215B)(符号408−1、408−2、408−3、409−1、409−2、409−3、410−1、410−2、410−3、411−1、411−2及び411−3参照)、情報関連情報グループ化処理文追加手段112−10は、手続きの内部に情報関連情報グループ化処理文を追加する(ステップS219B)(符号412−1、412−2、412−3、413−1、413−2及び413−3参照)。なお、ステップS215B及びS219Bに関連して、コモン変数の宣言をソースプログラムに追加する(符号414−1、414−2、414−3および414−4参照)。
図7の例では、性能関連情報としては、同一の呼出元から手続きが呼ばれる回数kaisuu(position)と同一の呼出元からの全ての手続きの呼出しに対する手続きの合計実行時間total(position)が得られる。また、性能情報としては、同一の呼出元から呼ばれた手続きの平均実行時間heikin(position)が得られる。さらに、手続きが並列に実行されているときは各スレッドの実行開始時間としてスレッドの実行順序情報task(position,task)が得られる。
次に、現在位置を次の行にして(ステップS221)、その行がプログラムの最後でなければ(ステップS223でNO)、ステップS203に戻り、最後であれば(ステップS223でYES)、処理を終了する。
図5は、ロードモジュール119が実行される時のプログラムの性能情報の採取方法を説明するためのフローチャートである。
図5を参照すると、手続きが呼び出される度に(ステップS231)、性能関連情報を収集し(ステップS233)、性能関連情報をグループ化する(ステップS235)。そして、メインプログラムの最後で性能情報を算出する(ステップS237)。
ステップS231は、符号409、410及び411で示す文を実行することにより実現される。ステップS235は、符号412及び413で示す文を実行することにより実現される。ステップS237は、符号406−2で示す文を実行することにより実現される。
図1及び図6に示した性能情報採取機能追加装置は、ハードウェアによって実現することもできるが、コンピュータを性能情報採取機能追加装置として機能させるためのプログラムをコンピュータが記録媒体から読み込んで実行することによっても実現することができる。また、図4、図5及び図8に示した方法は、ハードウェアによって実現することもできるが、コンピュータにこれらの方法を実行させるためのプログラムをコンピュータが記録媒体から読み込んで実行することによっても実現することができる。
また、コンパイラ及びリンカの代わりに、ソースプログラムを中間言語に変換するプログラムを用いることにより、ベーシック(BASIC)やジャバスクリプト(JavaScript)(ジャバ(JAVA)は登録商標)等で書かれたソースプログラムに対しても本発明を適用することが可能である。
112 書換部
114 コンパイラ
116 手続群ライブラリ
118 リンカ
112−1 手続呼出文検索手段
112−2 呼出元情報追加手段
112−3 性能情報算出手続呼出文追加手段
112−4 手続本体検索手段
112−5 性能関連情報収集処理文追加手段
112−6 性能関連情報収集手続呼出文追加手段
112−7 性能関連情報グループ化手続呼出文追加手段
112−8 性能情報算出処理文追加手段
112−9 情報収集処理文追加手段
112−10 性能関連情報グループ化処理文追加手段
114 コンパイラ
116 手続群ライブラリ
118 リンカ
112−1 手続呼出文検索手段
112−2 呼出元情報追加手段
112−3 性能情報算出手続呼出文追加手段
112−4 手続本体検索手段
112−5 性能関連情報収集処理文追加手段
112−6 性能関連情報収集手続呼出文追加手段
112−7 性能関連情報グループ化手続呼出文追加手段
112−8 性能情報算出処理文追加手段
112−9 情報収集処理文追加手段
112−10 性能関連情報グループ化処理文追加手段
Claims (30)
- 手続きが呼び出される度に、該手続きに関連した性能関連情報を収集する収集ステップと、
収集された前記性能関連情報を前記手続の呼出元毎にグループ化するグループ化ステップと、
グループ化された前記性能関連情報を基に、呼出元毎の性能情報を算出する算出ステップと、
を備えることを特徴とするプログラムの性能情報の採取方法。 - 請求項1に記載のプログラムの性能情報の採取方法において、
前記収集ステップは、前記手続きの内部又は前記手続きから呼び出された収集手続きにおいて行うことを特徴とするプログラムの性能情報の採取方法。 - 請求項2に記載のプログラムの性能情報の採取方法において、
前記手続きに前記収集ステップを行うための文を追加するステップを更に備えることを特徴とするプログラムの性能情報の採取方法。 - 請求項2に記載のプログラムの性能情報の採取方法において、
前記収集手続きを予めライブラリ内に用意しておくことを特徴とするプログラムの性能情報の採取方法。 - 請求項1に記載のプログラムの性能情報の採取方法において、
前記グループ化ステップは、前記手続きの内部又は前記手続きから呼び出されたグループ化手続きにおいて行うことを特徴とするプログラムの性能情報の採取方法。 - 請求項5に記載のプログラムの性能情報の採取方法において、
前記手続きに前記グループ化ステップを行うための文を追加するステップを更に備えることを特徴とするプログラムの性能情報の採取方法。 - 請求項5に記載のプログラムの性能情報の採取方法において、
前記グループ化手続きを予めライブラリ内に用意しておくことを特徴とするプログラムの性能情報の採取方法。 - 請求項1に記載のプログラムの性能情報の採取方法において、
前記算出ステップは、性能情報の採取の対象となっているメインプログラムにおいて行うことを特徴とするプログラムの性能情報の採取方法。 - 請求項8に記載のプログラムの性能情報の採取方法において、
前記メインプログラムに前記算出ステップを行うための文を追加するステップを更に備えることを特徴とするプログラムの性能情報の採取方法。 - 請求項1に記載のプログラムの性能情報の採取方法において、
前記性能関連情報及び前記性能情報は、実行時間に関連した情報を含むことを特徴とするプログラムの性能情報の採取方法。 - 請求項1に記載のプログラムの性能情報の採取方法において、
前記性能関連情報は、マルチスレッド化された手続きの各スレッドに関する性能関連情報も含むことを特徴とするプログラムの性能情報の採取方法。 - プログラムに、手続きが呼び出される度に、該手続きに関連した性能関連情報を収集するための命令を追加するステップと、
前記プログラムに、収集された前記性能関連情報を前記手続の呼出元毎にグループ化するための命令を追加するステップと、
前記プログラムに、グループ化された前記性能関連情報を基に、呼出元毎の性能情報を算出するための命令を追加するステップと、
を備えることを特徴とするプログラムへの性能情報採取機能追加方法。 - 請求項12に記載の性能情報採取機能追加方法において、
前記命令は、予め用意されたライブラリに含まれた手続きに含まれるものを含むことを特徴とするプログラムへの性能情報採取機能追加方法。 - 請求項12に記載の性能情報採取機能追加方法において、
前記命令を追加するステップは、前記命令を実現するための文を前記プログラムに追加するステップを備えることを特徴とするプログラムへの性能情報採取機能追加方法。 - 手続きが呼び出される度に、該手続きに関連した性能関連情報を収集する収集手段と、
収集された前記性能関連情報を前記手続の呼出元毎にグループ化するグループ化手段と、
グループ化された前記性能関連情報を基に、呼出元毎の性能情報を算出する算出手段と、
を備えることを特徴とするプログラムの性能情報の採取装置。 - 請求項15に記載のプログラムの性能情報の採取装置において、
前記収集手段は、前記手続きの内部又は前記手続きから呼び出された収集手続きにおいて行うことを特徴とするプログラムの性能情報の採取装置。 - 請求項16に記載のプログラムの性能情報の採取装置において、
前記手続きに前記収集手段を行うための文を追加する手段を更に備えることを特徴とするプログラムの性能情報の採取装置。 - 請求項16に記載のプログラムの性能情報の採取装置において、
前記収集手続きを予めライブラリ内に用意しておくことを特徴とするプログラムの性能情報の採取装置。 - 請求項15に記載のプログラムの性能情報の採取装置において、
前記グループ化手段は、前記手続きの内部又は前記手続きから呼び出されたグループ化手続きにおいて行うことを特徴とするプログラムの性能情報の採取装置。 - 請求項19に記載のプログラムの性能情報の採取装置において、
前記手続きに前記グループ化手段を行うための文を追加する手段を更に備えることを特徴とするプログラムの性能情報の採取装置。 - 請求項19に記載のプログラムの性能情報の採取装置において、
前記グループ化手続きを予めライブラリ内に用意しておくことを特徴とするプログラムの性能情報の採取装置。 - 請求項15に記載のプログラムの性能情報の採取装置において、
前記算出手段は、性能情報の採取の対象となっているメインプログラムにおいて行うことを特徴とするプログラムの性能情報の採取装置。 - 請求項22に記載のプログラムの性能情報の採取装置において、
前記メインプログラムに前記算出手段を行うための文を追加する手段を更に備えることを特徴とするプログラムの性能情報の採取装置。 - 請求項15に記載のプログラムの性能情報の採取装置において、
前記性能関連情報及び前記性能情報は、実行時間に関連した情報を含むことを特徴とするプログラムの性能情報の採取装置。 - 請求項15に記載のプログラムの性能情報の採取装置において、
前記性能関連情報は、マルチスレッド化された手続きの各スレッドに関する性能関連情報も含むことを特徴とするプログラムの性能情報の採取装置。 - プログラムに、手続きが呼び出される度に、該手続きに関連した性能関連情報を収集するための命令を追加する手段と、
前記プログラムに、収集された前記性能関連情報を前記手続の呼出元毎にグループ化するための命令を追加する手段と、
前記プログラムに、グループ化された前記性能関連情報を基に、呼出元毎の性能情報を算出するための命令を追加する手段と、
を備えることを特徴とするプログラムへの性能情報採取機能追加装置。 - 請求項26に記載の性能情報採取機能追加装置において、
前記命令は、予め用意されたライブラリに含まれた手続きに含まれるものを含むことを特徴とするプログラムへの性能情報採取機能追加装置。 - 請求項26に記載の性能情報採取機能追加装置において、
前記命令を追加する手段は、前記命令を実現するための文を前記プログラムに追加する手段を備えることを特徴とするプログラムへの性能情報採取機能追加装置。 - コンピュータに請求項1乃至14の何れか1項に記載の方法を行わせるためのプログラム。
- 請求項29に記載のプログラムを記録した、コンピュータ読取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005094860A JP2006277279A (ja) | 2005-03-29 | 2005-03-29 | プログラム性能情報の採取方法及びその装置並びにプログラムへの性能情報採取機能追加方法及びその装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005094860A JP2006277279A (ja) | 2005-03-29 | 2005-03-29 | プログラム性能情報の採取方法及びその装置並びにプログラムへの性能情報採取機能追加方法及びその装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006277279A true JP2006277279A (ja) | 2006-10-12 |
Family
ID=37211987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005094860A Withdrawn JP2006277279A (ja) | 2005-03-29 | 2005-03-29 | プログラム性能情報の採取方法及びその装置並びにプログラムへの性能情報採取機能追加方法及びその装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006277279A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012048661A (ja) * | 2010-08-30 | 2012-03-08 | Toshiba Corp | トレース生成装置、システム、およびそのプログラム |
JP5579347B1 (ja) * | 2014-01-15 | 2014-08-27 | 三菱電機株式会社 | 数値制御装置 |
US9740541B2 (en) | 2012-10-01 | 2017-08-22 | Fujitsu Limited | Information processing apparatus and method of collecting performance analysis data |
-
2005
- 2005-03-29 JP JP2005094860A patent/JP2006277279A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012048661A (ja) * | 2010-08-30 | 2012-03-08 | Toshiba Corp | トレース生成装置、システム、およびそのプログラム |
US9152389B2 (en) | 2010-08-30 | 2015-10-06 | Kabushiki Kaisha Toshiba | Trace generating unit, system, and program of the same |
US9740541B2 (en) | 2012-10-01 | 2017-08-22 | Fujitsu Limited | Information processing apparatus and method of collecting performance analysis data |
JP5579347B1 (ja) * | 2014-01-15 | 2014-08-27 | 三菱電機株式会社 | 数値制御装置 |
WO2015107637A1 (ja) * | 2014-01-15 | 2015-07-23 | 三菱電機株式会社 | 数値制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11216258B2 (en) | Direct function call substitution using preprocessor | |
US8949786B2 (en) | Method and system for parallelization of sequential computer program codes | |
CN106547520B (zh) | 一种代码路径分析方法及装置 | |
US10007495B2 (en) | Code generation method for scheduling processors using hook function and exception handling function | |
US20190079805A1 (en) | Execution node selection method and information processing apparatus | |
WO2010134330A1 (ja) | 分岐予測装置、その分岐予測方法、コンパイラ、そのコンパイル方法及び分岐予測プログラム記録媒体 | |
TW201405424A (zh) | 編譯系統以及編譯方法 | |
JP5884657B2 (ja) | プログラム、テストケース生成方法およびテストケース生成装置 | |
JP2021533485A (ja) | プログラムの機能を向上するための制御フローシステム、非一時的可読媒体、および方法 | |
JP2006277279A (ja) | プログラム性能情報の採取方法及びその装置並びにプログラムへの性能情報採取機能追加方法及びその装置 | |
JP2001184218A (ja) | Mpiプログラムのコンパイルにおける最適化方法 | |
US20110167413A1 (en) | Coverage apparatus and method for testing multi-thread environment | |
CN108536514B (zh) | 一种热点方法的识别方法和装置 | |
US11379551B2 (en) | Latency minimization in mobile applications | |
US8839216B2 (en) | Compiler optimization based on collectivity analysis | |
CN113051173B (zh) | 测试流程的编排执行方法、装置、计算机设备和存储介质 | |
JP2016012343A (ja) | 自動抽象化を有するシンボリック実行 | |
KR20110046983A (ko) | 벡터 프로세싱 장치 및 방법 | |
KR102122455B1 (ko) | 프로세서의 디코더 검증을 위한 테스트 벤치 생성 방법 및 이를 위한 장치 | |
CN113051172A (zh) | 测试脚本的执行方法、装置、计算机设备和存储介质 | |
CN109522048B (zh) | 一种同步多线程中断验证方法及系统 | |
JP4860564B2 (ja) | プログラムプロファイリング装置、プログラムプロファイリング方法、及びプログラム | |
JP6064993B2 (ja) | 演算処理装置、その演算処理方法、及び演算処理プログラム | |
CN114676026B (zh) | 一种处理器性能测试方法、装置、设备和介质 | |
CN108415836A (zh) | 利用应用程序检测计算机系统性能变化的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080603 |