JP6075204B2 - 性能情報収集プログラム、情報処理装置及び性能情報収集方法 - Google Patents
性能情報収集プログラム、情報処理装置及び性能情報収集方法 Download PDFInfo
- Publication number
- JP6075204B2 JP6075204B2 JP2013105502A JP2013105502A JP6075204B2 JP 6075204 B2 JP6075204 B2 JP 6075204B2 JP 2013105502 A JP2013105502 A JP 2013105502A JP 2013105502 A JP2013105502 A JP 2013105502A JP 6075204 B2 JP6075204 B2 JP 6075204B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- user
- identification information
- unit
- operating system
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
図1は、情報処理装置10のハードウェア構成例を示すブロック図である。情報処理装置10は、例えば汎用コンピュータ、ワークステーション、PC(パーソナルコンピュータ)等である。情報処理装置10は、演算処理装置としてのCPU(演算処理装置、収集部、集計部、算出部、抽出部、トレース収集部、特定部、変換部)11及びROM(Read Only Memory)12を含む。また、情報処理装置10は、RAM(Random Access Memory)(記憶部)13、ハードディスク(記憶部)14、ディスクドライブ15、表示部16、操作部17及び通信部18を含む。
ユーザプログラム1UPは、ユーザが作成したプログラムである。ユーザプログラム1UPは、OS100の制御の下、実行されるアプリケーションプログラムである。
プログラム1Pは、ユーザプログラム1UPの性能を解析する機能を有しており、OS100の中に組み込まれていてもよいし、OS100と独立していてもよい。図1の例では、プログラム1Pは、OS100と独立して、ハードディスク14に記憶されている。
PIDはOS100が実行しているプロセスの識別子であり、PIDレジスタ111はPIDを一時的に記憶するレジスタである。タイマ112は、タイムスタンプカウンタであり、クロックサイクルに基づいて、時刻を計時する計時部である。
図3は、情報処理装置10の機能例を示す機能ブロック図である。情報処理装置10の各機能部は、ハードディスク14に記憶されたOS100、ユーザプログラム1UP及びプログラム1Pと、CPU11、RAM13等のハードウェア資源とが協働して動作することにより実現される。
解析部1anは、プログラム1Pに含まれる機能部であり、プロファイラ1prがサンプリングした情報を利用して、ユーザプログラム1UPから呼び出された関数のうち、CPU11をアイドル状態にする可能性の高い関数を抽出する。
出力部80は、プログラム1Pに含まれる機能部であり、解析部1anが抽出したユーザプログラム1UPの関数に関する情報を出力する機能部である。
PIDは、OS100及びユーザプログラム1UPから呼び出されたサンプリング対象である関数に対応するプロセスの識別情報である。アドレスは、サンプリング対象の関数が記憶されているRAM13上のアドレスである。時刻は、サンプリング時刻である。プロセス名は、PIDに対応するプロセスの名称である。関数名は、OS100及びユーザプログラム1UPから呼び出されたサンプリング対象の関数の名称である。
解析部1anは、収集部11an及び関数名取得部(変換部)12anを含む。収集部11anは、プロファイラ1prの記録部14prがRAM13に記録したサンプリングテーブル1Tの内容をハードディスク14に書き込む機能部である。
CPU使用率が低い状態でプロファイラ1prによりサンプリングが実行された場合、アイドル要因関数に関する情報がサンプリングされた後、1サンプリング周期の後に、アイドル関数に関する情報がサンプリングされる可能性が高いと考えられる。
順位については、後述する。関数名は、サンプリングテーブル1Tの関数名と同じである。総サンプリング回数は、プロファイラ1prによりユーザ関数についてサンプリングが実行された総回数である。A回数は、プロファイラ1prによりユーザ関数に関する情報がサンプリングされた1サンプリング周期後にアイドル関数に関する情報がサンプリングされた回数を、ユーザ関数毎に集計した回数である。B回数は、プロファイラ1prによりユーザ関数に関する情報がサンプリングされた1サンプリング周期後にアイドル関数以外の関数に関する情報がサンプリングされた回数を、ユーザ関数毎に集計した回数である。B回数に係るアイドル関数以外の関数は、ユーザ関数及びアイドル関数以外のOS関数である。
A回数とB回数との合計は、総サンプリング回数に等しい。
算出部13anは、集計テーブル2Tから全ユーザ関数のうち、順位が例えば上位10%に入るユーザ関数を抽出する。算出部13anは、抽出したユーザ関数に対応する集計テーブル2T及びサンプリングテーブル1Tのデータを出力部80に与える。
図8は、アイドル要因関数である確率が高いユーザ関数を抽出する処理の手順の一例を示すフローチャートである。図8は、処理の概要を示している。
CPU11は、ユーザプログラム1UPを実行する(ステップS1)。CPU11は、サンプリングする内容設定及びカウンタレジスタ114のオーバーフローに係るカウント設定を行う(ステップS2)。CPU11は、OS関数及びユーザ関数に関する動作情報のサンプリング処理を実行する(ステップS3)。
CPU11は、タイマ112の計時に基づいて一定時間が経過したか否か、あるいはRAM13の使用率が一定値以上に達したか否かを判定する(ステップS31)。CPU11は、一定時間が経過したと判定した場合、あるいはRAM13の使用率が一定値以上に達したと判定した場合(ステップS31:YES)、処理を終了する。
CPU11は、一定時間間隔でサンプリングしたOS関数及びユーザ関数に関するPID、アドレス及び時刻を収集する収集処理を実行する(ステップS41)。CPU11は、収集したPID及びアドレスを夫々プロセス名及び関数名に変換するプロセス関数名変換処理を実行する(ステップS42)。CPU11は、ユーザ関数毎にアイドル要因関数である確率を算出する算出処理を実行し(ステップS43)、処理を終了する。
CPU11は、図10のステップS33においてRAM13に記録したOS関数及びユーザ関数のPID、アドレス及び時刻をハードディスク14に記憶されているサンプリングテーブル1Tに書き込み(ステップS411)、処理を終了する。
CPU11は、サンプリングテーブル1Tから未処理であるOS関数並びにユーザ関数のPID及びアドレスを夫々読み出す(ステップS421)。CPU11は、OS100及びユーザプログラム1UPのバイナリデータを参照し、読み出したPID及びアドレスを夫々プロセス名及び関数名に変換する(ステップS422)。
CPU11は、サンプリングテーブル1Tにおいて、未処理のユーザ関数のレコードを1つ選択する(ステップS431)。ステップS431において、CPU11は、時刻が古いレコードから新しいレコードへ向かって、1つずつユーザ関数のレコードを選択する。CPU11は、選択したユーザ関数の関数名が集計テーブル2Tに書かれているか否かを判定する(ステップS432)。
サンプリング型のプロファイラ1prは、トレーサのように時間資源及び物理的ハードウェア資源を大量に使用しないため、オーバーヘッドが小さい。プロファイラ1prが一定時間間隔でサンプリングしたOS関数及びユーザ関数の動作情報を解析することにより、情報処理装置10はアイドル要因関数である可能性が高いユーザ関数を抽出することができる。
実施の形態2は、アイドル要因関数である可能性の高いユーザ関数のみをトレースして、アイドル要因関数を特定する形態に関する。
なお、実施の形態2において、実施の形態1と同様である構成要素には同一の参照番号を付してその詳細な説明を省略する。
なお、実施の形態2では、ハードディスク14にユーザプログラム1UPのバイナリデータと、コンパイル前のユーザプログラム1UPのソースコードとが記憶されている。また、図17では、プロファイラ1prにおける設定制御部12pr及び割り込みハンドラ部13prと、解析部1anにおける収集部11an、関数名取得部12an及び算出部13anとを省略している。
“_attribute_((no_instrument_function))”
図18の1行目に注目した場合、func_Iがアイドル要因関数であることがわかる。図18の2行目に注目した場合も、func_Iがアイドル要因関数であることがわかる。CPU11をアイドル状態にするユーザプログラム1UPの箇所を詳細に調査する場合、図18からfunc_Iを調査対象に決定し、func_F、func_G、func_H及びfunc_Jを調査対象から除けばよいことがわかる。
図19は、アイドル要因関数を決定する処理の手順の一例を示すフローチャートである。図19は、処理の概要を示している。
CPU11は、トレースコード処理を実行する(ステップS101)。トレースコード処理は、ユーザプログラム1UPのソースコードにトレースコードを挿入し、再コンパイルする処理である。CPU11は、トレースコードが挿入されたユーザプログラム1UPを実行する(ステップS102)。
CPU11は、アイドル要因関数である可能性が高いとして抽出されたユーザ関数に関するサンプリングテーブル1Tのデータを受け付ける(ステップS1011)当該データには関数名が含まれている。CPU11は、受け付けたユーザ関数の関数名に基づいて、ユーザプログラム1UPのソースコードにトレースコードを挿入する(ステップS1012)。CPU11は、トレースコードを挿入したユーザプログラム1UPを再コンパイルし(ステップS1013)、処理を終了する。
CPU11は、トレースコードの実行結果をRAM13から読み出す(ステップS1031)。トレースコードの実行結果には、トレースしたユーザ関数のRAM13上におけるアドレス及び実行時刻が含まれている。CPU11は、ユーザプログラム1UPのバイナリデータを参照し、アドレスを関数名に変換する(ステップS1032)。CPU11は、変換したユーザ関数の関数名と実行時刻とを対応付けてRAM13に記憶し(ステップS1033)、処理を終了する。ここで、アイドル要因関数である可能性が高いユーザ関数が複数であった場合、複数の関数名及び実行時刻がRAMに記憶される。
CPU11は、トレースコードが挿入されたユーザプログラム1UPの実行により生成されたサンプリングテーブル1Tから、アイドル関数を1つ選択する(ステップS1041)。CPU11は、トレースコードが挿入されたユーザプログラム1UPの実行により生成されたサンプリングテーブル1Tから、選択したアイドル関数のサンプリング時刻を読み出す(ステップS1042)。
情報処理装置10は、アイドル要因関数である可能性が高いユーザ関数の実行順序を明らかにすることで、アイドル要因関数を特定することができる。情報処理装置10は、アイドル要因関数である可能性が高いユーザ関数に絞って、トレースを実行するため、オーバーヘッドを抑えることができる。トレースのためにユーザプログラム1UPのソースコードにトレースコードを挿入した場合、挿入が原因となってターゲットプログラムであるユーザプログラム1UPの挙動が変化する虞がある。しかし、情報処理装置10は、一部のユーザ関数のみにトレースコードを挿入するので、ユーザプログラム1UPの挙動変化を抑えることができる。
実施の形態3は、ユーザ関数の実行を動的にトレースする形態に関する。
なお、実施の形態3において、実施の形態1、2と同様である構成要素には同一の参照番号を付してその詳細な説明を省略する。
なお、実施の形態3では、ハードディスク14にユーザプログラム1UPのバイナリデータが記憶されているが、コンパイル前のユーザプログラム1UPのソースコードは記憶されていない。また、図23では、プロファイラ1prにおける設定制御部12pr及び割り込みハンドラ部13prと、解析部1anにおける収集部11an、関数名取得部12an及び算出部13anとを省略している。
図24は、アイドル要因関数を決定する処理の手順の一例を示すフローチャートである。図24は、処理の概要を示している。
CPU11は、ユーザプログラム1UPを実行する(ステップS201)。CPU11は、コード変換処理を実行する(ステップS202)。コード変換処理は、ユーザプログラム1UPにおいて、抽出結果取得部20により取得されたユーザ関数の先頭アドレスにフックコードを埋め込む処理である。CPU11は、変換済みのユーザプログラム1UPを実行する(ステップS203)。CPU11は、子プロセスに係るユーザ関数のアドレス及び実行時刻を取得する(ステップS204)。CPU11は、ユーザプログラム1UPのバイナリデータを参照し、ユーザ関数のアドレスを関数名に変換する(ステップS205)。CPU11は、アイドル要因関数決定処理を実行し(ステップS206)、処理を終了する。
CPU11は、アイドル要因関数である可能性が高いとして抽出されたユーザ関数に関するサンプリングテーブル1Tのデータを受け付ける(ステップS2021)。当該データにはユーザ関数のアドレスが含まれている。CPU11は、受け付けたユーザ関数のアドレスに基づいて、ユーザプログラム1UPのバイナリコードから当該ユーザ関数の先頭アドレスを取得する(ステップS2022)。CPU11は、取得したユーザ関数の先頭アドレスにフックコードを埋め込み(ステップS2023)、処理を終了する。
情報処理装置10は、ユーザプログラム1UPに対してフックコードを動的に埋め込んで変換する。この処理は、実施の形態2における静的なソース埋め込み型に比べてオーバーヘッドが大きい。しかし、動的変換の場合、ユーザプログラム1UPのソースコードは不要である。従って、実施の形態3に係る情報処理装置10は、ソースコードが入手不可能なユーザプログラム1UPの問題箇所を特定する場合、より大きな効果を奏する。
演算処理装置がオペレーティングシステムを介して実行するユーザプログラムの性能情報を、記憶部を有する情報処理装置に取得させる性能情報収集プログラムにおいて、
前記情報処理装置に、
前記記憶部に記憶された前記オペレーティングシステムを介した前記ユーザプログラムを前記演算処理装置に実行させる場合、前記オペレーティングシステムから呼び出されたオペレーティングシステム関数の識別情報と前記ユーザプログラムから呼び出されたユーザ関数の識別情報とを、周期的に収集させるとともに前記記憶部に記憶させ、
前記記憶部に記憶されたユーザ関数の識別情報に基づいて、各ユーザ関数が収集された回数である個別ユーザ関数収集回数を、各ユーザ関数の種別毎に集計させ、
前記記憶部に記憶されたオペレーティングシステム関数の識別情報とユーザ関数の識別情報とに基づいて、前記演算処理装置をアイドル状態にするオペレーティングシステム関数の識別情報が収集された一周期前に、前記ユーザ関数の識別情報が収集された個別特定ユーザ関数収集回数を、各ユーザ関数の種別毎に集計させ、
集計された各個別ユーザ関数収集回数に対する各個別特定ユーザ関数収集回数の割合を、前記ユーザ関数の種別毎に算出させる
ことを特徴とする性能情報収集プログラム。
算出した割合が高いユーザ関数を上位から一又は複数抽出させる
付記1に記載の性能情報収集プログラム。
前記情報処理装置は時計部を有し、
収集した前記オペレーティングシステム関数及びユーザ関数夫々の識別情報並びに前記時計部が該識別情報の収集時を計時した収集時刻を対応付けて前記記憶部に記憶させる
付記2に記載の性能情報収集プログラム。
前記識別情報を周期的に収集させる処理と共に、前記オペレーティングシステム及びユーザプログラムの実行時に、抽出した前記割合が高いユーザ関数の識別情報をトレースして収集させ、
周期的に収集させた前記識別情報及び収集時刻並びにトレースして収集した前記識別情報及び前記時計部が計時した前記割合が高いユーザ関数の実行時刻を前記記憶部に記憶させ、
前記記憶部の記憶内容に基づいて、前記割合が高いユーザ関数の実行時刻から、前記演算処理装置をアイドル状態にするオペレーティングシステム関数の収集時刻までの時間が最短であるユーザ関数を特定させる
付記3に記載の性能情報収集プログラム。
前記識別情報を周期的に収集させる処理は、前記一又は複数のオペレーティングシステム関数及びユーザ関数が前記記憶部に夫々記憶されているアドレスを収集させ、
前記トレースによる収集処理は、抽出した前記割合が高いユーザ関数が前記記憶部に記憶されているアドレスを収集させ、
前記記憶部に記憶されたオペレーティングシステム及びユーザプログラムに基づいて、収集した各アドレスを前記識別情報に変換させる
付記4に記載の性能情報収集プログラム。
前記識別情報を周期的に収集させる処理は、前記一又は複数のユーザ関数に夫々対応するプロセスの識別子を収集させ、
前記記憶部に記憶されたユーザプログラムに基づいて、収集したプロセスの識別子をプロセス名に変換させる
付記5に記載の性能情報収集プログラム。
前記記憶部に前記ユーザプログラムのソースコードが記憶されており、
前記ユーザプログラムのソースコードにて、抽出した前記割合が高いユーザ関数の箇所にフックコード又はトレースコードを埋め込ませ、
フックコード又はトレースコードを埋め込んだ前記ユーザプログラムのソースコードをコンパイルさせ、
前記トレースによる収集処理は、コンパイルした前記ユーザプログラムの実行時に、前記割合が高いユーザ関数の識別情報を収集させる
付記4から付記6までのいずれか一つに記載の性能情報収集プログラム。
前記記憶部に記憶されたユーザプログラムにて、抽出した前記割合が高いユーザ関数の先頭アドレスにフックコードを埋め込ませ、
前記トレースによる収集処理は、埋め込んだフックコードが実行された場合、前記割合が高いユーザ関数の識別情報を収集させる
付記4から付記7までのいずれか一つに記載の性能情報収集プログラム。
演算処理装置がオペレーティングシステムを介して実行するユーザプログラムの性能情報を取得する情報処理装置において、
前記オペレーティングシステムと前記ユーザプログラムとを記憶する記憶部と、
前記オペレーティングシステムを介した前記ユーザプログラムを前記演算処理装置に実行させる場合、前記オペレーティングシステムから呼び出されたオペレーティングシステム関数の識別情報と前記ユーザプログラムから呼び出されたユーザ関数の識別情報とを、周期的に収集するとともに前記記憶部に記憶する収集部と、
前記記憶部に記憶されたユーザ関数の識別情報に基づいて、各ユーザ関数が収集された回数である個別ユーザ関数収集回数を、各ユーザ関数の種別毎に集計するとともに、前記記憶部に記憶されたオペレーティングシステム関数の識別情報とユーザ関数の識別情報とに基づいて、前記演算処理装置をアイドル状態にするオペレーティングシステム関数の識別情報が収集された一周期前に、前記ユーザ関数の識別情報が収集された個別特定ユーザ関数収集回数を、各ユーザ関数の種別毎に集計する集計部と、
集計された各個別ユーザ関数収集回数に対する各個別特定ユーザ関数収集回数の割合を、前記ユーザ関数の種別毎に算出する算出部と
を有する
ことを特徴とする情報処理装置。
前記算出部が算出した割合が高いユーザ関数を上位から一又は複数抽出する抽出部を備える
付記9に記載の情報処理装置。
時計部を備え、
前記収集部は収集した前記識別情報及び前記時計部が該識別情報の収集時に計時した収集時刻を対応付けて前記記憶部に記憶する
付記10に記載の情報処理装置。
前記収集部による前記識別情報の周期的な収集と共に、前記オペレーティングシステム及びユーザプログラムの実行時に、前記抽出部が抽出した前記割合が高いユーザ関数の識別情報をトレースして収集するトレース収集部を備え、
前記収集部は収集した前記識別情報及び収集時刻並びに前記トレース収集部が収集した前記識別情報及び前記時計部が計時した前記割合が高いユーザ関数の実行時刻を記憶し、
前記記憶部の記憶内容に基づいて、前記割合が高いユーザ関数の実行時刻から、前記演算処理装置をアイドル状態にするオペレーティングシステム関数の収集時刻までの時間が最短であるユーザ関数を特定する特定部を備える
付記11に記載の情報処理装置。
前記収集部は前記一又は複数のオペレーティングシステム関数及びユーザ関数が前記記憶部に夫々記憶されているアドレスを収集し、
前記トレース収集部は前記割合が高いユーザ関数が前記記憶部に記憶されているアドレスを収集し、
前記記憶部が記憶するオペレーティングシステム及びユーザプログラムに基づいて、前記収集部及びトレース収集部が夫々収集した各アドレスを前記識別情報に変換する変換部を備える
付記12に記載の情報処理装置。
前記収集部は前記一又は複数のユーザ関数に夫々対応するプロセスの識別子を収集し、
前記変換部は、前記記憶部に記憶されたユーザプログラムに基づいて、前記収集部が収集したプロセスの識別子をプロセス名に変換する
付記13に記載の情報処理装置。
演算処理装置がオペレーティングシステムを介して実行するユーザプログラムの性能情報を、記憶部を有する情報処理装置に取得させる性能情報収集方法において、
前記情報処理装置が、
前記記憶部に記憶された前記オペレーティングシステムを介した前記ユーザプログラムを前記演算処理装置に実行させる場合、前記オペレーティングシステムから呼び出されたオペレーティングシステム関数の識別情報と前記ユーザプログラムから呼び出されたユーザ関数の識別情報とを、周期的に収集するとともに前記記憶部に記憶し、
前記記憶部に記憶されたユーザ関数の識別情報に基づいて、各ユーザ関数が収集された回数である個別ユーザ関数収集回数を、各ユーザ関数の種別毎に集計し、
前記記憶部に記憶されたオペレーティングシステム関数の識別情報とユーザ関数の識別情報とに基づいて、前記演算処理装置をアイドル状態にするオペレーティングシステム関数の識別情報が収集された一周期前に、前記ユーザ関数の識別情報が収集された個別特定ユーザ関数収集回数を、各ユーザ関数の種別毎に集計し、
集計された各個別ユーザ関数収集回数に対する各個別特定ユーザ関数収集回数の割合を、前記ユーザ関数の種別毎に算出する
ことを特徴とする性能情報収集方法。
算出した割合が高いユーザ関数を上位から一又は複数抽出する
付記15に記載の性能情報収集方法。
11 CPU(演算処理装置、収集部、集計部、算出部、抽出部、トレース収集部、特定部、変換部)
112 タイマ(時計部)
13 RAM(記憶部)
14 ハードディスク(記憶部)
1pr プロファイラ(収集部)
11an 収集部
12an 関数名取得部(変換部)
13an 算出部(集計部、算出部、抽出部)
14an トレース結果取得部(トレース収集部)
15an アイドル要因関数決定部(特定部)
1P プログラム(性能情報収集プログラム)
100 OS(オペレーションシステム)
1UP ユーザプログラム
Claims (8)
- 演算処理装置がオペレーティングシステムを介して実行するユーザプログラムの性能情報を、記憶部を有する情報処理装置に取得させる性能情報収集プログラムにおいて、
前記情報処理装置に、
前記記憶部に記憶された前記オペレーティングシステムを介した前記ユーザプログラムを前記演算処理装置に実行させる場合、前記オペレーティングシステムから呼び出されたオペレーティングシステム関数の識別情報と前記ユーザプログラムから呼び出されたユーザ関数の識別情報とを、周期的に収集させるとともに前記記憶部に記憶させ、
前記記憶部に記憶されたユーザ関数の識別情報に基づいて、各ユーザ関数が収集された回数である個別ユーザ関数収集回数を、各ユーザ関数の種別毎に集計させ、
前記記憶部に記憶されたオペレーティングシステム関数の識別情報とユーザ関数の識別情報とに基づいて、前記演算処理装置をアイドル状態にするオペレーティングシステム関数の識別情報が収集された一周期前に、前記ユーザ関数の識別情報が収集された個別特定ユーザ関数収集回数を、各ユーザ関数の種別毎に集計させ、
集計された各個別ユーザ関数収集回数に対する各個別特定ユーザ関数収集回数の割合を、前記ユーザ関数の種別毎に算出させる
ことを特徴とする性能情報収集プログラム。 - 算出した割合が高いユーザ関数を上位から一又は複数抽出させる
請求項1に記載の性能情報収集プログラム。 - 前記情報処理装置は時計部を有し、
収集した前記オペレーティングシステム関数及びユーザ関数夫々の識別情報並びに前記時計部が該識別情報の収集時を計時した収集時刻を対応付けて前記記憶部に記憶させる
請求項2に記載の性能情報収集プログラム。 - 前記識別情報を周期的に収集させる処理と共に、前記オペレーティングシステム及びユーザプログラムの実行時に、抽出した前記割合が高いユーザ関数の識別情報をトレースして収集させ、
周期的に収集させた前記識別情報及び収集時刻並びにトレースして収集した前記識別情報及び前記時計部が計時した前記割合が高いユーザ関数の実行時刻を前記記憶部に記憶させ、
前記記憶部の記憶内容に基づいて、前記割合が高いユーザ関数の実行時刻から、前記演算処理装置をアイドル状態にするオペレーティングシステム関数の収集時刻までの時間が最短であるユーザ関数を特定させる
請求項3に記載の性能情報収集プログラム。 - 前記識別情報を周期的に収集させる処理は、前記一又は複数のオペレーティングシステム関数及びユーザ関数が前記記憶部に夫々記憶されているアドレスを収集させ、
前記トレースによる収集処理は、抽出した前記割合が高いユーザ関数が前記記憶部に記憶されているアドレスを収集させ、
前記記憶部に記憶されたオペレーティングシステム及びユーザプログラムに基づいて、収集した各アドレスを前記識別情報に変換させる
請求項4に記載の性能情報収集プログラム。 - 前記識別情報を周期的に収集させる処理は、前記一又は複数のユーザ関数に夫々対応するプロセスの識別子を収集させ、
前記記憶部に記憶されたユーザプログラムに基づいて、収集したプロセスの識別子をプロセス名に変換させる
請求項5に記載の性能情報収集プログラム。 - 演算処理装置がオペレーティングシステムを介して実行するユーザプログラムの性能情報を取得する情報処理装置において、
前記オペレーティングシステムと前記ユーザプログラムとを記憶する記憶部と、
前記オペレーティングシステムを介した前記ユーザプログラムを前記演算処理装置に実行させる場合、前記オペレーティングシステムから呼び出されたオペレーティングシステム関数の識別情報と前記ユーザプログラムから呼び出されたユーザ関数の識別情報とを、周期的に収集するとともに前記記憶部に記憶する収集部と、
前記記憶部に記憶されたユーザ関数の識別情報に基づいて、各ユーザ関数が収集された回数である個別ユーザ関数収集回数を、各ユーザ関数の種別毎に集計するとともに、前記記憶部に記憶されたオペレーティングシステム関数の識別情報とユーザ関数の識別情報とに基づいて、前記演算処理装置をアイドル状態にするオペレーティングシステム関数の識別情報が収集された一周期前に、前記ユーザ関数の識別情報が収集された個別特定ユーザ関数収集回数を、各ユーザ関数の種別毎に集計する集計部と、
集計された各個別ユーザ関数収集回数に対する各個別特定ユーザ関数収集回数の割合を、前記ユーザ関数の種別毎に算出する算出部と
を有する
ことを特徴とする情報処理装置。 - 演算処理装置がオペレーティングシステムを介して実行するユーザプログラムの性能情報を、記憶部を有する情報処理装置に取得させる性能情報収集方法において、
前記情報処理装置が、
前記記憶部に記憶された前記オペレーティングシステムを介した前記ユーザプログラムを前記演算処理装置に実行させる場合、前記オペレーティングシステムから呼び出されたオペレーティングシステム関数の識別情報と前記ユーザプログラムから呼び出されたユーザ関数の識別情報とを、周期的に収集するとともに前記記憶部に記憶し、
前記記憶部に記憶されたユーザ関数の識別情報に基づいて、各ユーザ関数が収集された回数である個別ユーザ関数収集回数を、各ユーザ関数の種別毎に集計し、
前記記憶部に記憶されたオペレーティングシステム関数の識別情報とユーザ関数の識別情報とに基づいて、前記演算処理装置をアイドル状態にするオペレーティングシステム関数の識別情報が収集された一周期前に、前記ユーザ関数の識別情報が収集された個別特定ユーザ関数収集回数を、各ユーザ関数の種別毎に集計し、
集計された各個別ユーザ関数収集回数に対する各個別特定ユーザ関数収集回数の割合を、前記ユーザ関数の種別毎に算出する
ことを特徴とする性能情報収集方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013105502A JP6075204B2 (ja) | 2013-05-17 | 2013-05-17 | 性能情報収集プログラム、情報処理装置及び性能情報収集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013105502A JP6075204B2 (ja) | 2013-05-17 | 2013-05-17 | 性能情報収集プログラム、情報処理装置及び性能情報収集方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014228889A JP2014228889A (ja) | 2014-12-08 |
JP6075204B2 true JP6075204B2 (ja) | 2017-02-08 |
Family
ID=52128716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013105502A Active JP6075204B2 (ja) | 2013-05-17 | 2013-05-17 | 性能情報収集プログラム、情報処理装置及び性能情報収集方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6075204B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6131829B2 (ja) * | 2013-10-31 | 2017-05-24 | 富士通株式会社 | 情報処理装置、情報処理装置の解析方法および情報処理装置の解析プログラム |
CN105607986A (zh) * | 2015-01-06 | 2016-05-25 | 北京志翔科技股份有限公司 | 用户行为日志数据采集方法及装置 |
CN113448815B (zh) * | 2020-03-26 | 2022-10-18 | 华为技术有限公司 | 一种采集追踪trace调用链的方法和电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685573B2 (en) * | 2003-07-31 | 2010-03-23 | Sun Microsystems, Inc. | Flexible error trace mechanism |
JP4558376B2 (ja) * | 2004-05-18 | 2010-10-06 | 三菱電機株式会社 | コントローラ |
JP4562641B2 (ja) * | 2005-11-09 | 2010-10-13 | 富士通テン株式会社 | コンピュータシステム、動作状態判定プログラムおよび動作状態判定方法 |
JP4899511B2 (ja) * | 2006-02-08 | 2012-03-21 | 富士通株式会社 | システム分析プログラム、システム分析装置、およびシステム分析方法 |
-
2013
- 2013-05-17 JP JP2013105502A patent/JP6075204B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014228889A (ja) | 2014-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Richards et al. | An analysis of the dynamic behavior of JavaScript programs | |
US9454454B2 (en) | Memory leak analysis by usage trends correlation | |
US9454467B2 (en) | Method and apparatus for mining test coverage data | |
CN113641701B (zh) | 一种数据查询方法、系统、异构加速平台及存储介质 | |
CN103699637A (zh) | 一种代码生产率统计方法及其系统 | |
US10331538B2 (en) | Information processing apparatus and program execution status display method | |
WO2017128952A1 (zh) | 堆栈的保护方法及装置 | |
JP6075204B2 (ja) | 性能情報収集プログラム、情報処理装置及び性能情報収集方法 | |
WO2020258492A1 (zh) | 信息处理方法、装置、存储介质及终端设备 | |
Novillo | Samplepgo-the power of profile guided optimizations without the usability burden | |
US20120297168A1 (en) | Processing instruction grouping information | |
Gaikwad et al. | Performance analysis for languages hosted on the truffle framework | |
Mytkowicz et al. | Inferred call path profiling | |
US8756580B2 (en) | Instance-based field affinity optimization | |
Zhu et al. | An analysis of programming language statement frequency in C, C++, and Java source code | |
CN111401934A (zh) | 分布式广告统计方法以及装置 | |
JP2016224814A (ja) | 性能情報生成プログラム、性能情報生成方法及び情報処理装置 | |
Helm et al. | Perfmemplus: A tool for automatic discovery of memory performance problems | |
Wang et al. | Lightweight hardware transactional memory profiling | |
US7844627B2 (en) | Program analysis method and apparatus | |
CN112416727A (zh) | 批处理作业的检核方法、装置、设备及介质 | |
Hung et al. | New tracing and performance analysis techniques for embedded applications | |
CN112540913B (zh) | 一种代码覆盖率确定的方法、系统、设备及可读存储介质 | |
US11847448B2 (en) | Automatic generation of exporter configuration rules | |
JP5682109B2 (ja) | カバレッジ情報生成プログラム、カバレッジ情報生成装置およびカバレッジ情報生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161207 |
|
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: 20161213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6075204 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |