JP6384109B2 - 情報処理装置,処理方法及び処理プログラム - Google Patents
情報処理装置,処理方法及び処理プログラム Download PDFInfo
- Publication number
- JP6384109B2 JP6384109B2 JP2014090250A JP2014090250A JP6384109B2 JP 6384109 B2 JP6384109 B2 JP 6384109B2 JP 2014090250 A JP2014090250 A JP 2014090250A JP 2014090250 A JP2014090250 A JP 2014090250A JP 6384109 B2 JP6384109 B2 JP 6384109B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- branch
- information
- execution
- collection
- 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.)
- Expired - Fee Related
Links
- 230000010365 information processing Effects 0.000 title claims description 44
- 238000003672 processing method Methods 0.000 title description 9
- 230000006870 function Effects 0.000 claims description 286
- 238000005070 sampling Methods 0.000 claims description 129
- 238000004458 analytical method Methods 0.000 claims description 74
- 238000000034 method Methods 0.000 claims description 42
- 230000008569 process Effects 0.000 claims description 27
- 238000013480 data collection Methods 0.000 description 69
- 238000007405 data analysis Methods 0.000 description 25
- 230000015654 memory Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 12
- 238000005259 measurement Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000012731 temporal analysis Methods 0.000 description 5
- 238000000700 time series analysis Methods 0.000 description 5
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
性能プロファイラは、プログラム実行時の各種情報を収集し、特に、関数呼び出しの頻度やそれにかかる時間を計測する。
性能プロファイラは、図11に示すように、PMC(Performance Monitoring Counter)とサンプリングドライバ(Sampling Driver)とを備える。例えば、PMCとしての機能はCPU(Central Processing Unit)によって実現され、また、サンプリングドライバはカーネルの機能として実装される。
サンプリングドライバは、PMCから割り込みが入力されると、解析対象である動作プログラムの情報を採取する。採取するプログラムの情報としては、例えば、実行中のプログラムのプロセスID(identification)や命令アドレスである。
採取されたプログラムの情報に対しては統計的解析が行なわれる。図13に示す例においては、各動作プログラムをCPU使用率でソートして示している。これにより、例えば、各プログラムの処理に要した時間をそれぞれ知ることができる。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
本実施形態の情報処理装置1は、プログラムを実行することにより各種機能を実現する計算機である。
本情報処理装置1は、図2に示すように、CPU201,メモリ202,ディスプレイ205,キーボード206,マウス207,媒体読取装置208及び記憶装置209を備える。
マウス207及びキーボード206はオペレータが種々の入力を行なうために操作する入力装置である。
メモリ202はROM(Read Only Memory)及びRAM(Random Access Memory)を含む記憶装置である。メモリ202のROMには、プログラム性能解析に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ202上のソフトウェアプログラムは、CPU201に適宜読み込まれて実行される。
メモリ領域には、CPU201がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。例えば、メモリ領域には、後述する、性能データ採取部21や分岐データ採取部22によって採取されるデータ(採取データ)や、集計部23や分岐データ解析部24による解析結果等が格納される。
媒体読取装置208は、記録媒体RMが装着可能に構成される。媒体読取装置208は、記憶媒体RMが装着された状態において、記録媒体RMに記録されている情報を読み取り可能に構成される。本例では、記録媒体RMは可搬性を有する。記録媒体RMは、コンピュータ読取可能な記録媒体であって、例えば、フレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク、又は、半導体メモリである。
すなわち、CPU201が、性能解析プログラム(処理プログラム)を実行することにより、性能解析部211として機能する。
性能解析部211は、本情報処理装置1において実行されるプログラムの性能を解析する。
PMC25は、所定のイベントを監視して計数するカウンタ(性能イベント監視カウンタ)であり、レジスタのカウンタオーバーフロー割り込みを用いて、割り込みを発生させる。この割り込みをオーバーフロー(overflow)割り込み、もしくは、サンプリング(sampling)割り込みという場合がある。
分岐トレース機能部26は、解析対象のプログラム(実行プログラム)について、プログラム中の分岐アドレスを採取する。例えば、分岐トレース機能部26は、プログラム中の分岐コマンド(例えば、jumpやcall,return)を検知することで分岐アドレスを特定する。以下、本実施形態においては、分岐コマンドがcall及びreturnである例について示す。
LBRの場合には専用のサイクリック・レジスタ・スタックが分岐データ記録領域であり、BTSの場合にはメモリ202上の所定の記憶領域(メモリバッファ)が分岐データ記録領域である。
この分岐トレース支援部22による分岐トレース支援機能は既知の手法で実現することができるものであるが、以下に簡単に説明する。
例えば、Intel(登録商標)のCPUでは、図3(a)に示すように、16ペア分の分岐アドレス(From_IP,To_IP)が、LBRと呼ばれるレジスタ・スタックに記録され、最後の記録位置を示すTOS(Top Of Stack)と呼ばれるインデックス(index)レジスタも同時に更新される。TOSにはインデックスとして、サイクリック・レジスタ・スタックに登録される16ペア分の分岐アドレスに対応する0〜15のいずれかの数字が記録される。
また、LBRにおいては、最後に採取された(最新の)データについては、その採取時刻を知ることができるが、それ以外のデータ、すなわち、最も古い分岐データ及び中間の分岐データについては、その採取時刻は不明である。
図4(a),(b)は実施形態の一例としての情報処理装置1における分岐トレース機能部26によって作成されるBTSの分岐情報を例示する図であり、(a)はBTSの構成を示す図、(b)はその元になるプログラムを例示する図である。
例えば、図4(b)に示すプログラム(アセンブルリスト)において、関数(Function)Aから関数Bがコールされる場合には、図4(a)に示すBTSの分岐1に対応付けて、関数Aのコマンド“call B”のアドレスがソース1として、また、関数Bの先頭アドレスがターゲット1として、それぞれ登録される。
なお、BTSの最初と最後、すなわちメモリバッファ上の先頭と最後尾のデータについては、そのおおよその採取時刻を知ることができるが、その間の各分岐データの採取時刻は不明である。
なお、上述したPMC25及び分岐トレース機能部26としての機能はCPUの既知の機能によって実現されるものであり、その詳細な説明は省略する。
性能データ採取部21は、実行中のプログラム(解析対象プログラム)の実行状況を示す性能情報(実行情報)を採取する。採取する性能情報としては、例えば、実行中のプログラムのプロセスIDや命令アドレスである。以下、採取する性能情報をサンプリングデータという場合がある。
また、性能データ採取部21は、サンプリングデータの採取時に、分岐データ採取部22に対して複数の分岐データの一括採取を指示する。なお、採取したサンプリングデータは、後述する分岐データ採取部22によって採取される分岐データと対応付けられ、1組のデータとして、記憶装置209等に保存される。
分岐データ採取部22は、性能データ採取部21からの分岐データの採取指示を受信すると、分岐トレース機能部26によってレジスタやメモリ202等に記録された分岐データ(各分岐アドレス)を採取する。すなわち、分岐トレース採取部24は、本情報処理装置1におけるプログラムの実行履歴を採取するものであり、解析対象プログラムにおける複数の分岐情報を採取する第2の採取部として機能する。
また、分岐データ採取部22は、新規データ判断のため、最後の記録位置を保存する。例えば、分岐トレース支援機能としてBTSを用いる場合には、メモリ202等の図示しない記憶領域に分岐データ記憶領域における最後の記録位置を示す値を記録する。また、分岐トレース支援機能としてLBRを用いる場合には、TOSにレジスタ・スタックにおける最後の記録位置を示す値を記録する。
図5(a),(b)は実施形態の一例としての情報処理装置1の集計部23による集計方法を説明するための図であり、(a)はサンプリングデータを例示する図、(b)は集計結果を例示する図である。
例えば、OSがLinux(登録商標)である場合には、以下のように各種情報を取得することができる。
(i)“/proc/kallsyms”ファイルに関数名とアドレスの一覧が格納されているので、当該ファイルを参照することにより、関数名の獲得を行なうことができる。
(iii)プロセスIDから得たプログラムの実行ファイルに対して“nmコマンド”を実行することにより、実行ファイルに定義されている関数とそのアドレス範囲がわかる。これにより、命令アドレスから関数名を獲得することができる。
集計部23は、プロセスIDと命令アドレスとから、サンプリングされた関数名を獲得する。図5(a)に示す例においては、プロセスIDと命令アドレスとから、サンプリングデータ(2)はプログラム名“test”の関数名“test1”であると特定されている。
すなわち、集計部23は、実際のサンプリング間隔に応じて、対応する関数のサンプル数を補正する。
分岐データ解析部24は、分岐データ採取部22によって採取された分岐データに基づき、集計部23で計算された各関数の実行割合を利用して、各関数が実行された時間である実行時間を解析する。
分岐データ解析部24は、性能データ採取部21により連続して採取された(図6に示す例では、時刻t1,t2)2つのサンプリングデータの間(サンプリング間隔)を、分岐データに基づいて実行が確認された関数(図6に示す例ではf1〜f3)の実行時間で補完する。すなわち、分岐データ解析部24は、サンプリング間隔を、分岐データに基づいて実行が確認された1つ以上の関数に配分して割り当てる。
以下に、分岐データ解析部24による、集計部23で計算された各関数の実行割合を利用して、各関数に実行時間を配分する手法を説明する。
前述の如く、分岐データにおける分岐元(ソース)及び分岐先(ターゲット)の命令アドレスから、解析対象プログラムにおける当該分岐データに対応する関数が判明する。
そして、分岐データ解析部24は、分岐データに出現する各関数の実行時間を、集計部23の計算結果から求める。
この関数の実行時間の計算方法としては、後述する如く複数種類あり、予め、使用する計算方法を選択することが望ましい。この計算方法の選択は、ユーザが任意に行なってもよく、また、システムが事前に行なわれた設定に従って自動で選択してもよい。
なお、実行時間が短時間であったため、実際は実行されたがサンプリングデータには出現しない関数もあり得る。分岐データを参照することで、このように性能データ採取部21によるサンプリングでは検知されない関数も把握することができる。なお、このような関数については、出現間隔(実行時間)を0として扱われる。
すなわち、分岐データ解析部24が算出した各関数の実行時間をサンプリング間隔とし、各関数の検知をサンプリングデータとして扱うことで、時系列解析やプロファイル解析を行なうことが可能となる。プロファイル解析を行なう場合には、集計部23で、関数の検知もサンプリングデータとしてみなして、各関数の実行割合を再計算する。
次に、分岐データ解析部24による、サンプリング間隔への関数の対応付け方法について説明する。
図7に示す例においては、時刻t1において行なったサンプリングによりサンプリングデータS1が採取され、時刻t2において行なったサンプリングによりサンプリングデータS2が採取されたものとする。また、t2−t1で求められるサンプリング間隔Tが100μsであるとする。
分岐データ解析部24は、サンプリング間隔に複数の関数の連続体を対応付けるに際して、サンプリング間隔への関数の連続体の対応付け方としては、例えば以下の(P1)〜(P3)に示す3通りのパターンが考えられ、いずれを用いてもよい。なお、図7中における白抜き矢印(a1)〜(a3)は、それぞれ関数の連続体を示す。
図7中の白抜き矢印(a1)に示すように、サンプリング間隔Tにわたって関数の連続体が実行されていたとみなす。
(P2)サンプリング間隔から現サンプリングデータの関数の実行割合に相当する時間を引いた時間帯に対応付ける
例えば、図7に示す例においては、サンプリングデータS2の採取時(現時刻)に実行されていた関数の実行割合が25%であるとする。この場合に、白抜き矢印(a2)に示すように、サンプリング間隔Tから、この関数の実行割合に相当する時間(100μs×0.25)を減算した時間帯で、関数の連続体が実行されていたとみなす。
例えば、図7に示す例においては、サンプリングデータS1の採取時(1つ前のサンプリングデータ取得時)に実行されていた関数の実行割合が10%であるとする。この場合に、白抜き矢印(a3)に示すように、サンプリング間隔Tから、この関数の実行割合に相当する時間(100μs×0.1)を減算した時間帯で、関数の連続体が実行されていたとみなす。
分岐データ解析部24は、上述したサンプリング間隔において、関数の連続体に対応付けた時間帯、すなわち、関数の連続体の実行に要した時間を、更に、当該連続体を構成する複数の関数に配分する。
関数の連続体に対応付けられた時間(=サンプリング間隔)を、連続体を構成する複数の関数で均等に分割して割り当てる。
すなわち、以下の式(1)に示すように、個々の関数への割り当て時間を、「サンプリング間隔T」を「分岐データ数(連続体を構成する関数の数)」で除算することにより求める。これにより、分岐データあたりの出現間隔は一定となる。
例えば、サンプリング間隔Tが100μsであり、1度に採取された分岐データ(関数)の数が10(10データ)の場合には、サンプリング間隔Tにおける個々の関数の割り当て時間は、100μs/10=10μsとして求められる。
(b2)関数の実行割合に応じて決定
すなわち、以下の式(2)を用いて サンプリング間隔Tにおいて、連続体を構成する複数の関数のそれぞれに対して、各関数の実行割合を反映させた割り当て時間を算出する
サンプリング間隔T×関数の実行割合/関数の出現回数 ・・・(2)
すなわち、個々の関数の割り当て時間は、関数の出現間隔/回として求められる。
(b3)関数の実行割合の和を求め、その中の割合に応じて配分
すなわち、以下の式(3)を用いて サンプリング間隔Tを、連続体を構成する複数の関数のそれぞれに対して、各関数の実行割合を反映させた割り当て時間で配分する
サンプリング間隔×(関数の実行割合/関数の実行割合の和) ・・・(3)
例えば、サンプリング間隔Tが100μsであり、対象の関数の実行割合が10%,関数の実行割合の和が50%であった場合には、個々の関数の割り当て時間は、100μs×(0.1/0.5)=20μsとして求められる。
また、上述した(b1)及び(b3)のパターンにおいては、分岐データが対応付けられた時間帯を全て各データに配分するので、全分岐データを採取可能なBTS使用時に適用することが望ましい。また、分岐データのみならずサンプリングデータを含めて処理してもよい。
図8(a),(b)は実施形態の一例としての情報処理装置1におけるサンプリング間隔への複数の関数の配分方法による相違を説明するための図であり、(a)はサンプリング間隔へ関数を配分する複数例を示す図、(b)はその分岐データを例示する図である。
なお、これらの関数F1,F2,F3の各実行割合は10%,30%,10%とする。
時刻t3において採取されたサンプリングデータにおいて関数F3が得られ(符号c1参照)、また、このサンプリングと同時に、図8(b)に示すような分岐データが分岐データ採取部22によって採取される。
なお、サンプリング間隔全体に分岐データを対応付けるものとする。すなわち、サンプリング間隔全体に、関数F1〜F3の連続体が割り当てられる。また、分岐を生じさせる関数としてcallとreturnを想定し、分岐データとして分岐元の関数を用いる。また、サンプリングにより得られたサンプリングデータも用いる。
この場合においても、サンプリング間隔に対して、複数の関数の実行時間を各実行割合に応じて配分する(割り当てる)ことで(図8(a)の符号c5参照)、単純に複数の関数に均等に実行時間を割り当てる(図8(a)の符号c4参照)場合に比べて、実際に実行された関数の動作に近くなり(図8(a)の符号c1参照)、妥当である。
前述の如く、分岐トレース機能部26は、例えば、LBRやBTS等の分岐トレース支援機能を実行することで、プログラムの実行に伴う分岐情報を採取する。
ここで、低負荷で効率的な採取が可能なLBRと、LBRよりも多くのデータ採取と採取時刻の把握がしやすく高負荷なBTSとを使い分けることが望ましい。
分岐データ採取部22は、まず、LBRから分岐データを読み出す。新規にLBRに記録されたデータ数が、LBRへの最大登録個数である16個未満の場合は、そのままデータ採取は終了する。
一方、LBRに新規に16個のデータが記録されていた場合には、LBRにおいてサイクリックが行なわれ16個より多くのデータが記録(上書き)された可能性がある。そこで、BTSの分岐データを参照し、LBRで上書きされたデータの有無を調べる。上書きされたデータがあれば、その分を分岐データとして保存する。
また、LBRとBTSとの他の併用方法を適用してもよい。
すなわち、先ず、LBRの非採取対象を指定して、不要な分岐を排除して分岐データを採取し、時系列挙動解析などを行なう。
上述の如く構成された実施形態の一例としての情報処理装置1におけるプログラム性能解析方法を、図9に示すフローチャート(ステップA1〜A7)に従って説明する。
まず、ステップA1において、PMC25からサンプリング間隔毎に行なわれるオーバーフロー割り込みを、性能データ採取部21が受信(キャッチ)する。
ステップA2において、性能データ採取部21は、サンプリングデータとして実行中のプログラム(解析対象プログラム)の実行状況を示す実行情報(性能情報)を採取する。また、性能データ採取部21は、分岐データ採取部22に対して分岐データの採取指示を通知する。
ステップA4において、ステップA2において採取した性能情報と、ステップA3において採取した分岐データとを対応付けて、1組のデータとして記憶装置209等に保存する。
測定時間が終了した場合には(ステップA5のYesルート参照)、解析フェーズに移行する。すなわち、先ず、ステップA6において、集計部23が、性能データ採取部21によって採取されたサンプリングデータから、関数毎の実行割合を算出する。
次に、実施形態の一例としての情報処理装置1の分岐データ解析部24による分岐データの採取時刻の解析方法を、図10に示すフローチャート(ステップB1〜B6)に従って説明する。
ステップB2において、分岐データ解析部24は、性能データ採取部21によって採取したサンプリングデータと、分岐データ採取部22によって採取した分岐データとを1組読み込む。
ステップB4において、分岐データ採取部22は、集計部23によって算出された各関数の実行割合に基づき、各関数に実行時間を割り当てる。すなわち、分岐データ採取部22は、サンプリング間隔において複数の関数の実行時間を配分する。
ステップB6において、全ての分岐データについての処理が終了したか否かを確認し、終了していない場合には(ステップB6のNoルート参照)、ステップB2に戻る。また、全ての分岐データについての処理が終了した場合には(ステップB6のYesルート参照)、処理を終了する。
従って、解析した関数の実行時間を用いて、分岐データをサンプリングデータとして扱い、時系列解析やプロファイル解析を行なうことが可能となり、精度の高い実行時間の算出が可能となる。
例えば、分岐データ採取部22が分岐トレース機能部26からLBRを用いた分岐データを採取する場合には、16個の分岐データを採取して用いることができる。これにより、従来の性能プロファイラによる時系列解析に比べて、採取負荷はそのままで、解像度を最大17倍に向上させることができる。
また、短時間で処理され、性能データ採取部21によるサンプリングでは検出されないようなプロセスについても、分岐データを参照することでその実行を把握し、対応する関数の実行時間を知ることができる。これによっても精度の高い実行時間の算出を可能とし、また、性能解析に必要な情報を収集することができる。
PMC25からのオーバーフロー割り込みを契機として、性能データ採取部21による性能データのサンプリングと、分岐データ採取部22による分岐データの採取とを実現することができる。
例えば、上述した実施形態においては、情報処理装置1が性能データ採取部21,分岐データ採取部22,集計部23及び分岐データ解析部24としての機能を備えているが、これに限定されるものではない。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(付記1)
解析対象プログラムにおける複数の分岐情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計する集計部と、
分岐トレース支援機能によって採取された複数の分岐情報に対し、前記集計部が集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する解析部と
を有することを特徴とする、情報処理装置。
実行中の前記解析対象プログラムの実行状況を示す実行情報を採取する第1の採取部と、
前記第1の採取部による採取と同時に、前記解析対象プログラムにおける複数の分岐情報を採取する第2の採取部とを有し、
前記解析部が、前記第1の採取部が、前記実行情報の採取時刻を前記複数の分岐情報の採取を開始した採取開始時刻として前記各関数の採取時刻の解析を行なう
ことを特徴とする、付記1記載の情報処理装置。
前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔を、複数の関数の実行時間で均等に配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記2記載の情報処理装置。
(付記4)
前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔に基づき、関数の各実行割合に応じた前記関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記2又は3に記載の情報処理装置。
前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔を、複数の関数実行時間の各実行割合に応じて配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記2〜4のいずれか1項に記載の情報処理装置。
採取された前記複数の分岐情報の記憶先の容量オーバ発生時に、前記第2の採取部が前記解析対象プログラムにおける複数の分岐情報を採取することを特徴とする、付記2〜5のいずれか1項に記載の情報処理装置。
(付記7)
有限数のレジスタに分岐情報を格納する第1分岐トレース支援機能と、主記憶装置の所定領域に分岐情報を格納する第2分岐トレース支援機能とを備え、
前記集計部が、前記前記第1分岐データトレース支援機能の分岐情報を、前記第2分岐トレース支援機能の分岐情報より優先して用いることを特徴とする、付記1〜6のいずれか1項に記載の情報処理装置。
解析対象プログラムにおける複数の分岐情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計する処理と、
分岐トレース支援機能によって採取された複数の分岐情報に対し、前記集計部が集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する処理と
を有することを特徴とする、処理方法。
実行中の前記解析対象プログラムの実行状況を示す実行情報を採取する処理と、
前記採取と同時に、前記解析対象プログラムにおける複数の分岐情報を採取する処理とを有し、
前記実行情報の採取時刻を前記複数の分岐情報の採取を開始した採取開始時刻として前記各関数の採取時刻の解析を行なう
ことを特徴とする、付記8記載の処理方法。
連続して行なわれる2回の実行情報の採取間隔を、複数の関数の実行時間で均等に配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記9記載の処理方法。
(付記11)
連続して行なわれる2回の実行情報の採取間隔に基づき、関数の各実行割合に応じた前記関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記9又は10に記載の処理方法。
連続して行なわれる2回の実行情報の採取間隔を、複数の関数実行時間の各実行割合に応じて配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記9〜11のいずれか1項に記載の処理方法。
(付記13)
採取された前記複数の分岐情報の記憶先の容量オーバ発生時に、前記解析対象プログラムにおける複数の分岐情報を採取することを特徴とする、付記9〜12のいずれか1項に記載の処理方法。
有限数のレジスタに分岐情報を格納する第1分岐トレース支援機能と、主記憶装置の所定領域に分岐情報を格納する第2分岐トレース支援機能とを備え、
前記前記第1分岐データトレース支援機能の分岐情報を、前記第2分岐トレース支援機能の分岐情報より優先して用いることを特徴とする、付記8〜13のいずれか1項に記載の処理方法。
解析対象プログラムにおける複数の分岐情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計し、
分岐トレース支援機能によって採取された複数の分岐情報に対し、前記集計部が集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する
処理をコンピュータに実行させることを特徴とする、処理プログラム。
実行中の前記解析対象プログラムの実行状況を示す実行情報を採取し、
前記採取と同時に、前記解析対象プログラムにおける複数の分岐情報を採取し、
前記実行情報の採取時刻を前記複数の分岐情報の採取を開始した採取開始時刻として前記各関数の採取時刻の解析を行なう
処理をコンピュータに実行させることを特徴とする、付記15記載の処理プログラム。
連続して行なわれる2回の実行情報の採取間隔を、複数の関数の実行時間で均等に配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なう
処理を前記コンピュータに実行させることを特徴とする、付記16記載の処理プログラム。
連続して行なわれる2回の実行情報の採取間隔に基づき、関数の各実行割合に応じた前記関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なう
処理を前記コンピュータに実行させることを特徴とする、付記16又は17に記載の処理プログラム。
連続して行なわれる2回の実行情報の採取間隔を、複数の関数実行時間の各実行割合に応じて配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なう
処理を前記コンピュータに実行させることを特徴とする、付記16〜18のいずれか1項に記載の処理プログラム。
採取された前記複数の分岐情報の記憶先の容量オーバ発生時に、前記解析対象プログラムにおける複数の分岐情報を採取する
処理を前記コンピュータに実行させることを特徴とする、付記16〜19のいずれか1項に記載の処理プログラム。
21 性能データ採取部
22 分岐データ採取部
23 集計部
24 分岐データ解析部
25 PMC
26 分岐トレース機能部
201 CPU
202 メモリ
205 ディスプレイ
206 キーボード
207 マウス
209 記憶装置
Claims (7)
- 実行中の解析対象プログラムの実行状況を示す実行情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計する集計部と、
分岐トレース支援機能によって採取された複数の分岐情報に対し、前記集計部が集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する解析部と
を有することを特徴とする、情報処理装置。 - 前記実行情報を採取する第1の採取部と、
前記第1の採取部による採取と同時に、前記解析対象プログラムにおける複数の分岐情報を採取する第2の採取部とを有し、
前記解析部が、前記第1の採取部が、前記実行情報の採取時刻を前記複数の分岐情報の採取を開始した採取開始時刻として前記各関数の採取時刻の解析を行なう
ことを特徴とする、請求項1記載の情報処理装置。 - 前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔を、複数の関数の実行時間で均等に配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、請求項2記載の情報処理装置。
- 前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔に基づき、関数の各実行割合に応じた前記関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、請求項2又は3に記載の情報処理装置。
- 前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔を、複数の関数実行時間の各実行割合に応じて配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、請求項2〜4のいずれか1項に記載の情報処理装置。
- 実行中の解析対象プログラムの実行状況を示す実行情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計する処理と、
分岐トレース支援機能によって採取された複数の分岐情報に対し、集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する処理と
を有することを特徴とする、処理方法。 - 実行中の解析対象プログラムの実行状況を示す実行情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計し、
分岐トレース支援機能によって採取された複数の分岐情報に対し、集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する
処理をコンピュータに実行させることを特徴とする、処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014090250A JP6384109B2 (ja) | 2014-04-24 | 2014-04-24 | 情報処理装置,処理方法及び処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014090250A JP6384109B2 (ja) | 2014-04-24 | 2014-04-24 | 情報処理装置,処理方法及び処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015210575A JP2015210575A (ja) | 2015-11-24 |
JP6384109B2 true JP6384109B2 (ja) | 2018-09-05 |
Family
ID=54612736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014090250A Expired - Fee Related JP6384109B2 (ja) | 2014-04-24 | 2014-04-24 | 情報処理装置,処理方法及び処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6384109B2 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002342114A (ja) * | 2001-05-21 | 2002-11-29 | Fujitsu Ltd | トレースデータ採取可能なプロセッサ |
JP2006202134A (ja) * | 2005-01-21 | 2006-08-03 | Nec Micro Systems Ltd | プロファイル情報収集方法および装置 |
JP4899511B2 (ja) * | 2006-02-08 | 2012-03-21 | 富士通株式会社 | システム分析プログラム、システム分析装置、およびシステム分析方法 |
-
2014
- 2014-04-24 JP JP2014090250A patent/JP6384109B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015210575A (ja) | 2015-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kambadur et al. | Measuring interference between live datacenter applications | |
US9626272B2 (en) | Prediction of impact of workload migration | |
US9183116B1 (en) | Call chain interval resource impact aggregation differencing | |
JP2006227999A (ja) | ボトルネック検出システム、測定対象サーバ、ボトルネック検出方法およびプログラム | |
JP5257816B2 (ja) | コンテキストスイッチサンプリング | |
JP4681491B2 (ja) | プロファイリングプログラムおよびプロファイリング方法 | |
US20070185688A1 (en) | Computer-readable recording medium storing system analysis program, and apparatus and method for system analysis | |
US20070150871A1 (en) | Autonomically adjusting the collection of performance data from a call stack | |
US10411969B2 (en) | Backend resource costs for online service offerings | |
US9442817B2 (en) | Diagnosis of application server performance problems via thread level pattern analysis | |
WO2014050254A1 (ja) | ボトルネック検出装置、方法及びプログラム | |
US20090083716A1 (en) | Profiling method and program | |
US10409636B2 (en) | Apparatus and method to correct an execution time of a program executed by a virtual machine | |
JP2018194988A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
US20050198635A1 (en) | Measuring processor use in a hardware multithreading processor environment | |
US20110191094A1 (en) | System and method to evaluate and size relative system performance | |
JP2014106972A (ja) | 動的ライブラリのプロファイリング方法 | |
US20180314774A1 (en) | System Performance Measurement of Stochastic Workloads | |
US10114725B2 (en) | Information processing apparatus, method, and computer readable medium | |
JP6384109B2 (ja) | 情報処理装置,処理方法及び処理プログラム | |
US20180285238A1 (en) | Intelligent deinstrumentation of instrumented applications | |
JP2015111326A (ja) | 電力見積方法、電力見積装置及びプログラム | |
JP5974856B2 (ja) | サンプリングプログラム、サンプリング方法及び情報処理装置 | |
US10241884B2 (en) | Information processing apparatus and method for collecting performance data | |
WO2012056569A1 (ja) | 性能測定方法、性能測定装置、及び、性能測定プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170110 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180209 |
|
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: 20180710 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180723 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6384109 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |