JP6384109B2 - 情報処理装置,処理方法及び処理プログラム - Google Patents

情報処理装置,処理方法及び処理プログラム Download PDF

Info

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
Application number
JP2014090250A
Other languages
English (en)
Other versions
JP2015210575A (ja
Inventor
美由紀 松尾
美由紀 松尾
昌生 山本
昌生 山本
耕太 中島
耕太 中島
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 JP2014090250A priority Critical patent/JP6384109B2/ja
Publication of JP2015210575A publication Critical patent/JP2015210575A/ja
Application granted granted Critical
Publication of JP6384109B2 publication Critical patent/JP6384109B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置,処理方法及び処理プログラムに関する。
計算機上で実行されるプログラムの性能を評価するプログラム性能解析方法として、例えば、性能プロファイラが知られている。性能プロファイラは、プログラムの実行を通して情報を収集することでプログラムの性能を解析する性能解析プログラムである。
性能プロファイラは、プログラム実行時の各種情報を収集し、特に、関数呼び出しの頻度やそれにかかる時間を計測する。
図11は性能プロファイラの機能構成を模式的に示す図、図12はその測定フェーズを説明する図、図13は解析結果を例示する図である。
性能プロファイラは、図11に示すように、PMC(Performance Monitoring Counter)とサンプリングドライバ(Sampling Driver)とを備える。例えば、PMCとしての機能はCPU(Central Processing Unit)によって実現され、また、サンプリングドライバはカーネルの機能として実装される。
PMCは、一定間隔サンプリングドライバに対して割り込み(overflow割り込み,sampling割り込み)を発生させる。PMCは、レジスタのカウンタオーバーフロー割り込みを用いて、前述した割り込みを発生させる。図11に示す例においては、PMCが1ms毎にオーバーフロー割り込みを発生させている。
サンプリングドライバは、PMCから割り込みが入力されると、解析対象である動作プログラムの情報を採取する。採取するプログラムの情報としては、例えば、実行中のプログラムのプロセスID(identification)や命令アドレスである。
図12においては、3種類のプログラムA,B,Cが、A,C,B,Aの順に実行された状態を例示している。そして、1ms毎(1ms rate)に発生されるオーバーフロー割り込みに応じて、サンプリングドライバがその時点でCPU(Central Processing Unit)により実行されているプログラムの情報を採取する。
採取されたプログラムの情報に対しては統計的解析が行なわれる。図13に示す例においては、各動作プログラムをCPU使用率でソートして示している。これにより、例えば、各プログラムの処理に要した時間をそれぞれ知ることができる。
特開平11−143735号公報 特開平7−21061号公報 特開2004−30514号公報
しかしながら、近年においては、計算機の性能向上に伴い、解析対象のプログラムの実行時間が短くなってきており、例えば、そのレスポンスが1ms以内に行なわれることが求められる場合もある。すなわち、図12に示す例において、図中に横軸方向に示す各動作プログラムの実行時間が短くなり、PMCからのオーバーフロー割り込みでは時系列解析に必要な情報を十分に採取できない場合があるという課題がある。
本発明の目的の一つは、精度の高い実行時間の算出を可能とすることである。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、この情報処理装置は、実行中の解析対象プログラムの実行状況を示す実行情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計する集計部と、分岐トレース支援機能によって採取された複数の分岐情報に対し、前記集計部が集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する解析部とを有する。
一実施形態によれば、精度の高い実行時間の算出を可能とする。
実施形態の一例としての情報処理装置の性能解析部の機能構成を示す図である。 実施形態の一例としての情報処理装置のハードウェア構成を示す図である。 (a),(b)は実施形態の一例としての情報処理装置における分岐トレース機能部によって作成されるLBRの分岐情報を例示する図である。 (a),(b)は実施形態の一例としての情報処理装置における分岐トレース機能部によって作成されるBTSの分岐情報を例示する図である。 (a),(b)は実施形態の一例としての情報処理装置の集計部による集計方法を説明するための図である。 実施形態の一例としての情報処理装置の分岐データ解析部による分岐データの使用方法を説明するための図である。 実施形態の一例としての情報処理装置におけるサンプリング間隔への関数の実行割合の対応付けパターンを例示する図である。 (a),(b)は実施形態の一例としての情報処理装置におけるサンプリング間隔への複数の関数の配分方法による相違を説明するための図である。 実施形態の一例としての情報処理装置におけるプログラム性能解析方法を説明するフローチャートである。 実施形態の一例としての情報処理装置の分岐データ解析部による分岐データの採取時刻の解析方法を説明するフローチャートである。 性能プロファイラの機能構成を模式的に示す図である。 性能プロファイラの測定フェーズを説明する図である。 解析結果を例示する図である。
以下、図面を参照して本情報処理装置,処理方法及び処理プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
図1は実施形態の一例としての情報処理装置の性能解析部11の機能構成を示す図、図2は実施形態の一例としての情報処理装置のハードウェア構成を示す図である。
本実施形態の情報処理装置1は、プログラムを実行することにより各種機能を実現する計算機である。
本情報処理装置1は、図2に示すように、CPU201,メモリ202,ディスプレイ205,キーボード206,マウス207,媒体読取装置208及び記憶装置209を備える。
ディスプレイ205は種々の情報を表示する表示装置であり、例えば、液晶ディスプレイ装置やCRT(Cathode Ray Tube)ディスプレイ装置である。
マウス207及びキーボード206はオペレータが種々の入力を行なうために操作する入力装置である。
メモリ202はROM(Read Only Memory)及びRAM(Random Access Memory)を含む記憶装置である。メモリ202のROMには、プログラム性能解析に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ202上のソフトウェアプログラムは、CPU201に適宜読み込まれて実行される。
また、メモリ202のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。このメモリ202のRAMは、種々のデータやプログラムを一時的に格納する記憶装置であり図示しないメモリ領域をそなえる。
メモリ領域には、CPU201がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。例えば、メモリ領域には、後述する、性能データ採取部21や分岐データ採取部22によって採取されるデータ(採取データ)や、集計部23や分岐データ解析部24による解析結果等が格納される。
記憶装置209は、ハードディスクドライブ(Hard disk drive:HDD)、SSD(Solid State Drive)等の記憶装置であって、種々のデータを格納するものである。また、記憶装置209には、OS(Operating System)や解析対象のプログラム等も格納される。
媒体読取装置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は、種々の制御や演算を行なう処理装置であり、メモリ202に格納されたOSやプログラムを実行することにより、種々の機能を実現する。例えば、CPU201は、図1に示すように、性能解析部211としての機能を実現する。
すなわち、CPU201が、性能解析プログラム(処理プログラム)を実行することにより、性能解析部211として機能する。
なお、この性能解析部211としての機能を実現するためのプログラム(処理プログラム)は、例えば前述した記録媒体RMに記録された形態で提供される。そして、コンピュータはその記録媒体RMからプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
性能解析部211としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ202のRAMやROM)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU201)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
性能解析部211は、本情報処理装置1において実行されるプログラムの性能を解析する。
この性能解析部211は、図1に示すように、性能データ採取部21,分岐データ採取部22,集計部23,分岐データ解析部24,PMC25及び分岐トレース機能部26としての機能を備える。
PMC25は、所定のイベントを監視して計数するカウンタ(性能イベント監視カウンタ)であり、レジスタのカウンタオーバーフロー割り込みを用いて、割り込みを発生させる。この割り込みをオーバーフロー(overflow)割り込み、もしくは、サンプリング(sampling)割り込みという場合がある。
PMC25は固定サイクル数を計数し、例えば、CPU201のクロック周波数に基づき、所定時間経過毎(例えば、1ms毎)にオーバーフロー割り込みが出力されるように設定されている。このPMC25から出力されるオーバーフロー割り込みが、性能データ採取部21に入力されサンプリング契機として用いられる。また、性能データ採取部21は、PMC25からオーバーフロー割り込みが入力されると、分岐データ採取部22に対して分岐データの採取指示を入力する。
すなわち、PMC25から所定間隔(指定サンプリング間隔)で出力されるオーバーフロー割り込み通知(サンプリング割り込み)が、性能データ採取部21及び分岐トレース機能部26による情報取得のトリガ通知として用いられる。
分岐トレース機能部26は、解析対象のプログラム(実行プログラム)について、プログラム中の分岐アドレスを採取する。例えば、分岐トレース機能部26は、プログラム中の分岐コマンド(例えば、jumpやcall,return)を検知することで分岐アドレスを特定する。以下、本実施形態においては、分岐コマンドがcall及びreturnである例について示す。
また、分岐トレース機能部26は、例えば、LBR(Last Branch Record)やBTS(Branch Trace Store)等の分岐トレース支援機能を実行することで、プログラムの実行に伴う分岐情報(分岐データ)を採取する。具体的には、分岐トレース機能部26は、分岐トレース支援機能により、実行された分岐のソース(分岐元となる分岐命令アドレス)と、ターゲット(分岐先の命令アドレス)とを取得し、所定の記憶領域に保存する。
分岐トレース機能部26は、CPU201によって実行されたプログラム中で発生した分岐について、そのソース(分岐元となる分岐命令アドレス)とターゲット(分岐先の命令アドレス)とを取得し、所定の記憶領域に記録する。具体的には、分岐トレース機能部26は、分岐について取得したソース(From)とターゲット(To)の各命令アドレス(IP:Instruction Pointer)とを、ペア(分岐ペア)で所定の記憶領域に記録する。
以下、分岐トレース機能部26により採取されるソースの命令アドレスとターゲットの命令アドレスとの組み合わせである分岐ペアを分岐情報もしくは分岐データという場合がある。また、分岐トレース機能部26により分岐データが記録される領域を分岐データ記録領域という。
LBRの場合には専用のサイクリック・レジスタ・スタックが分岐データ記録領域であり、BTSの場合にはメモリ202上の所定の記憶領域(メモリバッファ)が分岐データ記録領域である。
また、解析対象プログラムにおいては、callやreturnのコマンドによる分岐は、何らかの関数の実行中に生じる。従って、分岐データ(分岐ペア)にはいずれかの関数が対応付けられる。
この分岐トレース支援部22による分岐トレース支援機能は既知の手法で実現することができるものであるが、以下に簡単に説明する。
図3(a),(b)は実施形態の一例としての情報処理装置1における分岐トレース機能部26によって作成されるLBRの分岐情報を例示する図であり、(a)はLBRの構成を示す図、(b)はその元になるプログラムを例示する図である。
例えば、Intel(登録商標)のCPUでは、図3(a)に示すように、16ペア分の分岐アドレス(From_IP,To_IP)が、LBRと呼ばれるレジスタ・スタックに記録され、最後の記録位置を示すTOS(Top Of Stack)と呼ばれるインデックス(index)レジスタも同時に更新される。TOSにはインデックスとして、サイクリック・レジスタ・スタックに登録される16ペア分の分岐アドレスに対応する0〜15のいずれかの数字が記録される。
例えば、図3(b)に示すプログラム(アセンブルリスト)において、関数(Function)Aから関数Bがコールされる場合には、図3(a)に示すLBRの分岐1に対応付けて、関数Aのコマンド“call B”のアドレスがソース1として、また、関数Bの先頭アドレスがターゲット1として、それぞれ登録される。
また、LBRにおいては、最後に採取された(最新の)データについては、その採取時刻を知ることができるが、それ以外のデータ、すなわち、最も古い分岐データ及び中間の分岐データについては、その採取時刻は不明である。
なお、分岐トレース支援機能においては、例えば、採取対象とする分岐命令の種類(無条件分岐/条件分岐/call/return等)や特権レベル(OSモード、userモード)のフィルタリング設定、および採取開始・停止指示等を操作することができる。
図4(a),(b)は実施形態の一例としての情報処理装置1における分岐トレース機能部26によって作成されるBTSの分岐情報を例示する図であり、(a)はBTSの構成を示す図、(b)はその元になるプログラムを例示する図である。
例えば、IntelのCPUでは、図4(a)に示すように、予めソフト側でメモリ202等に確保した任意のメモリバッファ領域上に、ソース(From)とターゲット(To)の各命令アドレス(IP:Instruction Pointer)とを、ペアで記録していく。なお、LBRと異なり、メモリバッファ領域上でサイクリックはしない。
例えば、図4(b)に示すプログラム(アセンブルリスト)において、関数(Function)Aから関数Bがコールされる場合には、図4(a)に示すBTSの分岐1に対応付けて、関数Aのコマンド“call B”のアドレスがソース1として、また、関数Bの先頭アドレスがターゲット1として、それぞれ登録される。
このようなBTSのデータの回収のタイミングは、任意の一定間隔(サンプリング時)または、バッファオーバーフロー割り込み時である。
なお、BTSの最初と最後、すなわちメモリバッファ上の先頭と最後尾のデータについては、そのおおよその採取時刻を知ることができるが、その間の各分岐データの採取時刻は不明である。
また、BTSにおいては、分岐データの格納用に予め確保した領域がいっぱい(領域がフル)になった場合になると、分岐データ採取部22割り込みを発生させる。
なお、上述したPMC25及び分岐トレース機能部26としての機能はCPUの既知の機能によって実現されるものであり、その詳細な説明は省略する。
性能データ採取部21は、実行中のプログラム(解析対象プログラム)の実行状況を示す性能情報(実行情報)を採取する。採取する性能情報としては、例えば、実行中のプログラムのプロセスIDや命令アドレスである。以下、採取する性能情報をサンプリングデータという場合がある。
性能データ採取部21は、PMC25から一定時間間隔で入力されるサンプリング割り込みを契機として、サンプリングデータを採取(サンプリング)する。従って、性能データ採取部21は、実行中の解析対象プログラムの実行状況を示す実行情報(性能情報)を採取する第1の採取部として機能する。
また、性能データ採取部21は、サンプリングデータの採取時に、分岐データ採取部22に対して複数の分岐データの一括採取を指示する。なお、採取したサンプリングデータは、後述する分岐データ採取部22によって採取される分岐データと対応付けられ、1組のデータとして、記憶装置209等に保存される。
分岐データ採取部22は、分岐トレース支援機能を用いて、解析対象のプログラムにおける複数の分岐データを一括採取する。
分岐データ採取部22は、性能データ採取部21からの分岐データの採取指示を受信すると、分岐トレース機能部26によってレジスタやメモリ202等に記録された分岐データ(各分岐アドレス)を採取する。すなわち、分岐トレース採取部24は、本情報処理装置1におけるプログラムの実行履歴を採取するものであり、解析対象プログラムにおける複数の分岐情報を採取する第2の採取部として機能する。
例えば、分岐トレース機能部26がBTSを用いる場合には、分岐データ採取部22は、トレース機能部26によって分岐データ記憶領域に新規に記録された分岐データを読み出し、性能データ採取部21に渡す。
また、分岐データ採取部22は、新規データ判断のため、最後の記録位置を保存する。例えば、分岐トレース支援機能としてBTSを用いる場合には、メモリ202等の図示しない記憶領域に分岐データ記憶領域における最後の記録位置を示す値を記録する。また、分岐トレース支援機能としてLBRを用いる場合には、TOSにレジスタ・スタックにおける最後の記録位置を示す値を記録する。
さらに、分岐データ採取部22は、分岐トレース支援機能としてBTSを用いる場合に、分岐トレース機能部26から、分岐データ記憶領域がフルになると発生する割り込みを受け取る。この際、分岐データ採取部22は、前回データ読込み後に記録された分岐データをメモリ202等の所定の記憶領域に保存し、性能データ採取部21からの要求に応じて渡す。分岐データ採取部22は、BTS使用のための初期設定を行ない、これにより分岐トレース機能部26が再度BTSに分岐データを記録する。
集計部23は、性能データ採取部21によって採取されたサンプリングデータを集計し、解析対象のプログラム中の各関数の実行割合を計算する。
図5(a),(b)は実施形態の一例としての情報処理装置1の集計部23による集計方法を説明するための図であり、(a)はサンプリングデータを例示する図、(b)は集計結果を例示する図である。
集計部23は、図5(a)に示すように、サンプリングデータとして、サンプリング時に動作していたプロセスID,命令アドレス,時刻情報等を採取する。
例えば、OSがLinux(登録商標)である場合には、以下のように各種情報を取得することができる。
(i)“/proc/kallsyms”ファイルに関数名とアドレスの一覧が格納されているので、当該ファイルを参照することにより、関数名の獲得を行なうことができる。
(ii)“/proc/PID/exe”ファイルに実行したプログラム名が出力されるので、当該ファイルを参照することにより、プロセスIDからプログラム名を獲得することができる。
(iii)プロセスIDから得たプログラムの実行ファイルに対して“nmコマンド”を実行することにより、実行ファイルに定義されている関数とそのアドレス範囲がわかる。これにより、命令アドレスから関数名を獲得することができる。
図5(a)においては、CPUID“1”で示されるCPU201における2つのサンプリングデータ(1),(2)が示されている。
集計部23は、プロセスIDと命令アドレスとから、サンプリングされた関数名を獲得する。図5(a)に示す例においては、プロセスIDと命令アドレスとから、サンプリングデータ(2)はプログラム名“test”の関数名“test1”であると特定されている。
また、性能データ採取部21においては、必ずしも指定サンプリング間隔でサンプリングされるとは限らず、何らかの理由で遅延が発生する場合がある。そこで、集計部23は、サンプリング毎の実測サンプリング間隔(前回からの経過時間;実サンプリング間隔)を指定サンプリング間隔で割った値をサンプル数として、関数毎にサンプル数を集計する。また、全サンプル数も集計する。
図5(a)に示す例においては、指定サンプリング間隔が100μsであるが、2つのサンプリング(1),(2)の時刻の差分から、実サンプリング間隔が120μsとなっている。このような場合に、集計部23は、後に採取されたサンプリングデータ(2)のサンプル数を、120/100=1.2として集計を行なう。
すなわち、集計部23は、実際のサンプリング間隔に応じて、対応する関数のサンプル数を補正する。
集計部23は、集計した各関数のサンプル数を全サンプル数で除算することで、図5(b)に示すように、関数の実行割合を算出する。
分岐データ解析部24は、分岐データ採取部22によって採取された分岐データに基づき、集計部23で計算された各関数の実行割合を利用して、各関数が実行された時間である実行時間を解析する。
図6は実施形態の一例としての情報処理装置1の分岐データ解析部24による分岐データの使用方法を説明するための図である。
分岐データ解析部24は、性能データ採取部21により連続して採取された(図6に示す例では、時刻t1,t2)2つのサンプリングデータの間(サンプリング間隔)を、分岐データに基づいて実行が確認された関数(図6に示す例ではf1〜f3)の実行時間で補完する。すなわち、分岐データ解析部24は、サンプリング間隔を、分岐データに基づいて実行が確認された1つ以上の関数に配分して割り当てる。
分岐データ解析部24が、前後する2つのサンプリングデータの間(サンプリング間隔)を、分岐データに基づいて実行が確認された関数で補完することを、関数に時間を割り当てるという場合がある。
以下に、分岐データ解析部24による、集計部23で計算された各関数の実行割合を利用して、各関数に実行時間を配分する手法を説明する。
分岐データ解析部24は、性能データ採取部21によるサンプリングデータ採取と同時に、分岐トレース機能部26が採取した分岐データ群を採取する。
前述の如く、分岐データにおける分岐元(ソース)及び分岐先(ターゲット)の命令アドレスから、解析対象プログラムにおける当該分岐データに対応する関数が判明する。
そして、分岐データ解析部24は、分岐データに出現する各関数の実行時間を、集計部23の計算結果から求める。
具体的には、分岐データ解析部24は、サンプリング間隔において、当該間隔に実行された関数の実行時間を、集計部23によって算出された各関数の実行割合に合わせて案分(比例配分)する。
この関数の実行時間の計算方法としては、後述する如く複数種類あり、予め、使用する計算方法を選択することが望ましい。この計算方法の選択は、ユーザが任意に行なってもよく、また、システムが事前に行なわれた設定に従って自動で選択してもよい。
分岐データ解析部24は、例えば、分岐データを参照し、また、前述したnmコマンドを実行すること等により、実行された関数を把握する。
なお、実行時間が短時間であったため、実際は実行されたがサンプリングデータには出現しない関数もあり得る。分岐データを参照することで、このように性能データ採取部21によるサンプリングでは検知されない関数も把握することができる。なお、このような関数については、出現間隔(実行時間)を0として扱われる。
分岐データ解析部24は、サンプリングデータの採取時刻を基点とし、算出した個々の関数の実行時間をサンプリング間隔として分岐データによって特定される関数が検知されたとみなして解析を行なう。
すなわち、分岐データ解析部24が算出した各関数の実行時間をサンプリング間隔とし、各関数の検知をサンプリングデータとして扱うことで、時系列解析やプロファイル解析を行なうことが可能となる。プロファイル解析を行なう場合には、集計部23で、関数の検知もサンプリングデータとしてみなして、各関数の実行割合を再計算する。
また、分岐データ解析部24は、性能データ採取部21によって連続して行なったサンプリングの間隔(サンプリング間隔)に、サンプリングと同時に分岐データ採取部22が採取した複数の分岐データの各関数を対応付けることで、このサンプリング間隔に関数(分岐データ)を割り当てる。
次に、分岐データ解析部24による、サンプリング間隔への関数の対応付け方法について説明する。
図7は実施形態の一例としての情報処理装置1におけるサンプリング間隔への関数の実行割合の対応付けパターンを例示する図である。
図7に示す例においては、時刻t1において行なったサンプリングによりサンプリングデータS1が採取され、時刻t2において行なったサンプリングによりサンプリングデータS2が採取されたものとする。また、t2−t1で求められるサンプリング間隔Tが100μsであるとする。
分岐データ解析部24は、例えば、時刻t2において分岐データ採取部22が採取した複数の分岐データが示す各関数が連続して、サンプリング間隔Tにおいて実行されるものとみなして解析を行なう。以下、複数の関数が連続して実行される状態を関数の連続体という。例えば、後述する図8(a)には、関数F1〜F3によって構成される関数の連続体が示されている(符号c4,c5参照)。
分岐データ解析部24は、分岐データ採取部22が1度に採取した複数の分岐データによって特定される各関数の連続体が、サンプリング間隔Tにおいて実行されるものとみなす。
分岐データ解析部24は、サンプリング間隔に複数の関数の連続体を対応付けるに際して、サンプリング間隔への関数の連続体の対応付け方としては、例えば以下の(P1)〜(P3)に示す3通りのパターンが考えられ、いずれを用いてもよい。なお、図7中における白抜き矢印(a1)〜(a3)は、それぞれ関数の連続体を示す。
(P1)サンプリング間隔全体に対応付ける
図7中の白抜き矢印(a1)に示すように、サンプリング間隔Tにわたって関数の連続体が実行されていたとみなす。
(P2)サンプリング間隔から現サンプリングデータの関数の実行割合に相当する時間を引いた時間帯に対応付ける
例えば、図7に示す例においては、サンプリングデータS2の採取時(現時刻)に実行されていた関数の実行割合が25%であるとする。この場合に、白抜き矢印(a2)に示すように、サンプリング間隔Tから、この関数の実行割合に相当する時間(100μs×0.25)を減算した時間帯で、関数の連続体が実行されていたとみなす。
(P3)サンプリング間隔から1つ前のサンプリングデータの関数の実行割合に相当する時間を引いた時間帯に対応付ける
例えば、図7に示す例においては、サンプリングデータS1の採取時(1つ前のサンプリングデータ取得時)に実行されていた関数の実行割合が10%であるとする。この場合に、白抜き矢印(a3)に示すように、サンプリング間隔Tから、この関数の実行割合に相当する時間(100μs×0.1)を減算した時間帯で、関数の連続体が実行されていたとみなす。
次に、上述の如くサンプリング間隔に対応付けた、関数の連続体における各関数の実行時間の配分方法について説明する。
分岐データ解析部24は、上述したサンプリング間隔において、関数の連続体に対応付けた時間帯、すなわち、関数の連続体の実行に要した時間を、更に、当該連続体を構成する複数の関数に配分する。
ここで、関数の連続体の実行に要した時間を、更に、当該連続体を構成する複数の関数に配分する配分方法には、例えば以下の(b1)〜(b3)に示す3つのパターンが考えられる。なお、以下、サンプリング間隔が、関数の連続体に対応付けた時間帯、すなわち、関数の連続体の実行に要した時間と一致する場合(図7に示すパターンP1参照)を例に説明する。
(b1)均等割
関数の連続体に対応付けられた時間(=サンプリング間隔)を、連続体を構成する複数の関数で均等に分割して割り当てる。
すなわち、以下の式(1)に示すように、個々の関数への割り当て時間を、「サンプリング間隔T」を「分岐データ数(連続体を構成する関数の数)」で除算することにより求める。これにより、分岐データあたりの出現間隔は一定となる。
サンプリング間隔T/分岐データ数 ・・・(1)
例えば、サンプリング間隔Tが100μsであり、1度に採取された分岐データ(関数)の数が10(10データ)の場合には、サンプリング間隔Tにおける個々の関数の割り当て時間は、100μs/10=10μsとして求められる。
(b2)関数の実行割合に応じて決定
すなわち、以下の式(2)を用いて サンプリング間隔Tにおいて、連続体を構成する複数の関数のそれぞれに対して、各関数の実行割合を反映させた割り当て時間を算出する
サンプリング間隔T×関数の実行割合/関数の出現回数 ・・・(2)
すなわち、個々の関数の割り当て時間は、関数の出現間隔/回として求められる。
例えば、サンプリング間隔Tが100μsであり、対象の関数の実行割合が10%,1度に採取された分岐データにおいて当該関数の出現数が2回であった場合には、個々の関数の割り当て時間は、100μs×0.1/2=5μsとして求められる。
(b3)関数の実行割合の和を求め、その中の割合に応じて配分
すなわち、以下の式(3)を用いて サンプリング間隔Tを、連続体を構成する複数の関数のそれぞれに対して、各関数の実行割合を反映させた割り当て時間で配分する
サンプリング間隔×(関数の実行割合/関数の実行割合の和) ・・・(3)
例えば、サンプリング間隔Tが100μsであり、対象の関数の実行割合が10%,関数の実行割合の和が50%であった場合には、個々の関数の割り当て時間は、100μs×(0.1/0.5)=20μsとして求められる。
なお、上述した(b2)及び(b3)のパターンにおいては、関数の実行割合は、測定全体を集計単位とする場合と、サンプリング時のプロセスを集計単位とする場合との2通りが考えられる。
また、上述した(b1)及び(b3)のパターンにおいては、分岐データが対応付けられた時間帯を全て各データに配分するので、全分岐データを採取可能なBTS使用時に適用することが望ましい。また、分岐データのみならずサンプリングデータを含めて処理してもよい。
さらに、上述した(b2)のパターンにおいては、残時間が発生した場合にサンプリングデータに時間を割り当てることが望ましい。
図8(a),(b)は実施形態の一例としての情報処理装置1におけるサンプリング間隔への複数の関数の配分方法による相違を説明するための図であり、(a)はサンプリング間隔へ関数を配分する複数例を示す図、(b)はその分岐データを例示する図である。
図8(a)には、時刻t3と時刻t4との間(サンプリング間隔)に、3つの関数F1,F2,F3が順番に読み出されて実行された例を示している。
なお、これらの関数F1,F2,F3の各実行割合は10%,30%,10%とする。
時刻t3において採取されたサンプリングデータにおいて関数F3が得られ(符号c1参照)、また、このサンプリングと同時に、図8(b)に示すような分岐データが分岐データ採取部22によって採取される。
すなわち、図8(b)に示すように、関数F1から関数F2がコールされた後、この関数F2から関数F3がコールされることで、図8(a)の符号c1に示すように、3つの関数F1,F2,F3が順番に実行される。
なお、サンプリング間隔全体に分岐データを対応付けるものとする。すなわち、サンプリング間隔全体に、関数F1〜F3の連続体が割り当てられる。また、分岐を生じさせる関数としてcallとreturnを想定し、分岐データとして分岐元の関数を用いる。また、サンプリングにより得られたサンプリングデータも用いる。
ここで、時刻t3において採取されたサンプリングデータだけでは、このサンプリングされた1つの関数F3しか見えないが(図8(a)の符号c2参照)、分岐データを参照することで、図8(a)の符号c2に示すように、サンプリング間隔における関数の実行順序がわかる。
この場合においても、サンプリング間隔に対して、複数の関数の実行時間を各実行割合に応じて配分する(割り当てる)ことで(図8(a)の符号c5参照)、単純に複数の関数に均等に実行時間を割り当てる(図8(a)の符号c4参照)場合に比べて、実際に実行された関数の動作に近くなり(図8(a)の符号c1参照)、妥当である。
次に、分岐データ採取部22によるLBRとBTSとの使い分けについて説明する。
前述の如く、分岐トレース機能部26は、例えば、LBRやBTS等の分岐トレース支援機能を実行することで、プログラムの実行に伴う分岐情報を採取する。
ここで、低負荷で効率的な採取が可能なLBRと、LBRよりも多くのデータ採取と採取時刻の把握がしやすく高負荷なBTSとを使い分けることが望ましい。
以下に、LBRとBTSとを併用する場合について説明する。
分岐データ採取部22は、まず、LBRから分岐データを読み出す。新規にLBRに記録されたデータ数が、LBRへの最大登録個数である16個未満の場合は、そのままデータ採取は終了する。
一方、LBRに新規に16個のデータが記録されていた場合には、LBRにおいてサイクリックが行なわれ16個より多くのデータが記録(上書き)された可能性がある。そこで、BTSの分岐データを参照し、LBRで上書きされたデータの有無を調べる。上書きされたデータがあれば、その分を分岐データとして保存する。
このようにLBRとBTSとを併用することにより、効率的に、漏れのない分岐データ採取を実現できる。
また、LBRとBTSとの他の併用方法を適用してもよい。
すなわち、先ず、LBRの非採取対象を指定して、不要な分岐を排除して分岐データを採取し、時系列挙動解析などを行なう。
LBRで採取したデータを利用した性能解析では、挙動がわからない、あるいは性能問題が解決しない場合に、BTSで分岐データを採取し、より詳細に性能解析を行なってもよい。
上述の如く構成された実施形態の一例としての情報処理装置1におけるプログラム性能解析方法を、図9に示すフローチャート(ステップA1〜A7)に従って説明する。
本処理は、測定フェーズ(ステップA1〜A5)と、解析フェーズ(ステップA6〜A7)とを有する。
まず、ステップA1において、PMC25からサンプリング間隔毎に行なわれるオーバーフロー割り込みを、性能データ採取部21が受信(キャッチ)する。
ステップA2において、性能データ採取部21は、サンプリングデータとして実行中のプログラム(解析対象プログラム)の実行状況を示す実行情報(性能情報)を採取する。また、性能データ採取部21は、分岐データ採取部22に対して分岐データの採取指示を通知する。
ステップA3において、分岐データ採取部22は、分岐トレース機能部26によって分岐データ記録領域に記録された分岐データを採取する。
ステップA4において、ステップA2において採取した性能情報と、ステップA3において採取した分岐データとを対応付けて、1組のデータとして記憶装置209等に保存する。
ステップA5において、測定時間が終了したか否かを確認し、終了していない場合には(ステップA5のNoルート参照)、ステップA1に戻る。
測定時間が終了した場合には(ステップA5のYesルート参照)、解析フェーズに移行する。すなわち、先ず、ステップA6において、集計部23が、性能データ採取部21によって採取されたサンプリングデータから、関数毎の実行割合を算出する。
ステップA7において、分岐データ解析部24が、各関数の実行割合に基づき、各サンプリング間隔において複数の関数の実行時間を配分する。ここで、サンプリング間隔において、連続体を構成する各関数が、当該関数の実行時間をサンプリング間隔として検知(サンプリング)されたとみなして各関数の採取時刻の解析を行ない、処理を終了する。
次に、実施形態の一例としての情報処理装置1の分岐データ解析部24による分岐データの採取時刻の解析方法を、図10に示すフローチャート(ステップB1〜B6)に従って説明する。
ステップB1において、分岐データ解析部24は、集計部23から各関数の実行割合を受け取る。
ステップB2において、分岐データ解析部24は、性能データ採取部21によって採取したサンプリングデータと、分岐データ採取部22によって採取した分岐データとを1組読み込む。
ステップB3において、分岐データ採取部22は、分岐データに含まれる各アドレスから関数名を獲得する。
ステップB4において、分岐データ採取部22は、集計部23によって算出された各関数の実行割合に基づき、各関数に実行時間を割り当てる。すなわち、分岐データ採取部22は、サンプリング間隔において複数の関数の実行時間を配分する。
ステップB5において、分岐データ採取部22は、割り当てた実行時間に基づき、関数(分岐データ)を出現順に並べえ、解析したサンプリング間隔において行なわれた関数の検知をサンプリングデータとして記憶装置209等に保存する。
ステップB6において、全ての分岐データについての処理が終了したか否かを確認し、終了していない場合には(ステップB6のNoルート参照)、ステップB2に戻る。また、全ての分岐データについての処理が終了した場合には(ステップB6のYesルート参照)、処理を終了する。
このように、実施形態の一例としての情報処理装置1によれば、測定フェーズにおいて、性能データ採取部21が性能データ(サンプリングデータ)を採取するとともに、分岐データ採取部22が分岐トレース支援機能から分岐データを採取する。そして、解析フェーズにおいて、集計部23が、性能データ採取部21によって採取されたサンプリングデータを集計し、解析対象のプログラム中の各関数の実行割合を計算する。また、分岐データ解析部24が、分岐データに基づいて特定した関数に対して、算出された実行割合を適用することで、サンプリング間隔において複数の関数の実行時間を配分する。
これにより、性能データ採取部21による性能データのサンプリングの間に実行された各関数についても実行された時刻等の時間情報を取得することができる。すなわち、本来は時刻情報を持たない分岐データを、サンプリングデータとして処理することが可能になる。
従って、解析した関数の実行時間を用いて、分岐データをサンプリングデータとして扱い、時系列解析やプロファイル解析を行なうことが可能となり、精度の高い実行時間の算出が可能となる。
また、性能データ採取部21によるサンプリング間隔を狭くすることなく、データ数を増やすことができ、低負荷で高精度な時系列解析およびプロファイルを実現することができる。
例えば、分岐データ採取部22が分岐トレース機能部26からLBRを用いた分岐データを採取する場合には、16個の分岐データを採取して用いることができる。これにより、従来の性能プロファイラによる時系列解析に比べて、採取負荷はそのままで、解像度を最大17倍に向上させることができる。
LBRやBTS等の分岐トレース支援機能においては、一度のサンプリングで採取される分岐情報に含まれる各分岐ペアの採取時刻が不明であるが、本情報処理装置1によれば、各分岐ペアによって特定される関数の実行時間を知ることができ利便性が高い。
また、短時間で処理され、性能データ採取部21によるサンプリングでは検出されないようなプロセスについても、分岐データを参照することでその実行を把握し、対応する関数の実行時間を知ることができる。これによっても精度の高い実行時間の算出を可能とし、また、性能解析に必要な情報を収集することができる。
分岐データを用いることで、関数毎に処理に要した時間を把握することができるので、例えば、どのプロセスにおいて待ち(遅延)が発生したか等を容易に知ることができ利便性が高い。
PMC25からのオーバーフロー割り込みを契機として、性能データ採取部21による性能データのサンプリングと、分岐データ採取部22による分岐データの採取とを実現することができる。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、上述した実施形態においては、情報処理装置1が性能データ採取部21,分岐データ採取部22,集計部23及び分岐データ解析部24としての機能を備えているが、これに限定されるものではない。
例えば、性能データ採取部21及び分岐データ採取部22と、集計部23及び分岐データ解析部24とを異なる装置に備えてもよい。例えば、解析対象のプログラムを実行する情報処理装置の処理性能を低下させることが望ましくない場合には、集計部23及び分岐データ解析部24としての機能(解析ツール)を他の演算装置にそなえてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
解析対象プログラムにおける複数の分岐情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計する集計部と、
分岐トレース支援機能によって採取された複数の分岐情報に対し、前記集計部が集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する解析部と
を有することを特徴とする、情報処理装置。
(付記2)
実行中の前記解析対象プログラムの実行状況を示す実行情報を採取する第1の採取部と、
前記第1の採取部による採取と同時に、前記解析対象プログラムにおける複数の分岐情報を採取する第2の採取部とを有し、
前記解析部が、前記第1の採取部が、前記実行情報の採取時刻を前記複数の分岐情報の採取を開始した採取開始時刻として前記各関数の採取時刻の解析を行なう
ことを特徴とする、付記1記載の情報処理装置。
(付記3)
前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔を、複数の関数の実行時間で均等に配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記2記載の情報処理装置。
(付記4)
前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔に基づき、関数の各実行割合に応じた前記関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記2又は3に記載の情報処理装置。
(付記5)
前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔を、複数の関数実行時間の各実行割合に応じて配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記2〜4のいずれか1項に記載の情報処理装置。
(付記6)
採取された前記複数の分岐情報の記憶先の容量オーバ発生時に、前記第2の採取部が前記解析対象プログラムにおける複数の分岐情報を採取することを特徴とする、付記2〜5のいずれか1項に記載の情報処理装置。
(付記7)
有限数のレジスタに分岐情報を格納する第1分岐トレース支援機能と、主記憶装置の所定領域に分岐情報を格納する第2分岐トレース支援機能とを備え、
前記集計部が、前記前記第1分岐データトレース支援機能の分岐情報を、前記第2分岐トレース支援機能の分岐情報より優先して用いることを特徴とする、付記1〜6のいずれか1項に記載の情報処理装置。
(付記8)
解析対象プログラムにおける複数の分岐情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計する処理と、
分岐トレース支援機能によって採取された複数の分岐情報に対し、前記集計部が集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する処理と
を有することを特徴とする、処理方法。
(付記9)
実行中の前記解析対象プログラムの実行状況を示す実行情報を採取する処理と、
前記採取と同時に、前記解析対象プログラムにおける複数の分岐情報を採取する処理とを有し、
前記実行情報の採取時刻を前記複数の分岐情報の採取を開始した採取開始時刻として前記各関数の採取時刻の解析を行なう
ことを特徴とする、付記8記載の処理方法。
(付記10)
連続して行なわれる2回の実行情報の採取間隔を、複数の関数の実行時間で均等に配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記9記載の処理方法。
(付記11)
連続して行なわれる2回の実行情報の採取間隔に基づき、関数の各実行割合に応じた前記関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記9又は10に記載の処理方法。
(付記12)
連続して行なわれる2回の実行情報の採取間隔を、複数の関数実行時間の各実行割合に応じて配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、付記9〜11のいずれか1項に記載の処理方法。
(付記13)
採取された前記複数の分岐情報の記憶先の容量オーバ発生時に、前記解析対象プログラムにおける複数の分岐情報を採取することを特徴とする、付記9〜12のいずれか1項に記載の処理方法。
(付記14)
有限数のレジスタに分岐情報を格納する第1分岐トレース支援機能と、主記憶装置の所定領域に分岐情報を格納する第2分岐トレース支援機能とを備え、
前記前記第1分岐データトレース支援機能の分岐情報を、前記第2分岐トレース支援機能の分岐情報より優先して用いることを特徴とする、付記8〜13のいずれか1項に記載の処理方法。
(付記15)
解析対象プログラムにおける複数の分岐情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計し、
分岐トレース支援機能によって採取された複数の分岐情報に対し、前記集計部が集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する
処理をコンピュータに実行させることを特徴とする、処理プログラム。
(付記16)
実行中の前記解析対象プログラムの実行状況を示す実行情報を採取し、
前記採取と同時に、前記解析対象プログラムにおける複数の分岐情報を採取し、
前記実行情報の採取時刻を前記複数の分岐情報の採取を開始した採取開始時刻として前記各関数の採取時刻の解析を行なう
処理をコンピュータに実行させることを特徴とする、付記15記載の処理プログラム。
(付記17)
連続して行なわれる2回の実行情報の採取間隔を、複数の関数の実行時間で均等に配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なう
処理を前記コンピュータに実行させることを特徴とする、付記16記載の処理プログラム。
(付記18)
連続して行なわれる2回の実行情報の採取間隔に基づき、関数の各実行割合に応じた前記関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なう
処理を前記コンピュータに実行させることを特徴とする、付記16又は17に記載の処理プログラム。
(付記19)
連続して行なわれる2回の実行情報の採取間隔を、複数の関数実行時間の各実行割合に応じて配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なう
処理を前記コンピュータに実行させることを特徴とする、付記16〜18のいずれか1項に記載の処理プログラム。
(付記20)
採取された前記複数の分岐情報の記憶先の容量オーバ発生時に、前記解析対象プログラムにおける複数の分岐情報を採取する
処理を前記コンピュータに実行させることを特徴とする、付記16〜19のいずれか1項に記載の処理プログラム。
1 情報処理装置
21 性能データ採取部
22 分岐データ採取部
23 集計部
24 分岐データ解析部
25 PMC
26 分岐トレース機能部
201 CPU
202 メモリ
205 ディスプレイ
206 キーボード
207 マウス
209 記憶装置

Claims (7)

  1. 実行中の解析対象プログラムの実行状況を示す実行情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計する集計部と、
    分岐トレース支援機能によって採取された複数の分岐情報に対し、前記集計部が集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する解析部と
    を有することを特徴とする、情報処理装置。
  2. 前記実行情報を採取する第1の採取部と、
    前記第1の採取部による採取と同時に、前記解析対象プログラムにおける複数の分岐情報を採取する第2の採取部とを有し、
    前記解析部が、前記第1の採取部が、前記実行情報の採取時刻を前記複数の分岐情報の採取を開始した採取開始時刻として前記各関数の採取時刻の解析を行なう
    ことを特徴とする、請求項1記載の情報処理装置。
  3. 前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔を、複数の関数の実行時間で均等に配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、請求項2記載の情報処理装置。
  4. 前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔に基づき、関数の各実行割合に応じた前記関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、請求項2又は3に記載の情報処理装置。
  5. 前記解析部が、前記第1の採取部により連続して行なわれる2回の実行情報の採取間隔を、複数の関数実行時間の各実行割合に応じて配分することにより、前記各関数の出現間隔を算出し、前記各関数の採取時刻の解析を行なうことを特徴とする、請求項2〜4のいずれか1項に記載の情報処理装置。
  6. 実行中の解析対象プログラムの実行状況を示す実行情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計する処理と、
    分岐トレース支援機能によって採取された複数の分岐情報に対し、集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する処理と
    を有することを特徴とする、処理方法。
  7. 実行中の解析対象プログラムの実行状況を示す実行情報に基づき、前記解析対象プログラムに含まれる複数の関数の実行割合情報を集計し、
    分岐トレース支援機能によって採取された複数の分岐情報に対し、集計した各関数の実行割合情報を用いて各関数の出現間隔を算出するとともに、前記複数の分岐情報の採取を開始した採取開始時刻と算出した各関数の出現間隔とに基づき、各関数の採取時刻を解析する
    処理をコンピュータに実行させることを特徴とする、処理プログラム。
JP2014090250A 2014-04-24 2014-04-24 情報処理装置,処理方法及び処理プログラム Expired - Fee Related JP6384109B2 (ja)

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)

* Cited by examiner, † Cited by third party
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 富士通株式会社 システム分析プログラム、システム分析装置、およびシステム分析方法

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