JP2010092201A - プログラム性能測定装置、方法、プログラム、プログラム記録媒体 - Google Patents

プログラム性能測定装置、方法、プログラム、プログラム記録媒体 Download PDF

Info

Publication number
JP2010092201A
JP2010092201A JP2008260389A JP2008260389A JP2010092201A JP 2010092201 A JP2010092201 A JP 2010092201A JP 2008260389 A JP2008260389 A JP 2008260389A JP 2008260389 A JP2008260389 A JP 2008260389A JP 2010092201 A JP2010092201 A JP 2010092201A
Authority
JP
Japan
Prior art keywords
trace
program
data
output
measurement
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.)
Granted
Application number
JP2008260389A
Other languages
English (en)
Other versions
JP5217870B2 (ja
Inventor
Hiroya Inakoshi
宏弥 稲越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008260389A priority Critical patent/JP5217870B2/ja
Priority to US12/573,661 priority patent/US8543989B2/en
Publication of JP2010092201A publication Critical patent/JP2010092201A/ja
Application granted granted Critical
Publication of JP5217870B2 publication Critical patent/JP5217870B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Abstract

【課題】プログラムの微小な測定区間の実行の所要時間を高い精度で測定するプログラム性能測定装置を提供する。
【解決手段】ベンチマークプログラム11は、所定の命令を実行する複数のトレイス文を埋め込まれる。乱数発生部13は、ランダムにトレイス文の実行を指示する。トレイス出力部14は、ベンチマークプログラム11を連続して繰り返し実行すると共に、前記指示に基づいてトレイス文を選択して実行し、その結果をトレイスデータとして出力する。分析サーバ2は、トレイスデータに基づいて、複数のトレイス文により定まる複数の測定区間の実行の所要時間を算出する。
【選択図】図1

Description

本発明は、プログラム性能測定装置、方法、プログラム、プログラム記録媒体に関するものである。
コンピュータ又はプログラムの性能を測定する場合において、コンピュータへの負荷の与え方として、トレイス方式と、プロファイラ方式とが知られている。
トレイス方式は、当該プログラムにおけるユーザが測定したい区間(以下、測定区間)の前後に、トレイス文(print文)を埋め込む。当該トレイス文の実行により、実行された時刻を取得し、各々のトレイス文の実行時刻の時間差を算出する。
プロファイラ方式は、当該プログラムの実行中に定期的にイベント割り込みを発生させる。当該割り込みにより、その時点でのプログラムカウンタの値を取得し、測定区間に含まれるプログラムカウンタの値の割合を算出する。
なお、プログラムの性能を評価するファームウェアに1命令毎に割り込みを発生させ、ファームウェアでその命令の実行状態をシミュレートして、性能情報を収集する技術が提案されている。
また、処理されるべきトランザクションを選択し、これが機能ユニットにより処理される間に状態情報を記憶する技術が提案されている。
また、測定開始及び終了の命令アドレスを設定し、当該区間の1命令毎に実行時間から割り出し時間を減じた値を積算して、プログラムの実行時間を測定する技術が提案されている。
特開平1−145736号公報 特開平11−272519号公報 特許3389745号公報
本発明者の検討によれば、トレイス方式及びプロファイラ方式には、各々、以下のような問題がある。
トレイス方式においては、トレイス文自体の実行に要する時間が、測定の誤差となる。この誤差は、測定区間が短い場合、相対的に大きな値となるので、誤差が大きくなってしまう。
プロファイラ方式においては、イベント割り込みの発生間隔(割込み間隔)よりも短い測定区間については、測定することができない。そこで、イベント割り込み間隔を短くすると、このイベント割り込み処理に要する時間が相対的に大きな値となるので、誤差が大きくなってしまう。
本発明は、プログラムの微小な測定区間の実行の所要時間を高い精度で測定するプログラム性能測定装置を提供することを目的とする。
また、本発明は、プログラムの微小な測定区間の実行の所要時間を高い精度で測定するプログラム性能測定方法を提供することを目的とする。
また、本発明は、プログラムの微小な測定区間の実行の所要時間を高い精度で測定するプログラム性能測定プログラムを提供することを目的とする。
また、本発明は、プログラムの微小な測定区間の実行の所要時間を高い精度で測定するプログラム性能測定プログラムを記録したプログラム記録媒体を提供することを目的とする。
本発明によるプログラム性能測定装置は、被測定プログラムと、出力指示手段と、出力手段と、分析手段とを備える。被測定プログラムには、所定の命令を実行する複数のトレイス文があらかじめ埋め込まれている。出力指示手段は、ランダムにトレイスデータの出力を指示する。出力手段は、前記指示に基づいてトレイスデータを出力し、その結果をトレイスデータとして出力する。分析手段は、トレイスデータに基づいて、複数のトレイス文により定まる複数の測定区間の実行の所要時間を算出する。
本発明によるプログラム性能測定装置、方法、プログラム、プログラム記録媒体によれば、全てのトレイスデータではなく、ランダムに選択したトレイスデータのみを出力するので、トレイスデータの出力に要する時間が測定の誤差となる回数を減らすことができる。この結果、測定時間に占める誤差の割合を減らして、高い精度で測定区間の実行の所要時間を算出することができる。また、トレイスデータの出力に要する時間よりも測定区間がそれ程長くない場合でも、この微小な測定区間における所要時間を高い精度で測定することができる。更に、トレイスを採ることにより、システムの動作が変化する場合があるが、このような問題に対しても効果がある。
図1は、本発明の一実施態様によるプログラム性能測定装置の一例を示す構成図である。
本実施態様のプログラム性能測定装置は、測定対象サーバ1と、分析サーバ2とを備える。測定対象サーバ1は、測定対象のコンピュータ又は測定対象のプログラムが実行されるコンピュータである。分析サーバ2は、測定対象サーバ1についての測定結果を分析するコンピュータである。
測定対象サーバ1は、ベンチマークプログラム11、被測定プログラム12、ファイルシステム15、乱数発生部13、トレイス出力部14を備える。ファイルシステム15はトレイスデータ蓄積部16を備える。なお、被測定プログラムの具体例としては、OS(オペレーティングシステム)や、ミドルウェアや、アプリケーションプログラムなどの場合がある。
分析サーバ2は、パラメタ推定部21、学習データ生成部22、学習データ蓄積部23を備える。パラメタ推定部21は、隠れトレイス推定部24、区間時間推定部25を備える。
なお、隠れトレイス推定部24は、トレイス文の実行回数を計測する場合、省略することができる。
また、測定対象サーバ1と分析サーバ2とを1個のサーバ又はコンピュータとして設けるようにしても良い。
測定対象サーバ1は、トレイスデータの集合を生成する生成手段である。測定対象サーバ1は、ベンチマークプログラム11を実行することにより、トレイスデータの集合を生成する。
ベンチマークプログラム11は、性能測定用の負荷を与える手段であり、当該負荷を与えるために実行されるプログラムである。例えば、ベンチマークプログラム11は、当該プログラムの実行の指示(実行#1)が入力されると、実行を開始する。
被測定プログラム12には、後述するように、あらかじめ複数のトレイス文が埋め込まれている。トレイス文を実行することにより、被測定プログラム12の実行により得られるトレイスデータがファイルシステム15に出力される。
乱数発生部13は、ランダムにトレイスデータの出力をトレイス出力部14に指示する出力指示手段である。乱数発生部13は、トレイス文の実行のたびに乱数を発生して、発生した乱数をトレイス出力部14に入力する。乱数については、図2及び図3を参照して後述する。
トレイス出力部14は、乱数発生部13の出力に応じてトレイスデータをファイルシステム15に出力する出力手段である。トレイス出力部14は、トレイスデータの出力が必要な場合、トレイスデータを一旦メモリ上に書き込み、後にまとめてファイルシステム15に出力することにより、できるだけファイルシステム15への出力が測定結果に影響を与えないようにする。トレイスデータについては、図4(A)及び図5(A)を参照して後述する。
ファイルシステム15において、トレイスデータはトレイスデータ蓄積部16に格納され、分析サーバ2の学習データ生成部22に送られる。なお、実際には、学習データ生成部22に学習データの生成の指示(実行#2)が入力されると、これに応じて、学習データ生成部22がトレイスデータ蓄積部16からトレイスデータを読み出す。
分析サーバ2は、測定対象サーバ1からのトレイスデータの集合に基づいて、複数の測定区間の実行の所要時間を算出する分析手段である。測定区間は、後述するように、複数のトレイス文により定まる。分析サーバ2は、トレイスデータの集合について、予め定められた統計処理を実行することにより、所要時間を算出する。
このために、学習データ生成部22は、トレイスデータ蓄積部16から読み出したトレイスデータの集合に基づいて、学習データの集合を生成して、学習データ蓄積部23に格納する。学習データについては、図4(B)及び図5(B)を参照して後述する。
また、学習データ生成部22は、生成した学習データの集合からペアデータの集合を生成して、学習データ蓄積部23に格納する。ペアデータは、図4(C)を参照して後述するように、学習データの集合から、対応するトレイス文の位置が予め定められた関係にある2個の学習データを選択することにより、生成される。なお、トレイスカウンタを用いる場合、ペアデータの生成は不要である。
学習データ及びペアデータは、後述する統計処理により処理時間を算出するためのデータである。学習データ蓄積部23の学習データ及びペアデータは、パラメタ推定部21により読み出される。
パラメタ推定部21は、統計処理による処理時間の算出の指示(実行#3)が入力されると、これに応じて、ペアデータの集合を用いて、隠れトレイス推定部24に所定の統計処理を行わせる。即ち、隠れトレイス推定部24は、学習データ蓄積部23から学習データ及びペアデータを読み出して、統計処理によって隠れトレイスを推定し、推定した隠れトレイスを区間時間推定部25に送る。この統計処理は、後述するように、トレイスデータを連続して出力しない確率を用いて実行される。なお、トレイスカウンタを用いる場合、この隠れトレイス推定部24の処理は不要である。
区間時間推定部25は、学習データに基づいて、測定対象の被測定プログラム12における処理区間について、その処理時間を推定する。トレイスカウンタを用いない場合、学習データに加えて、前段の隠れトレイス推定部24の出力である、全測定区間の処理時間合計が利用される。トレイスカウンタを用いる場合、学習データのみが利用される。
図2及び図3は、図1のプログラム性能測定装置において実行されるプログラム性能測定処理の説明図である。
今、例えば、被測定プログラム12に、図2に示すように、トレイス文が埋め込まれているとする。また、ベンチマークプログラム11の実行により、被測定プログラム12において、関数foo()が、繰り返し呼び出されるものとする。関数foo()が呼び出されると、関数bar()および関数baz()が呼び出される。このとき、関数bar()の実行に要する時間を計測し、さらに関数bar()内から呼び出される関数baz()の実行に要する時間も測定する。そのために、図2にM0,M1,M2,M3のラベルで示した箇所に、トレイス文を予め埋め込んでおく。この場合、ラベルによって区別されているトレイス文は、関数foo()が呼び出されるたびに、M0、M1、M2、M3の順に実行される。この時、測定区間W1をラベルM0とラベルM1の間のプログラムをプロセッサが通過する区間と定め、これをW1←(M0,M1)と書くことにすると、同様に測定区間W2←(M1,M2)、測定区間W3←(M2,M3)となる。さらに、測定区間W0は、最後のラベルM3から、続く関数foo()の呼び出しにより、2回目に現れるM0までとなる。すなわち、測定区間W0←(M3,M0)である。
以上のことを形式的に定義する。被測定プログラム12の任意の位置を、ラベルMs(sは0からSの整数)で表すこととする。ただし、ベンチマークプログラム11を実行したとき、被測定プログラム12では、プロセッサがラベルMsを添え字sの順に通過するものとする。このとき、測定区間をWs←(M(s−1),Ms)(1≦s≦Sのとき)および、W0←(MS,M0)と定める。また、2つのラベルu=Mi,v=Mjが昇順であるとは、i<jなることであり、降順であるとは、i>jなることと定める。
図3(A)及び図3(B)は、ベンチマークプログラム11を実行することにより、被測定プログラム12が繰り返し駆動された際に、プロセッサが通過したプログラム上のラベルを、時間軸上にプロットしたものである。今、関数bar()の実行に要する時間を計測することが目的であるから、測定区間W1,W2,W3を連結した測定区間Wと、それ以外の区間W0とが、被測定プログラム12の駆動1回分を構成する。各ラベルの箇所にトレイス文を埋め込んだので、各トレイス文を、ラベルを用いて表すこととする。この例では、測定区間Wにおいて、ラベルM0〜M3の位置に4個のトレイス文が実行される。なお、ラベルM0〜M3(即ち、当該位置のトレイス文)は、三角形で表すことにする。
例えば、図3(A)において、被測定プログラム12が駆動され、トレイス文を実行すると、乱数発生部13は、乱数rを発生させ、これをトレイス出力部14に入力する。
乱数rの値は、例えば非負整数N−1の範囲とする。例えば、トレイス出力部14は、乱数rの値が0の場合、トレイスデータを出力し、0以外の場合、トレイスデータを出力しない。乱数rが一様乱数であり、各非負整数の生起が同様に確からしい場合、N回に1回だけ、ランダムにトレイスデータが出力されることになる。
図3(A)において、トレイス文の実行時には、常に乱数rを発生させる。最初の測定区間Wにおける各トレイス文実行時(つまりラベルの箇所)に発生させた乱数のうち、ラベルM2のトレイス文についてのみ「0」で、他のラベルM0等については0以外の値「非0」であったとする。この場合、トレイス出力部14は、最初の測定区間Wにおいて、ラベルM2のトレイスデータのみを出力し、他のトレイスデータは出力しない。図3(A)及び図3(B)において、トレイスデータを出力したトレイス文(出力トレイス)を黒い三角形で表し、トレイスデータを出力しなかったトレイス文(欠損トレイス又は隠れトレイス)を白い三角形で表す。トレイスカウンタを用いない場合、このラベルM2のトレイス文を実行した結果、トレイス出力部14は、このラベルM2と共に、トレイス文実行の時刻t1を取得して、これを出力#1として出力する。トレイスカウンタを用いた場合、トレイス出力部14は、更にトレイスカウンタのカウント値h1(図3(B)においてはトレイスカウンタh1と表す、h2についても同じ)も取得して、これも出力#1に含める。
この後、2番目の測定区間Wにおいて、いずれのトレイス文についても、乱数が0以外の値「非0」であったとする。この場合、この測定区間Wにおいては、いずれのトレイスデータも出力されず、出力#2は得られない(又は、空とされる)。
更に、この後、3番目の測定区間Wにおける各トレイス文実行時に発生させた乱数のうち、ラベルM1のトレイス文についてのみ「0」で、他のラベルM0等については0以外の値「非0」であったとする。この場合、トレイス出力部14は、この測定区間Wにおいては、ラベルM1のトレイスデータのみを出力する。トレイスカウンタを用いない場合、トレイス出力部14は、このラベルM1と共に、トレイス文実行の時刻t2を取得して、これを出力#3として出力する。トレイスカウンタを用いた場合、トレイス出力部14は、更にトレイスカウンタのカウント値h2も取得して、これも出力#3に含める。
ここで、トレイスカウンタについて説明する。トレイスカウンタは、トレイス文を実行するたびに+1ずつそのカウント値が増加するカウンタである。例えば、図3(B)では、出力#1と出力3の間に7回トレイス文を実行しているので、カウント値の増加は、h2−h1=7である。
なお、以上は、1つの測定区間Wにおいて、トレイスデータが出力されない場合や1個のトレイスデータが出力される場合について説明した。しかし、1つの測定区間Wにおいて、複数のトレイスデータが出力される場合もある。
1回の被測定プログラム12の駆動に限れば、得られたトレイスデータは不完全なものである。例えば、図3(A)及び図3(B)において、1番目の測定区間WについてはラベルM2のトレイスデータしか採取されていない。しかし、被測定プログラム12を繰り返し駆動すると共に、その過程で、乱数rに従って出力されるトレイスデータが、ランダムに選択される。そして、不完全なトレイスデータを統計処理することにより、トレイスデータの欠損を補うことができる。
なお、トレイスデータを出力するためには、図3(C)に示すように、ある程度の時間を必要とする。従って、真の測定区間の処理時間に誤差時間εが付加されることは避けられない。しかし、本実施態様の方式によれば、トレイス文の実行による誤差が測定区間の処理時間に付加される割合を小さくすることができる。例えば、図3(A)に示すように、4個のトレイス文を含む測定区間Wを3回実行した場合において、2回のトレイスデータの出力があったとすると、誤差εの影響を2/12とすることができる。
これにより、細分化された測定区間W1等が微小であっても、その実行の所要時間を高い精度で測定することができる。従って、例えばプロセスの切り替えやユーザアプリケーションとカーネルとの切り替え等のように、微小な(高速な)処理の所要時間を高い精度で測定することができる。また、トレイス文実行に対して、いつもトレイスデータを出力せずともよいことから、低速な外部デバイスを用いて、高速なプロセッサ内の処理の所要時間を測定することができる。
図4(A)は、トレイスカウンタを用いない場合において、トレイス出力部14から出力されてトレイスデータ蓄積部16に蓄積されたトレイスデータの集合の一例を示す。図5(A)は、トレイスカウンタを用いる場合において、同様にして、蓄積されたトレイスデータの集合の一例を示す。
トレイスデータの集合は、複数のトレイスデータを含む。トレイスデータは、図4(A)及び図5(A)に示すように、トレイス文が実行された時刻と、実行されたトレイス文の位置を示すラベルとを含む。時刻は、ある時点を基点(時刻0)として、基点からの経過時間(例えば、ナノ秒単位)により表される。学習データでは時間差だけに関心があるので、時刻の基点がいつであるかは問題とならない。ラベルは、実行されたトレイス文を特定する情報である。
トレイスカウンタを用いる場合は、図5(A)に示すように前記時刻及びラベルに加えて、トレイスカウンタによるカウンタ値(図では単に「トレイスカウンタ」と称す)を含む。トレイスカウンタ値は、ある時点を基点として、基点からのトレイス文の実行回数により表される。学習データでは隠れトレイス数だけに関心があるので、トレイスカウンタ値の基点がいつであるかは問題とならない。
例えば、図4(A)に示すように、時刻「1200」において、ラベルM2のトレイス文が実行されたことが判る。トレイスカウンタを用いる場合は、図5(A)に示すように、このときのトレイスカウンタ値が「1000」であったことが判る。他についても、同様である。
図4(B)は、トレイスカウンタを用いない場合において、学習データ生成部22から出力されて学習データ蓄積部23に蓄積された学習データの集合の一例を示す。図5(B)は、トレイスカウンタを用いる場合において、同様にして、蓄積された学習データの集合の一例を示す。
学習データの集合は、複数の学習データを含む。学習データは、トレイスデータの間の時間差を表す。即ち、学習データは、トレイスカウンタを用いない場合は、図4(B)に示すように、時間差Ti、開始ラベルBi、終了ラベルEiを含む。トレイスカウンタを用いる場合は、図5(B)に示すように、更に隠れトレイス数kiを含む。時間差Tiは、学習データを生成する基礎となった2個のトレイスデータの間の時間差である。開始ラベルBiは、2個のトレイスデータの中の先に実行された(実行時刻の古い)ラベルである。終了ラベルEiは、2個のトレイスデータの中の後に実行された(実行時刻の新しい)ラベルである。なお、番号iは、任意に付与される。隠れトレイス数kiは、学習データを生成する基礎となった2個のトレイスデータの間のトレイスカウンタ値の差である。
例えば、番号1の学習データは、図4(A)及び図5(A)のトレイスデータの集合の1番目と2番目のトレイスデータから生成される。従って、その時間差Tiは「120」であり、開始ラベルBiはM2であり、終了ラベルEiはM3であり、隠れトレイス数kiは「49」である。他についても、同様である。
図4(C)は、トレイスカウンタを用いない場合において、学習データ生成部22から出力されて学習データ蓄積部23に蓄積されたペアデータの集合の一例を示す。なお、トレイスカウンタを用いる場合、ペアデータは蓄積されない。
ペアデータは、図4(B)の学習データの集合において、開始ラベルBiと終了ラベルEiとが相互に逆になっている学習データがペアになって構成するデータである。例えば、図4(B)の学習データの集合において、i=1の学習データとi=5の学習データ、あるいはi=6の学習データとi=7の学習データは、各々、ペアデータである。なお、開始ラベルBiと終了ラベルEiとが同一の場合は、この学習データが単独でペアデータを構成する。例えば、i=3の学習データは、それ単独でペアデータとされる。
ペアデータの集合は、複数のペアデータを含む。ペアデータは、図4(C)に示すように、索引+、索引−、時間差Ti±、ラベルv、ラベルuを含む。なお、番号i±は、任意に付与される。ラベルvとラベルuは、学習データのペアが共有する2つのラベルであり、ラベルvとラベルuは昇順とする。索引+は、ラベルuを開始ラベルとし、ラベルvを終了ラベルとする学習データの図4(B)あるいは図5(B)の番号を示し、同様に索引−は、ラベルvを開始ラベルとし、ラベルuを終了ラベルとする学習データの番号を示す。番号i±のペアデータを(i+,i−)と表記し、索引+をi+、索引−をi−と表記することとする。
なお、学習データが単独でペアを構成する場合、索引−は空欄(nil)と定める。また、開始ラベルBiと終了ラベルEiは降順として扱っても一般性を失わない。換言すると、索引+は空欄(nil)と定め、開始ラベルBiと終了ラベルEiは昇順として扱っても結果は同じである。図4(B)の番号iと、図4(C)の番号i±は任意に付与したものなので、索引+及び索引−は説明の便宜のために導入したものであり、作り出さなくともよい。時間差(Ti±)は、ペアを構成する2個の学習データの時間差Tiの和である。隠れトレイス数(ki±)は、ペアを構成する2個の学習データの隠れトレイス数kiである。
例えば、番号4±のペアデータは、i=6の学習データとi=7の学習データとで構成され、その時間差Ti±は「220」であり、ラベルvとラベルuはそれぞれM0とM2であり、索引+はラベルu(M2)を開始ラベルとし、ラベルv(M0)を終了ラベルとする学習データの番号6であり、索引−はラベルv(M0)を開始ラベルとし、ラベルu(M2)を終了ラベルとする学習データの番号7である。
以下、図6〜図10に示す処理フローに従って、図1のプログラム性能測定装置におけるプログラム性能測定処理について、詳細に説明する。
図6は、図1のプログラム性能測定装置において実行されるプログラム性能測定処理フローである。
ユーザにより実行#1が入力されると、ベンチマークプログラム11の実行が開始され、これにより被測定プログラム12が繰り返し駆動される。この過程で、トレイスが採取され、トレイス出力部14が、乱数の値に応じてトレイスデータをトレイスデータ蓄積部16に蓄積する(ステップS11)。これにより、図4(A)又は図5(A)に示すトレイスデータの集合が得られる。ステップS11については、図7を参照して詳細に説明する。
ユーザにより実行#2が入力されると、学習データ生成部22が、トレイスデータ蓄積部16からトレイスデータの集合を読み出して、採取したトレイスデータのうち、連続するトレイスデータ間の時間差Ti、開始ラベルBi、終了ラベルEiを有する学習データを生成して、学習データ蓄積部23に蓄積する(ステップS12)。これにより、図4(B)又は図5(B)に示す学習データの集合が得られる。ステップS12については、図8を参照して詳細に説明する。
次に、トレイスカウンタを用いない場合、学習データ生成部22が、学習データからペアデータを作り出す(ステップS13)。これにより、図4(C)に示すペアデータの集合が得られる。ステップS13については、図9を参照して詳細に説明する。なお、トレイスカウンタを用いる場合、ステップS13は省略される。
ユーザにより実行#3が入力されると、区間時間推定部25が、隠れトレイス推定部24を呼び出して、所定の処理を実行させる。即ち、トレイスカウンタを用いない場合、隠れトレイス推定部24が、学習データ蓄積部23からペアデータの集合を読み出して、これらのペアデータから、測定区間に要する処理時間と、それ以外の区間に要する処理時間との和を算出する(ステップS14)。この和は、乱数を用いたことにより出力されなかった連続するトレイスの長さの期待値を用いて算出することができる。
トレイスカウンタを用いない場合におけるステップS14については、図10を参照して詳細に説明する。
この後、区間時間推定部25が、学習データ蓄積部23から学習データの集合を読み出して、これらの学習データを用いて、測定区間とそれ以外の区間を推定する(ステップS15)。ステップS15については、図10及び図15を参照して詳細に説明する。
図7は、図6のステップS11において実行されるトレイスデータ出力処理フローである。
乱数発生部13が、乱数r(以下、一様乱数r)を発生させる(ステップS21)。この時、一様乱数rの値は、0以上で1/q未満の整数とする。ここで、qは[0,1)の区間内の定数である。例えば、q=0.25であったとすると、1/q=4である。つまり、乱数rは{0,1,2,3}のいずれかを、等しい確率q=0.25で発生することになる。このような一様乱数rを用いれば、4回に1回の確率でトレイスを出力させることができる。
トレイス出力部14が、一様乱数r=0か否かを調べる(ステップS22)。一様乱数r=0である場合、トレイス出力部14が、トレイスデータを出力する。即ち、トレイスカウンタを用いない場合、トレイス出力部14が、トレイスデータ蓄積部16に、図4(A)に示すように、現在の時刻と、実行されたトレイス文のラベルMとを追加記録する。一方、トレイスカウンタを用いる場合、トレイス出力部14が、これらに加えて、トレイスカウンタのカウント値も記録する(ステップS23)。ステップS22において一様乱数r=0でない場合、ステップS23を省略する。
トレイスカウンタを用いる場合、パラメタ推定部21が、トレイスカウンタをインクリメントする(ステップS24)。トレイスカウンタを用いない場合、S24は実行しない。
図8は、図6のステップS12において実行される学習データ生成処理フローである。
図8において、学習データ生成部22が、連番i、つまり図4(B)に示す学習データにおける番号(i)を初期化する(ステップS31)。即ち、i=1とする。
この後、学習データ生成部22が、図4(A)及び図5(A)に示すトレイスデータの集合から最初(0番)のレコード(トレイスデータ)を取り出し、これをR1とする(ステップS32)。トレイスカウンタを用いない場合、R1=(t1,m1)であり、トレイスカウンタを用いる場合、R1=(t1,m1,h1)である。更に、学習データ生成部22が、トレイスデータの集合から次(1番)のレコードを取り出し、これをR2とする(ステップS33)。トレイスカウンタを用いない場合、R2=(t2,m2)であり、トレイスカウンタを用いる場合、R2=(t2,m2,h2)である。ここで、t1及びt2は時刻、m1及びm2はラベルM、h1及びh2はトレイスカウンタのカウント値である。
この後、学習データ生成部22が、トレイスデータの集合に残りのレコードが無いか否かを調べる(ステップS34)。
残りのレコードが有る場合(S34 No)、学習データ生成部22が、取り出したレコードR1とレコードR2について、その時間差Ti=t2−t1及び隠れトレイス数ki=h2−h1を求め(ステップS35)、生成した学習データを、図4(B)及び図5(B)に示すように、学習データ蓄積部23に書き込む(ステップS36)。生成した学習データは、トレイスカウンタを用いない場合、(i,Ti,m1,m2)であり、トレイスカウンタを用いる場合、(i,Ti,m1,m2,ki)である。なお、m1は図4(B)及び図5(B)におけるBiであり、m2はEiである。
この後、学習データ生成部22が、連番iをi+1とし、レコードR2を新たなレコードR1とする(ステップS37)。この後、ステップS33以下を繰り返す。
以上のステップS33〜S37の処理は、学習データの生成処理であるので、トレイスカウンタを用いない場合、及び、トレイスカウンタを用いる場合の双方に共通する処理である。
図9は、図6のステップS13において実行されるペアデータ生成処理フローであり、トレイスカウンタを用いない場合のみに実行され、トレイスカウンタを用いる場合には実行されない処理である。
ステップS34において残りのレコードが無い場合(S34 Yes)、学習データ生成部22が、学習データ(i,Ti,Bi,Ei)を1つ取出す。但し、図9の例ではBi、Eiが降順なものに限る(ステップS38)。この後、学習データ生成部22が、そのような学習データが無いか否かを調べる(ステップS39)。そのような学習データが無い場合(S39 Yes)、処理を終了する。
残りの学習データが有る場合(S39 No)、学習データ生成部22が、取り出した学習データiについて、Bi=Eiか否かを調べる(ステップS310)。
Bi=Eiである場合(S310 Yes)、学習データ生成部22が、取り出した学習データiを、図4(C)に示すペアデータ(i,nil)として、学習データ蓄積部23のぺアデータの集合に登録する(ステップS311)。これは、図4(C)の例において、ペア(3,nil)であるペアデータに相当する。
Bi=Eiでない場合(S310 No)、学習データ生成部22が、取り出した学習データのBi及びEiを用いて図4(B)の学習データの集合を検索して、この中から、Bi=EjかつEi=Bjを満たす学習データ(j,Tj,Bj,Ej)を探す(ステップS312)。
この後、学習データ生成部22が、ステップS312の条件に合う学習データjが見つかったか否かを調べる(ステップS313)。見つからない場合(S313 No)、ステップS38以下を繰り返す。一方、S312の条件に合う学習データが見つかった場合(S313 Yes)、学習データ生成部22が、学習データiと見つけた学習データjとを、図4(C)に示すペアデータ(i,j)として、学習データ蓄積部23のぺアデータの集合に登録する(ステップS314)。登録されたペアデータは、図4(C)の例において、ペア(3,nil)であるペアデータ以外のペアデータに相当する。
図10は、トレイスカウンタを用いない場合において、図6のステップS13において実行される隠れトレイス推定処理、ステップS14において実行される処理時間の和の算出処理、及び、ステップS15において実行される測定区間の処理時間の推定処理の処理フローである。
図10を説明する前に、図11〜図13を用いて、トレイスカウンタを用いない場合において、測定区間の処理時間を算出する方法を説明する。
まず、図11について説明する。被測定プログラム12において、{M0,M1,…,MS}の(S+1)種類のラベルMs(但しsは0〜Sの整数)があるとする。ラベルM(s−1)とラベルMsの間の測定区間の処理時間(区間時間)をWs(1≦s≦Sの場合)、ラベルMSとラベルM0の間の区間時間をW0とする。従って、図10で説明する隠れトレイス推定処理及び測定区間の処理時間の推定処理の目的は、この処理時間Wsを推定することである。
番号i±のペアデータの索引+と索引−が指し示す学習データは(i+,Ti+,Bi+,Ei+)と(i−,Ti−,Bi−,Ei−)である。なお、索引の定義から、u=Bi+=Ei−かつv=Ei+=Bi−の関係がある。ここで、時間差Ti+及びTi−は、測定区間の処理時間Wsを使って、図11のように記述することができる。但し、トレイスカウンタを利用しない場合、隠れトレイス数k+及びk−は未知である。
隠れトレイス数k+及びk−が未知なので、これを用いることなく測定区間の処理時間Wsを求める工夫が必要となる。そこで、図11の演算(i)及び演算(ii)のように、ペアデータ中の時間差の和Ti±=(Ti+)+(Ti−)を全てのペアデータの集合πについて加算することにより、全測定区間の処理時間合計であるZ=W0+W1+...+WSを推定する。詳細な方法は図11に示したとおりであるが、結論だけいえば、全測定区間の処理時間合計Zを算出するためには、ラベルの種類の数(S+1)、ペアデータ集合のサイズσ、全ペアデータの時間差の和ΣTi±、隠れトレイス数の期待値E[k]が必要である。これらのうち、隠れトレイス数の期待値E[k]以外は、ペアデータから容易に算出することができる。
図12は、乱数発生部で一様乱数rを使った場合の、隠れトレイス数の期待値E[k]の算出例である。
例えば、図12(A)及び図12(B)に示すように、連続してk個のトレイスを出力しない確率p(k)を用いて、図12(C)に示すように、トレイス数の期待値E[k]を理論的に算出できる。このように、トレイス数の期待値E[k]は、トレイスを出力する確率qをパラメタとする。図12(D)は、具体的なqの値に応じたE[k]の結果を示す。qは0以上1未満である。
以上により、隠れトレイス数の期待値E[k]が算出できたので、全測定区間の処理時間合計Zを推定できたことになる。ここで、再び、図11の時間差Ti+及びTi−の定義に戻る。
図13は、図11に示すこれらの定義式を再掲する。以下、図13に従って、説明する。図13に示すように、これらの右辺を整理し、全測定区間の処理時間合計Zの整数倍の定数項と、変数Wsを含む項に分割して記述することができる。この結果として重要なことは、この式の中には、もはや隠れトレイス数k+及びk−は含まれていないことである。この右辺中の変数Wsの項の出現の有無を表す、要素を0又は1とする行ベクトルxi+及びxi−は、全ての学習データから1つずつ作り出すことができる。これにより、学習データ数分の回帰式が得られ、これを解くことによって測定区間の処理時間であるWsを算出することができる。
図10において、隠れトレイス推定部24が、値Sを初期化してS=0とした後、全てのペア(i+,i−)について、SにTi±を加算する(ステップS41)。更に、隠れトレイス推定部24が、Z=S/E[k]とする(ステップS42)。これらの処理は、図11及び図12で説明した、全測定区間の処理時間合計であるZを推定する処理である。
区間時間推定部25が、学習データ(i,Ti,Bi,Ei)を取り出し(ステップS43)、学習データ蓄積部23の学習データの集合に未処理の学習データが無いか否かを調べる(ステップS44)。
未処理の学習データが有る場合(S44 No)、区間時間推定部25が、取出した学習データについて、前述の値Zに基づいて、値xi、yi、biを求め(ステップS45)、この後、ステップS43以下を繰り返す。これらの処理は、図13で説明した、回帰式を導出する処理である。
未処理の学習データが無い場合(S44 Yes)、区間時間推定部25が、yi±=(xi・w)+biを重回帰分析して、測定区間における所要時間を算出する(ステップS46)。これにより、連続してトレイスデータを出力しない回数の期待値に基づいて、被測定プログラム12の全測定区間の処理時間合計を求め、測定区間ごとの所要時間を算出することができる。
図14は、図10に示す処理の実際について示す説明図である。なお、図14は、図4に示すデータについての処理の例を示す。
図14(A)に示すように、q=1/24の場合、E[k]=120である(図12(C)より算出)。この後、ステップS41により、図14(B)に示すように、図4(C)に示す4個のペアデータについての時間差の和Sが求まる。また、ステップS42により、図14(B)に示すように、全測定区間の処理時間合計Zが求まる。
この後、ステップS45において、例えば、区間時間推定部25は、図14(C)に示すように、番号1の学習データについて、回帰式y1=(x1・w)+b1を求める。同様に、図14(D)に示すように、番号2の学習データについての回帰式y2=(x2・w)+b2が求まり、図14(E)に示すように、番号3の学習データについての回帰式y3=(x3・w)+b3が求まる。他のペアデータについても、同様である。
そして、区間時間推定部25は、図14(C)〜(E)に示す処理の結果に基づいて、図14(F)に示すような結果を得る。なお、図14(F)においては、値yと図4(B)との比較から判るように、学習データの順に並べ直して表示している。
この後、最終的に、区間時間推定部25は、図14(F)に示す結果を重回帰分析する。これにより、例えば、W0=6(単位時間、以下同じ)、W1=1、W2=5、W3=2のような結果が得られる。
図15は、トレイスカウンタを用いる場合において、ステップS15において実行される測定区間の処理時間の推定処理の処理フローである。なお、前述したように、トレイスカウンタを用いる場合、図6のステップS13(隠れトレイス推定処理)は省略される。
図15を説明する前に、図16を用いて、トレイスカウンタを用いる場合において、測定区間の処理時間を算出する方法を説明する。
図16において、測定区間の処理時間Wsの定義は図11及び図13と同じである。トレイスカウンタを利用する場合も、図15で説明する測定区間の処理時間の推定処理の目的は、この処理時間Wsを推定することである。
学習データ(i+,Ti+,Bi+,Ei+,k+)及び(i−,Ti−,Bi−,Ei−,k−)における時間差Ti+及びTiを測定区間の処理時間Wsを使って記述する点も、図11と同様である。但し、トレイスカウンタを利用する場合、隠れトレイス数k+及びk−は既知である。
隠れトレイスが既知なので、これを用いて回帰式を作ることができる。前式の右辺中の変数Wsの出現回数を表す行ベクトルxi+及びxi−は、図11に示すとおり、隠れトレイス数ki+及びki−を用いて、全ての学習データから1つずつ作り出すことができる。これにより、学習データ数分の回帰式が獲られ、これを解くことによって測定区間の処理時間Wsを算出することができる。
図15において、区間時間推定部25が、学習データ(i,Ti,Bi,Ei,ki)を取り出し(ステップS51)、学習データ蓄積部23の学習データの集合に未処理の学習データが無いか否かを調べる(ステップS52)。
未処理の学習データが有る場合、区間時間推定部25が、取出した学習データについて、前述の値Zに基づいて、値xi、yi、biを求め(ステップS53)、この後、ステップS51以下を繰り返す。
未処理の学習データが無い場合、区間時間推定部25が、yi=(xi・w)を重回帰分析して、測定区間における所要時間を算出する(ステップS54)。これにより、連続してトレイスデータを出力しない回数である隠れトレイス数に基づいて、被測定プログラム12の、測定区間ごとの所要時間を算出することができる。
図17は、図15に示す処理の実際について示す説明図である。なお、図17は、図5に示すデータについての処理の例を示す。
図15のステップS53において、区間時間推定部25は、図17(A)に示すように、番号1の学習データについて、回帰式y1=(x1・w)を求める。同様に、図17(B)に示すように、番号2の学習データについての値回帰式y2=(x2・w)が求まり、図17(C)に示すように、番号3の学習データについての値y3=(x3・w)が求まる。他のペアデータについても、同様である。
この後、最終的に、区間時間推定部25は、図17(D)に示す結果を重回帰分析することにより、例えばW0=6、W1=1、W2=5、W3=2のような結果を得る。
本発明の一実施態様によるプログラム性能測定装置の一例を示す構成図である。 図1のプログラム性能測定装置において実行されるプログラム性能測定処理の説明図である。 図1のプログラム性能測定装置において実行されるプログラム性能測定処理の説明図である。 プログラム性能測定処理の説明図である。 トレイスカウンタを利用する場合の、プログラム性能測定処理の説明図である。 図1のプログラム性能測定装置において実行されるプログラム性能測定処理フローである。 図6のステップS11において実行されるトレイスデータ出力処理フローである。 図6のステップS12において実行される学習データ生成処理フローである。 図6のステップS12において実行される学習データ生成処理フローである。 図6のステップS13において実行される隠れトレイス推定処理及びステップS14において実行される測定区間の処理時間の推定処理の処理フローである。 図10のプログラム性能測定処理の説明図である。 図10のプログラム性能測定処理の説明図である。 図10のプログラム性能測定処理の説明図である。 図10のプログラム性能測定処理の説明図である。 トレイスカウンタを利用する場合の、図6のステップS14において実行される測定区間の処理時間の推定処理の処理フローである。 図15のプログラム性能測定処理の説明図である。 図15のプログラム性能測定処理の説明図である。
符号の説明
1 測定対象サーバ
2 分析サーバ
11 ベンチマークプログラム
12 OS(オペレーティングシステム)
13 乱数発生部
14 トレイス出力部
15 ファイルシステム
16 トレイスデータ蓄積部
21 パラメタ推定部
22 学習データ生成部
23 学習データ蓄積部
24 隠れトレイス推定部
25 区間時間推定部

Claims (10)

  1. 所定の命令を実行する複数のトレイス文を埋め込まれた被測定プログラムの性能を測定するプログラム性能測定装置であって、
    ランダムに前記トレイスデータの出力を指示する出力指示手段と、
    所定の命令を実行する複数のトレイス文が埋め込まれた被測定プログラムを繰り返し駆動すると共に、前記出力指示手段の前記指示に基づいてトレイスデータを出力し、当該出力の結果をトレイスデータの集合として出力する出力手段と、
    前記トレイスデータの集合に基づいて、前記複数のトレイス文により定まる複数の測定区間の実行の所要時間を算出する分析手段とを備える
    ことを特徴とするプログラム性能測定装置。
  2. 前記テスト用プログラムが、その先頭に位置する測定区間と、前記測定区間に続く測定されない区間とを含み、前記測定区間に前記複数のトレイス文が埋め込まれる
    ことを特徴とする請求項1に記載のプログラム性能測定装置。
  3. 前記出力指示手段が、前記トレイスデータの出力を指定するための乱数を発生する乱数発生部である
    ことを特徴とする請求項1に記載のプログラム性能測定装置。
  4. 前記出力手段が、前記トレイスデータとして、当該トレイス文を特定する情報と、当該トレイス文の実行された時刻とを出力する
    ことを特徴とする請求項1に記載のプログラム性能測定装置。
  5. 前記出力手段が、前記トレイスデータとして、当該トレイス文を特定する情報と、当該トレイス文の実行された時刻と、トレイス文を実行した回数とを出力する
    ことを特徴とする請求項1に記載のプログラム性能測定装置。
  6. 前記分析手段が、前記トレイスデータの集合に基づいて前記トレイスデータの間の時間差を表す学習データの集合を生成し、前記学習データの集合から当該トレイス文の位置が予め定められた関係にある2個の学習データを選択することによりペアデータの集合を生成し、前記ペアデータの集合を用いて前記統計処理を実行する
    ことを特徴とする請求項4に記載のプログラム性能測定装置。
  7. 前記分析手段が、前記トレイスデータの集合に基づいて前記トレイスデータの間の時間差と、前記トレイス文を実行した回数の差とを表す学習データの集合を生成し、前記学習データの集合を用いて前記統計処理を実行する
    ことを特徴とする請求項5に記載のプログラム性能測定装置。
  8. 出力指示手段が、前記被測定プログラムの動作中に、ランダムに前記トレイスデータの出力を指示する処理と、
    前記出力手段が、前記指示に基づいてトレイスデータを出力し、その結果をトレイスデータとして出力する処理と、
    分析手段が、前記トレイスデータに基づいて、前記複数のトレイス文により定まる複数の測定区間の実行の所要時間を算出する処理とを備える
    ことを特徴とするプログラム性能測定方法。
  9. 出力手段と出力指示手段と分析手段とを備えるプログラム性能測定装置を実現するプログラム性能測定プログラムであって、
    前記プログラム性能測定プログラムは、コンピュータに、
    前記出力指示手段が、前記被測定プログラムの動作中に、ランダムに前記トレイスデータの出力を指示する処理と、
    前記出力手段が、前記指示に基づいてトレイスデータを出力し、その結果をトレイスデータとして出力する処理と、
    前記分析手段が、前記トレイスデータに基づいて、前記複数のトレイス文により定まる複数の測定区間の実行の所要時間を算出する処理とを実行させる
    ことを特徴とするプログラム性能測定プログラム。
  10. 出力手段と出力指示手段と分析手段とを備えるプログラム性能測定装置を実現するプログラム性能測定プログラムを記録する記録媒体であって、
    前記プログラム性能測定プログラムは、コンピュータに、
    前記出力指示手段が、前記被測定プログラムの実行中に、ランダムに前記トレイスデータの出力を指示する処理と、
    前記出力手段が、前記指示に基づいてトレイスデータを出力し、その結果をトレイスデータとして出力する処理と、
    前記分析手段が、前記トレイスデータに基づいて、前記複数のトレイス文により定まる複数の測定区間の実行の所要時間を算出する処理とを実行させるプログラム性能測定プログラムである
    ことを特徴とするプログラム記録媒体。
JP2008260389A 2008-10-07 2008-10-07 プログラム性能測定装置、方法、プログラム、プログラム記録媒体 Expired - Fee Related JP5217870B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008260389A JP5217870B2 (ja) 2008-10-07 2008-10-07 プログラム性能測定装置、方法、プログラム、プログラム記録媒体
US12/573,661 US8543989B2 (en) 2008-10-07 2009-10-05 Program evaluation apparatus and program evaluation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008260389A JP5217870B2 (ja) 2008-10-07 2008-10-07 プログラム性能測定装置、方法、プログラム、プログラム記録媒体

Publications (2)

Publication Number Publication Date
JP2010092201A true JP2010092201A (ja) 2010-04-22
JP5217870B2 JP5217870B2 (ja) 2013-06-19

Family

ID=42076828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008260389A Expired - Fee Related JP5217870B2 (ja) 2008-10-07 2008-10-07 プログラム性能測定装置、方法、プログラム、プログラム記録媒体

Country Status (2)

Country Link
US (1) US8543989B2 (ja)
JP (1) JP5217870B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972952B2 (en) * 2012-02-03 2015-03-03 Apple Inc. Tracer based runtime optimization for dynamic programming languages
US10331543B2 (en) * 2017-01-13 2019-06-25 Microsoft Technology Licensing, Llc Performance diagnostics via offline replay
US10733077B2 (en) * 2017-12-28 2020-08-04 Intel Corporation Techniques for monitoring errors and system performance using debug trace information

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346414A (ja) * 2004-06-03 2005-12-15 Fujitsu Ltd トレース処理プログラム、方法及び装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01145736A (ja) 1987-12-01 1989-06-07 Fujitsu Ltd 動的性能測定方式
JP3389745B2 (ja) 1995-07-19 2003-03-24 富士通株式会社 プログラムの性能測定装置と方法
US6374367B1 (en) 1997-11-26 2002-04-16 Compaq Computer Corporation Apparatus and method for monitoring a computer system to guide optimization
US6718286B2 (en) * 2000-04-11 2004-04-06 Analog Devices, Inc. Non-intrusive application code profiling method and apparatus
US20050086022A1 (en) * 2003-10-15 2005-04-21 Microsoft Corporation System and method for providing a standardized test framework
US8108839B2 (en) * 2006-11-30 2012-01-31 International Business Machines Corporation Method and apparatus for tracing execution of computer programming code using dynamic trace enablement

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346414A (ja) * 2004-06-03 2005-12-15 Fujitsu Ltd トレース処理プログラム、方法及び装置

Also Published As

Publication number Publication date
JP5217870B2 (ja) 2013-06-19
US20100088682A1 (en) 2010-04-08
US8543989B2 (en) 2013-09-24

Similar Documents

Publication Publication Date Title
Debbarma et al. A review and analysis of software complexity metrics in structural testing
US10866804B2 (en) Recommendations based on the impact of code changes
US20170132344A1 (en) Micro-benchmark analysis optimization for microprocessor designs
Matam et al. Pro Apache JMeter
US9858371B1 (en) Method and system for generating post-silicon validation tests
JP2017091329A (ja) データベース分析装置およびデータベース分析方法
JP2007233944A (ja) 商品販売予測システム
JP5217870B2 (ja) プログラム性能測定装置、方法、プログラム、プログラム記録媒体
JPWO2016063502A1 (ja) 知識管理装置、知識管理方法、及び、プログラムの記録媒体
US20150339613A1 (en) Managing developer productivity
ShAtnAwi Measuring commercial software operational reliability: an interdisciplinary modelling approach
US10579761B1 (en) Method and system for reconstructing a graph presentation of a previously executed verification test
Ferme et al. Workflow management systems benchmarking: unfulfilled expectations and lessons learned
JP4996623B2 (ja) 検出装置、プログラムおよび検出方法
JP2008234240A (ja) 消費電力解析方法及び消費電力解析装置
JP2016076012A (ja) 設計流用支援装置、設計流用支援方法およびプログラム
WO2016163008A1 (ja) 異常診断装置および異常診断方法
JP2007323299A (ja) レビュー実施順序決定装置、レビュー実施順序決定プログラム、レビュー実施順序決定プログラムが格納された記録媒体およびレビュー実施順序決定方法
WO2019163915A1 (ja) プロジェクト分析装置及びプログラム
Parameswaran et al. A study on product design process and continuous improvement (CI): R&D in embedded computing industry
JP7135831B2 (ja) 分析プログラム、および分析装置
JP6834457B2 (ja) エミュレーション性能算出装置、エミュレーション性能算出システム、エミュレーション性能算出方法、および、エミュレーション性能算出プログラム
Kim et al. Automation and Prioritisation Technique for Regression Testing of PB Tech Web Application
JP6677068B2 (ja) 実行時間推定装置、実行時間推定方法、及びプログラム
JP2017111642A (ja) 消費電力算出方法および消費電力算出システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130218

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5217870

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees