JP5974856B2 - Sampling program, sampling method and information processing apparatus - Google Patents
Sampling program, sampling method and information processing apparatus Download PDFInfo
- Publication number
- JP5974856B2 JP5974856B2 JP2012258359A JP2012258359A JP5974856B2 JP 5974856 B2 JP5974856 B2 JP 5974856B2 JP 2012258359 A JP2012258359 A JP 2012258359A JP 2012258359 A JP2012258359 A JP 2012258359A JP 5974856 B2 JP5974856 B2 JP 5974856B2
- Authority
- JP
- Japan
- Prior art keywords
- sampling
- function
- information
- identification information
- target program
- 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
Description
本発明は、コンピュータのデータを収集するサンプリングプログラム、サンプリング方法及び情報処理装置に関する。 The present invention relates to a sampling program, a sampling method, and an information processing apparatus that collect computer data.
プログラムの最適化を図るために、コンピュータに搭載されたプログラムを実行し、プログラム実行時に呼び出される動作関数や実行時間といった動作情報を定期的にサンプリングし、データ収集を行うサンプリング方法が知られている。動作情報のサンプリングは、情報取得時のオーバーヘッド(処理負荷)が少ないため、例えば、プログラム実行時において、呼び出し回数が相対的に多い動作関数等を検出することに適している。サンプリングによって収集される動作情報には、例えば、サンプリング時に実行されていたプロセスの識別情報(PID)、命令アドレス等が含まれる。 In order to optimize a program, a sampling method is known in which a program mounted on a computer is executed, operation information such as an operation function and an execution time called at the time of program execution is periodically sampled, and data is collected. . The sampling of operation information is suitable for detecting an operation function or the like having a relatively large number of calls at the time of program execution because the overhead (processing load) at the time of information acquisition is small. The operation information collected by sampling includes, for example, identification information (PID) of a process executed at the time of sampling, an instruction address, and the like.
サンプリングにおいて、収集された動作情報は、例えば、コンピュータのメモリや、コンピュータに接続された記憶装置等に、サンプリングされた順番に蓄積されていた。 In the sampling, the collected operation information is accumulated in the sampling order, for example, in a memory of a computer or a storage device connected to the computer.
なお、本明細書で説明する技術に関連する技術が記載されている先行技術文献としては、以下の特許文献が存在している。 In addition, the following patent documents exist as prior art documents in which technologies related to the technologies described in this specification are described.
例えば、複数のプロセッサ(CPU:Central Processing Unit)を有するマルチプロ
セッサ、複数のコア(Core)を単一のCPUパッケージ内に組み込むマルチコアプロセッサ等の技術により、コンピュータの処理能力の向上を図ることが知られている。
For example, it has been known that the processing power of a computer is improved by technologies such as a multiprocessor having a plurality of processors (CPU: Central Processing Unit) and a multicore processor in which a plurality of cores (Core) are incorporated in a single CPU package. It has been.
このようなコンピュータで実行されるプログラムの最適化では、例えば、プロセッサごと、コアごとに動作情報のサンプリングを行い、採取されたデータの蓄積を行う。このため、従来のサンプリングでは、コア数,プロセッサ数に比例して収集されたデータのデータ量は増加し、データを蓄積するメモリや記憶装置等の容量を超えてしまう虞があった。 In the optimization of a program executed on such a computer, for example, operation information is sampled for each processor and each core, and the collected data is accumulated. For this reason, in the conventional sampling, the amount of data collected in proportion to the number of cores and the number of processors increases, which may exceed the capacity of a memory, a storage device, or the like that accumulates data.
また、コンピュータに実行させるアプリケーションプログラムの実行時間が長大なケースでも、同様の事態が起こり得る。 The same situation can occur even when the execution time of the application program executed by the computer is long.
1つの側面では、本発明は、動作情報のサンプリングにおいて、蓄積されるデータ量を削減する技術を提供することを目的とする。 In one aspect, an object of the present invention is to provide a technique for reducing the amount of accumulated data in sampling of operation information.
上記技術は、次のサンプリングプログラムの構成によって例示される。すなわち、サンプリングプログラムは、コンピュータに、サンプリングの対象となる対象プログラムの実行期間中に所定のサンプリング周期で採取された対象プログラムの動作に係るサンプリング情報について、時系列順に隣接するサンプリング情報間の比較を行い、共通の要素を有するサンプリング情報が時系列順に連続することを検出する検出ステップと、検出ステッ
プで時系列順に連続することが検出されたサンプリング情報の、連続したサンプリング回数を計数する計数ステップと、検出ステップで時系列順に連続することを検出したサンプリング情報と計数ステップで計数された連続したサンプリング回数とを対応付けて記録する記録ステップとを実行させる。
The above technique is exemplified by the configuration of the following sampling program. In other words, the sampling program compares the sampling information related to the operation of the target program collected at a predetermined sampling period during the execution period of the target program to be sampled with a computer, and compares the sampling information adjacent in time series. A detection step for detecting that sampling information having common elements is continuous in time series, and a counting step for counting the number of consecutive samplings of the sampling information detected in the detection step to be continuous in time series; And a recording step of recording the sampling information detected to be continuous in time series in the detection step and the continuous sampling count counted in the counting step in association with each other.
上記のサンプリングプログラムによれば、共通の要素を有するサンプリング情報が時系列順に連続することを検出し、連続したサンプリング情報と連続したサンプリング回数とを対応付けて記録するため、蓄積されるデータ量を削減できる。 According to the above sampling program, it is detected that sampling information having a common element is continuous in time series, and the continuous sampling information and the continuous sampling count are recorded in association with each other. Can be reduced.
上記のサンプリングプログラムによれば、動作情報のサンプリングにおいて、蓄積されるデータ量を削減する技術を提供できる。 According to the above sampling program, it is possible to provide a technique for reducing the amount of accumulated data in sampling operation information.
以下、図面を参照して、一実施形態に係るサンプリング装置について説明する。以下の実施形態の構成は例示であり、サンプリング装置は実施形態の構成には限定されない。 Hereinafter, a sampling apparatus according to an embodiment will be described with reference to the drawings. The configuration of the following embodiment is an exemplification, and the sampling apparatus is not limited to the configuration of the embodiment.
以下、図1から図7の図面に基づいて、サンプリング装置を説明する。 Hereinafter, the sampling apparatus will be described with reference to the drawings of FIGS.
〔装置構成〕
図1は、本実施形態のサンプリング装置の概略構成図である。図1のサンプリング装置100は、例えば、複数のプロセッサ(CPU:Central Processing Unit)を含むマル
チプロセッサコンピュータとして機能する情報処理装置である。図1のサンプリング装置100は、複数のプロセッサにより、複数の処理プロセスを並行して実行するマルチプロセッシングシステム(multi processing system)を実現する。
〔Device configuration〕
FIG. 1 is a schematic configuration diagram of a sampling apparatus according to the present embodiment. The
図1のサンプリング装置100は、対象となるプログラムの実行と共に動作情報のサンプリングを行う。サンプリング装置100は、動作情報のサンプリングにおいて、サンプリング間隔毎に動作中の関数(以下、動作関数と称す)を記録する。サンプリング装置100は、動作情報のサンプリングにおいて、同一の動作関数におけるサンプリングデータであることを示すデータを連続してサンプリングした場合には、データの圧縮を実行する。
The
なお、以下の説明では、本実施形態のサンプリングプログラムが搭載されるコンピュータによる処理の1例として、複数のプロセッサを有するサンプリング装置100で実行される処理例を説明する。ただし、本実施形態のサンプリングプログラムが搭載されるコンピュータが、サンプリング装置100に限定されるわけではない。
In the following description, an example of processing executed by the
本実施形態のサンプリングプログラムが搭載されるコンピュータとして、例えば、複数のコア(Core)が単一のCPUパッケージ内に組み込まれたマルチコアプロセッサによる
コンピュータ、或いは、マルチコアプロセッサを複数に有するコンピュータであってもよい。また、本実施形態のサンプリングプログラムが搭載されるコンピュータとして、HPC(High-performance computing)といった技術分野で使用されるスーパーコンピュータ等であってもよい。本実施形態に適用できるコンピュータは、プログラムの最適化を図るために、プログラム実行時の動作関数等といった動作情報のサンプリングを行い、収集されたサンプリングデータを所定の記憶装置等に蓄積するコンピュータであればよい。
As a computer on which the sampling program of this embodiment is mounted, for example, a computer using a multi-core processor in which a plurality of cores (Core) are incorporated in a single CPU package, or a computer having a plurality of multi-core processors. Good. Further, the computer on which the sampling program of the present embodiment is installed may be a supercomputer used in a technical field such as HPC (High-performance computing). A computer applicable to the present embodiment is a computer that samples operation information such as an operation function at the time of program execution and accumulates the collected sampling data in a predetermined storage device or the like in order to optimize the program. That's fine.
図1のサンプリング装置100は、記憶装置200と接続する。なお、サンプリング装置100は、記憶装置200を含むとしてもよい。サンプリング装置100,記憶装置200は、例えば、ネットワーク上のコンピュータ群であるクラウドの一部であってもよい。ネットワークは、インターネット等の公衆ネットワーク、LAN(Local Area Network)、または、WAN(Wide Area Network)等を含む。
The
記憶装置200は、各種プログラムおよび各種データを格納する記憶媒体を備えた記憶装置である。記憶装置200は、外部記憶装置とも呼ばれる。記憶装置200としては、例えば、ソリッドステートドライブ装置、ハードディスクドライブ装置等がある。また、記憶装置200は、CD(Compact Disc)ドライブ装置、DVD(Digital Versatile Disc)ドライブ装置、BD(Blu-ray Disc)ドライブ装置等の可搬記録媒体を含むことができる。
The
記憶装置200は、サンプリングDB210、動作関数DB220、関数情報DB230を含む。サンプリングDB210,動作関数DB220,関数情報DB230は、それぞれ、別々の記憶装置に含まれるとしてもよい。
The
図1のサンプリング装置100は、サンプリング対象となるプログラム(以下、対象プログラムと称す)の実行期間中に、対象プログラムの動作に係る情報を所定のサンプリング周期で採取する。そして、サンプリング装置100は、採取されたサンプリングデータを収集し、収集したサンプリングデータを記憶装置200に蓄積する。
The
サンプリング装置100で実行されるサンプリングのサンプリング周期は、対象プログラムの実行期間を超える周期でなければ任意である。例えば、1秒,10ミリ秒,100マイクロ秒といった時間単位の間隔が例示できる。コンピュータの性能、対象プログラムの実行期間,サンプル数等に応じて、適切な周期を設定すればよい。
The sampling period of sampling executed by the
図2に、従来のサンプリング方法で収集されたサンプリングデータを例示する。図2のサンプリングデータは、サンプリングごとのレコードを有する。図例のサンプリングデータでは、対象プログラムの動作に係る情報として、「CPU番号」,「PID」,「命令アドレス」が採取・収集されている。「CPU番号」,「PID」,「命令アドレス」等は、サンプリング情報に含まれる要素の例示である。ここで、「CPU番号」はプログラムの実行に係るCPUの番号であり、「PID」はプログラム実行中のプロセスの識別情報であり、「命令アドレス」は命令実行中のアドレス位置の情報である。 FIG. 2 illustrates sampling data collected by a conventional sampling method. The sampling data in FIG. 2 has a record for each sampling. In the sampling data of the example, “CPU number”, “PID”, and “instruction address” are collected and collected as information related to the operation of the target program. “CPU number”, “PID”, “instruction address”, and the like are examples of elements included in the sampling information. Here, the “CPU number” is the number of the CPU related to the execution of the program, the “PID” is the identification information of the process that is executing the program, and the “instruction address” is the information of the address position that is executing the instruction.
このように、従来のサンプリング方法では、「CPU番号」,「PID」,「命令アドレス」を含むサンプリングデータをサンプルごとのレコードとして、対象プログラムの実行期間が終了するまで蓄積していた。 Thus, in the conventional sampling method, sampling data including “CPU number”, “PID”, and “instruction address” is accumulated as a record for each sample until the execution period of the target program ends.
例えば、1回のサンプリングで収集されるデータ量は、次の(1)式により例示することができる。 For example, the amount of data collected by one sampling can be exemplified by the following equation (1).
サンプリングデータ量
=1レコードデータサイズ×サンプル数(実行期間/サンプリングレート)
×CPU数×コア数 … (1)
従って、1回のサンプリングで収集されるデータ量は、(1)式により、レコードデータサイズ,サンプル数,CPU数,コア数に比例して増加することが判る。
Sampling data amount = 1 record data size x number of samples (execution period / sampling rate)
X number of CPUs x number of cores (1)
Therefore, it can be seen that the amount of data collected by one sampling increases in proportion to the record data size, the number of samples, the number of CPUs, and the number of cores according to the equation (1).
本実施形態のサンプリング装置100は、時系列順に採取したサンプリングデータから、例えば、同一の動作関数におけるデータであることを示すサンプリングデータが連続することを検出する。そして、本実施形態のサンプリング装置100は、同一の動作関数におけるデータであることを示すサンプリングデータの連続したサンプリング回数を計数する。本実施形態のサンプリング装置100は、個々のサンプリングデータを逐一記録することに替えて、同一の動作関数におけるデータであることを示すサンプリングデータと、同一の動作関数におけるデータであることを示すサンプリングデータの連続したサンプリング回数とを対応付けて記録する。その結果、本実施形態のサンプリング装置100で蓄積されるデータの蓄積データ量は圧縮されるため、収集されるサンプリングデータ量は低減される。
The
また、本実施形態のサンプリング装置100は、時系列順に採取したサンプリングデータから、対象となるプログラムのサンプリング頻度の相対的に高い動作関数を特定する。特定したサンプリング頻度の相対的に高い動作関数は、例えば、テーブル形式で保持される。本実施形態のサンプリング装置100は、サンプリング頻度の相対的に高い動作関数をテーブル形式で保持することにより、採取したサンプリングデータから動作関数を検出するための処理時間を短縮する。
In addition, the
図3に、サンプリング装置100のハードウェアの概略構成図を例示する。サンプリング装置100は、接続バスB1によって相互に接続された複数のCPU101#1−CPU101#n、主記憶部102、補助記憶部103、通信部104を有する。サンプリング装置100は、CPU101#1−CPU101#nが補助記憶部103に記憶されたプログラムを主記憶部102の作業領域に実行可能に展開し、プログラムの実行を通じて周辺機器の制御を行う。これにより、サンプリング装置100は、所定の目的に合致した機能を実現することができる。主記憶部102および補助記憶部103は、コンピュータであるサンプリング装置100が読み取り可能な記録媒体である。
FIG. 3 illustrates a schematic configuration diagram of hardware of the
CPU101#1−CPU101#nは、サンプリング装置100の中央処理演算装置である。CPU101#1−CPU101#nは、補助記憶部103に格納されたプログラムに従って処理を行う。主記憶部102は、CPU101#1−CPU101#nがプログラムやデータをキャッシュしたり、作業領域を展開したりする記憶媒体である。主記憶部102は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)を含む。
CPU101 # 1-CPU101 # n are central processing units of the
補助記憶部103は、各種のプログラム及び各種のデータを読み書き自在に記録媒体に格納する。補助記憶部103には、オペレーティングシステム(Operating System :OS)、各種プログラム、各種テーブル等が格納される。OSは、通信部104を介して接続される外部装置等とのデータの受け渡しを行う通信インターフェースプログラムを含む。外部装置等には、例えば、ネットワークを介して接続された、他の情報処理装置、記憶装置が含まれる。通信部104は、例えば、ネットワーク等とのインターフェースである。
The
補助記憶部103は、例えば、EPROM(Erasable Programmable ROM)、ソリッド
ステートドライブ装置、ハードディスクドライブ(HDD、Hard Disc Drive)装置等で
ある。また、補助記憶部103としては、例えば、CDドライブ装置、DVDドライブ装置、BDドライブ装置等が提示できる。記録媒体としては、例えば、不揮発性半導体メモ
リ(フラッシュメモリ)を含むシリコンディスク、ハードディスク、CD、DVD、BD、USB(Universal Serial Bus)メモリ等がある。
The
図3に例示するサンプリング装置100は、例えば、ユーザ等からの操作指示等を受け付ける入力部を備えるとしてもよい。このような、入力部として、キーボード、ポインティングデバイス等といった入力デバイスを例示できる。また、サンプリング装置100は、CPU101#1−CPU101#nで処理されるデータや主記憶部102に記憶されるデータを出力する出力部を備えるとしてもよい。このような、入力部として、CRT(Cathode Ray Tube)ディスプレイ、LCD(Liquid Crystal Display)、PDP(Plasma
Display Panel)、EL(Electroluminescence)パネル、有機ELパネル、プリンタと
いった出力デバイスを例示できる。
The
Examples include output devices such as a display panel, an EL (electroluminescence) panel, an organic EL panel, and a printer.
サンプリング装置100は、CPU101#1−CPU101#nが補助記憶部103に記憶されている各種プログラムや各種データを主記憶部102に読み出して実行することにより、対象プログラムの実行と共に、図1に例示する各機能部を実現する。サンプリング装置100は、対象プログラムの実行と共に、図1に例示の第1サンプリング処理部110、動作関数特定部120、頻度算出部130、関数情報表作成部140、第2サンプリング処理部150、連続検出部160、収集データ記憶部170を実現する。
The
なお、各機能部のうち、いずれかが、他の情報処理装置に含まれてもよい。例えば、サンプリング装置100は、第1サンプリング処理部110、第2サンプリング処理部150、連続検出部160、収集データ記憶部170を含み、ネットワークに接続する。そして、該ネットワークに、動作関数特定部120を含む情報処理装置と、頻度算出部130を含む情報処理装置と、関数情報表作成部140を含む情報処理装置とが接続する。このように、サンプリング装置100は、複数の情報処理装置に機能部を分散し、各機能部を実行することで、実現されるとしてもよい。サンプリング装置100は、ネットワーク上のコンピュータ群であるクラウドで実現できるので、各機能部の処理負荷を軽減できる。
Note that any one of the functional units may be included in another information processing apparatus. For example, the
〔機能ブロック構成〕
図4にサンプリング装置100の機能構成を説明するための図を例示する。図4に例示のサンプリング装置100は、第1サンプリング処理部110、動作関数特定部120、頻度算出部130、関数情報表作成部140、第2サンプリング処理部150、連続検出部160、収集データ記憶部170の各機能部を有する。
[Function block configuration]
FIG. 4 illustrates a diagram for explaining the functional configuration of the
また、図4に例示のサンプリング装置100は、以上の機能部が参照し、あるいは、管理するデータの格納先として、記憶装置200に構築された、サンプリングDB210、動作関数DB220、関数情報DB230を有する。
The
第1サンプリング処理部110は、対象プログラムを特定期間で実行し、該特定期間中に所定のサンプリング周期で採取された対象プログラムの動作に係る情報を収集する。第1サンプリング処理部110で収集された情報は、例えば、主記憶部102の所定の領域に格納される。収集された情報は、動作関数特定部120,頻度算出部130に引き渡される。
The first
第1サンプリング処理部110で収集されるサンプリングデータは、例えば、図2に例示するサンプリングデータ形式で収集される。第1サンプリング処理部110で収集されるサンプリングデータは、サンプリングごとのレコードを有する。第1サンプリング処理部110は、対象プログラムの動作に係る情報として、「CPU番号」,「PID」,「命令アドレス」といった情報を採取・収集する。
The sampling data collected by the first
なお、第1サンプリング処理部110で実行されるサンプリングデータの収集期間は、例えば、対象プログラムの実行期間より短い特定期間が設定される。設定された特定期間は、例えば、補助記憶部103に格納される。また、特定期間は、サンプリング装置100の管理者等により、例えば、キーボード等の操作入力を介して設定されるとしてもよく、サンプリング装置100に接続するネットワークを介して設定されるとしてもよい。第1サンプリング処理部110は、対象プログラムの実行期間より短い特定期間でサンプリングデータの収集が実行できればよい。
Note that the sampling period of sampling data executed by the first
動作関数特定部120は、第1サンプリング処理部110から引き渡されたサンプリングデータから、動作関数DB220を参照し、PID,命令アドレスに対応付けられた動作関数情報を特定する。動作関数情報には、PIDに対応するプログラム名,動作関数の関数名,動作関数の開始アドレス及び終了アドレスが含まれる。開始アドレスは、例えば、プログラム中の関数の先頭命令の命令アドレスである。また、終了アドレスは、例えば、プログラム中の関数の末尾の命令の命令アドレスである。動作関数特定部120は、特定した動作関数情報を例えば、主記憶部102の所定の領域に格納する。特定した動作関数情報は、頻度算出部130に引き渡される。
The operation
頻度算出部130は、第1サンプリング処理部110から引き渡されたサンプリングデータと動作関数特定部120から引き渡された動作関数情報に基づいて、特定された動作関数ごとのサンプル数を集計する。頻度算出部130は、特定された動作関数を、集計されたサンプル数の相対的に多い順に並べ、主記憶部102の所定の領域に格納する。相対的にサンプル数の多い順に並べられた各動作関数は、関数情報表作成部140に引き渡される。
Based on the sampling data delivered from the first
関数情報表作成部140は、頻度算出部130から引き渡された動作関数に対し、動作関数を一意に特定する関数識別情報の付与を行う。そして、関数情報表作成部140は、付与した関数識別情報に、動作関数名,PIDに対応するプログラム名,動作関数の開始アドレス及び終了アドレス位置を対応付け、関数情報表の作成を行う。作成された関数情報表は主記憶部102の所定の領域に格納される。また、関数情報表作成部140は、作成された関数情報表を関数情報DB230に格納する。
The function information
なお、関数情報表作成部140は、例えば、所定の閾値を設け、所定の閾値を超えたサンプル数を有する動作関数に対して関数情報表を生成するとしてもよい。また、例えば、関数情報表作成部140は、予め設定された個数(例えば、上位20個等)の動作関数に対し、関数情報表を生成するとしてもよい。また、例えば、関数情報表作成部140は、頻度算出部130で集計された全ての動作関数のうち、一定の割合を占める(例えば、全体の50パーセント等)、上位の動作関数に対し、関数情報表を作成するとしてもよい。
The function information
関数情報表の作成では、対象プログラムが実行される動作環境、対象プログラムの実行時間、サンプリング周期、サンプリングデータを蓄積するメモリ等の記憶容量等に応じて、関数情報表を作成するための適切な基準を選定することができる。 In creating the function information table, an appropriate function information table must be created according to the operating environment in which the target program is executed, the execution time of the target program, the sampling period, the storage capacity of the memory that stores the sampling data, etc. Criteria can be selected.
第2サンプリング処理部150は、対象プログラムの実行期間中に対象プログラムの動作に係る情報を所定のサンプリング周期で採取し、サンプリングデータの収集を行う。収集されたサンプリングデータは、例えば、図2に例示するサンプリングデータ形式で収集される。第2サンプリング処理部150は、収集したサンプリングデータを主記憶部102の所定の領域に一時的に格納する。
The second
また、第2サンプリング処理部150は、サンプリングデータに含まれるプログラム中のアドレスから動作関数を特定し、サンプリングデータが関数情報表作成部140で生成
した関数情報表に定義されたいずれかの関数のアドレスの範囲にあるか否かを判定する。
Further, the second
第2サンプリング処理部150は、サンプリングデータが関数情報表に定義されたいずれかの関数の命令アドレスの範囲にある場合、関数情報表から、そのサンプリングデータに対応する関数識別情報を特定する。特定された関数識別情報は、サンプリングデータとして蓄積するための記録情報として選定される。第2サンプリング処理部150は、特定された関数識別情報を主記憶部102の所定の領域に格納し、連続検出部160,収集データ記憶部170に引き渡す。
When the sampling data is in the instruction address range of any function defined in the function information table, the second
一方、サンプリングデータから特定された動作関数が関数情報表に含まれていない場合、第2サンプリング処理部150は、従来と同様に、サンプリングデータに含まれる命令実行中のアドレス位置情報をサンプリングデータとして蓄積するための記録情報に選定する。サンプリングデータに含まれる命令実行中のアドレス位置情報は、例えば、図2に例示する「命令アドレス」である。
On the other hand, when the operation function identified from the sampling data is not included in the function information table, the second
第2サンプリング処理部150は、サンプリングデータに含まれる命令実行中のアドレス位置情報を主記憶部102の所定の領域に格納し、連続検出部160,収集データ記憶部170に引き渡す。
The second
連続検出部160は、第2サンプリング処理部150で採取されたサンプリングデータについて、同一の動作関数情報または同一のPID及び命令アドレスがサンプリングの時系列順に連続することを検出する。連続検出部160は、採取されたサンプリングデータと直前のサンプリング周期で採取されたサンプリングデータとの比較を行い、同一の動作関数情報または同一のPID及び命令アドレスが時系列順に連続したサンプリングデータを検出する。
The
例えば、連続検出部160は、第n番目に採取されたサンプリングデータの「CPU番号」及び「PID」と第n−1番目に採取されたサンプリングデータの「CPU番号」及び「PID」との比較を行う。比較の結果、連続検出部160は、両者の「CPU番号」及び「PID」が同じ場合に、サンプリングされたデータが時系列順に連続することを検出できる。
For example, the
また、連続検出部160は、サンプリングデータに含まれるプログラム中の命令アドレスが関数情報表のいずれかの関数の範囲にある場合には、関数情報表から特定された関数識別情報について同様の処理を行えばよい。例えば、連続検出部160は、第n番目に採取されたサンプリングデータの関数識別情報と第n−1番目に採取されたサンプリングデータの関数識別情報との比較を行えばよい。比較の結果、連続検出部160は、両者の関数識別情報が同じ場合に、サンプリングされたデータが時系列順に連続することを検出できる。
In addition, when the instruction address in the program included in the sampling data is within the range of any function in the function information table, the
また、連続検出部160は、同一の関数識別情報(または同一のPID及び命令アドレスの組み)が連続したサンプリングを検出すると、例えば、主記憶部102の所定の領域に設定された連続検出カウンタのカウント値を「1」インクリメントする。連続検出部160は、同一の動作関数情報(または同一のPID及び命令アドレスの組み)が連続したサンプリングを検出する度に連続検出カウンタのカウント値をインクリメントし続けることにより、サンプリングデータの連続回数を計数できる。
Further, when the
連続検出部160は、計数した、同一の動作関数情報(または同一のPID及び命令アドレスの組み)が連続したサンプリングデータの連続回数を、主記憶部102の所定の領域に格納し、収集データ記憶部170に引き渡す。
The
収集データ記憶部170は、引き渡されたサンプリングデータを例えば、図5Aに例示するサンプリングデータ形式で、サンプリングDB210に格納する。
The collected
〔データベース構成〕
図5Aに、サンプリングDB210を例示する。図5AのサンプリングDB210には、収集データ記憶部170で作成されたサンプリングデータレコードが格納される。サンプリングDB210は、連続して検出された動作関数ごとのレコードを有する。サンプリングDB210の各レコードは、サンプリングされた経過時間順に格納される。
[Database configuration]
FIG. 5A illustrates the
図5Aに例示するサンプリングデータレコードは、「CPU番号」,「PID」,「関数識別情報/命令アドレス」,「連続回数」といったフィールドを有する。「CPU番号」、「PID」は、図2のサンプリングデータで説明した。「関数識別情報/命令アドレス」フィールドには、第2サンプリング処理部150で特定された動作関数の関数情報表に含まれる「関数識別情報」が格納される。また、PIDと命令アドレスが関数情報表に含まれていない場合、「関数識別情報/命令アドレス」フィールドには、第2サンプリング処理部150で採取した、命令実行中のアドレス位置情報である「命令アドレス」が格納される。「連続回数」フィールドには、連続検出部160で計数したサンプリングデータの連続回数が格納される。
The sampling data record illustrated in FIG. 5A has fields such as “CPU number”, “PID”, “function identification information / instruction address”, and “number of consecutive times”. The “CPU number” and “PID” have been described with reference to the sampling data in FIG. In the “function identification information / instruction address” field, “function identification information” included in the function information table of the operation function specified by the second
なお、「関数識別情報/命令アドレス」フィールドには、「命令アドレス」に替えて、収集データ記憶部170で新たに付与された、例えば、「A」や「0」といった特定の関数識別情報が格納されてもよい。
In addition, in the “function identification information / instruction address” field, specific function identification information such as “A” or “0” newly given by the collected
図5Aの例では、「CPU番号」フィールドには“0”といったプログラムの実行に係るCPUの番号が格納されている。「PID」フィールドには、“8”,“10”といったプログラム実行中のプロセスの識別情報が格納されている。「関数識別情報/命令アドレス」フィールドには、“1”,“2”といった関数情報表作成部140で付与された動作関数の関数識別情報が格納されている。「連続回数」フィールドには、“10”,“8”といった連続検出部160で計数したサンプリングデータの連続回数が格納されている。
In the example of FIG. 5A, the “CPU number” field stores the CPU number related to the execution of the program such as “0”. In the “PID” field, identification information of a process being executed such as “8” and “10” is stored. In the “function identification information / instruction address” field, function identification information of the operation function given by the function information
動作関数DB220には、OS関数,ユーザ関数等と対応付けられた動作関数の動作関数情報が格納されている。動作関数DB220は、動作関数ごとのレコードを有する。動作関数DB220に格納される動作関数情報には、PIDに対応するプログラム名,動作関数の関数名,動作関数の開始アドレス及び終了アドレスが含まれる。
The
このような動作関数情報は、例えば、サンプリング装置100の管理者等により、キーボード等の操作入力を介して設定されるとしてもよく、サンプリング装置100に接続するネットワークを介して設定されるとしてもよい。
Such operation function information may be set, for example, by an administrator of the
一例として、LinuxといったOS環境の場合では、“/proc/kallsyms”といったファイ
ルに各OS関数名とOS関数名に対応付けられた動作関数の開始アドレス及び終了アドレスの一覧が格納されている。サンプリング装置100の管理者等は、上述したシステムファイルにアクセスし、各OS関数に対応する動作関数情報を取得すればよい。
As an example, in the case of an OS environment such as Linux, a list of OS function names and operation function start addresses and end addresses associated with the OS function names is stored in a file such as “/ proc / kallsyms”. An administrator of the
また、例えば、“/proc/PID/exe”,“/proc/PID/stat”といったファイルには、各プ
ロセスで実行するプログラム名が格納されている。サンプリング装置100の管理者等は、上述したファイルにアクセスし、各プロセスに対応するプログラム名を取得すればよい。
For example, files such as “/ proc / PID / exe” and “/ proc / PID / stat” store the names of programs to be executed by each process. An administrator of the
また、例えば、上述したプログラム名の実行ファイルに対し所定のコマンド(例えば、“objdump”コマンド)を実行することにより、実行ファイルに定義付された動作関数と
アドレス範囲(開始アドレス及び終了アドレス)が取得できる。サンプリング装置100の管理者等は、上述したコマンド操作を行うことにより、ユーザ関数で定義付された動作関数情報を取得すればよい。
Further, for example, by executing a predetermined command (for example, “objdump” command) on the execution file having the above program name, the operation function and address range (start address and end address) defined in the execution file are set. You can get it. The administrator of the
サンプリング装置100の管理者等は、上述の処理で取得した動作関数情報を、動作関数に対応付けて動作関数DB220に登録する。
The administrator of the
図5Bに、関数情報DB230を例示する。図5Bの関数情報DB230には、関数情報表作成部140で作成された関数情報表が格納される。関数情報DB230は、対象プログラムごとの関数情報表を有する。
FIG. 5B illustrates the
図5Bに例示する関数情報表は、「プログラム名」,「関数識別情報」,「関数名」,「開始アドレス」,「終了アドレス」といったフィールドを有する。図5Bに例示の関数情報表は、関数識別情報ごとのレコードを有する。 The function information table illustrated in FIG. 5B has fields such as “program name”, “function identification information”, “function name”, “start address”, and “end address”. The function information table illustrated in FIG. 5B has a record for each function identification information.
図5Bの例において、「プログラム名」フィールドには、PIDに対応するプロセスで実行されるプログラム名が格納される。「関数識別情報」フィールドには、関数情報表作成部140で付与された動作関数の関数識別情報が格納される。「関数名」フィールドには、動作関数の関数名が格納される。「開始アドレス」フィールドには、動作関数の開始アドレス位置が格納される。「終了アドレス」フィールドには、動作関数の終了アドレス位置が格納される。
In the example of FIG. 5B, the “program name” field stores a program name to be executed in the process corresponding to the PID. In the “function identification information” field, the function identification information of the operation function assigned by the function information
図5Bの例では、「プログラム名」フィールドには、“program1”,“program2”といったプログラム名が格納されている。「関数識別情報」フィールドには、“1”,“2”といった動作関数の関数識別情報が格納されている。「関数名」フィールドには、“Main”,“test”といった動作関数の関数名が格納されている。「開始アドレス」フィールドには、“100”,“3000”といった動作関数の開始アドレス位置が格納されている。「終了
アドレス」フィールドには、“250”,“3200”といった動作関数の終了アドレス位置が
格納されている。
In the example of FIG. 5B, program names such as “program1” and “program2” are stored in the “program name” field. In the “function identification information” field, function identification information of operation functions such as “1” and “2” is stored. The “function name” field stores function names of operation functions such as “Main” and “test”. The “start address” field stores the start address position of the operation function such as “100” and “3000”. The “end address” field stores the end address position of the operation function such as “250” and “3200”.
例えば、第2サンプリング処理部150では、採取されたサンプリングデータに含まれる「PID」から、動作関数DB220を参照し、「PID」に対応付けられたプログラム名を特定することができる。そして、第2サンプリング処理部150では、特定されたプログラム名と収集されたサンプリングデータに含まれる「命令アドレス」の位置情報から、図5Bに例示する関数情報表を参照し、動作関数に付与された関数識別情報を特定することができる。
For example, the second
〔処理フロー〕
以下、図6から図7を参照し、本実施形態のサンプリングデータの記録制御処理を説明する。
[Process flow]
Hereinafter, the sampling data recording control process of this embodiment will be described with reference to FIGS.
図6は、本実施形態のサンプリング装置100による関数情報表の作成処理に係るフローチャートの例示である。図例のフローチャートは、主に第1サンプリング処理部110,動作関数特定部120,頻度算出部130,関数情報表作成部140で実行される処理である。サンプリング装置100は、例えば、主記憶部102に実行可能に展開されたコンピュータプログラムにより、関数情報表の作成処理を実行する。
FIG. 6 is an example of a flowchart relating to a function information table creation process performed by the
図6に例示するフローチャートにおいて、関数情報表の作成処理の開始は、例えば、補助記憶部103に格納されたコンピュータプログラムの起動を例示できる。サンプリング装置100は、所定のファイルにアクセスし、対象プログラムが実行されるOS環境でのOS関数情報を取得する(S1)。OS関数情報には、OS関数名とOS関数名に対応付けられた動作関数の開始アドレス及び終了アドレスが含まれる。
In the flowchart illustrated in FIG. 6, the start of the function information table creation process can be exemplified by the activation of a computer program stored in the
なお、動作関数DB220で説明したように、サンプリング装置100の管理者等によりOS関数情報が既に取得されている場合には、サンプリング装置100はS1の処理を省略できる。
As described in the
S2では、サンプリング装置100は、対象プログラムを実行し、対象プログラムの実行期間よりも短い特定期間でサンプリングデータを採取する。サンプリング装置100は、採取したサンプリングデータを、例えば、主記憶部102の所定の領域に格納する。なお、S2の処理は、第1サンプリング処理部110で説明した。
In S2, the
S3−S5では、サンプリング装置100は、S2で採取・収集されたサンプリングデータに対して、サンプリングデータのPIDと命令アドレスから動作関数の動作関数情報を取得し、動作関数の関数名を特定する。サンプリング装置100は、S2で採取・収集したサンプリングデータに対し、S3−S5の処理を繰り返す。
In S3 to S5, the
S3−S5の処理において、サンプリング装置100は、S2で採取したサンプリングデータの命令アドレスがOS関数のアドレスに含まれるか否かを判定する(S3)。サンプリング装置100は、動作関数DB220を参照し、採取したサンプリングデータの命令アドレスが各OS関数の開始アドレス及び終了アドレスで特定されるアドレス範囲に含まれるか否かを判定する。サンプリング装置100は、サンプリングデータの命令アドレスがOS関数のアドレスに含まれる場合(S3,Yes)には、該当するアドレス範囲に対応付けられたOS関数情報から動作関数の関数名を特定する(S5)。サンプリング装置100は、特定した動作関数の関数名を、主記憶部102の所定の領域に一時的に格納する。
In the processing of S3 to S5, the
一方、サンプリング装置100は、サンプリングデータの命令アドレスがOS関数のアドレスに含まれない場合(S3,No)にはS4に移行する。
On the other hand, when the instruction address of the sampling data is not included in the address of the OS function (S3, No), the
S4では、サンプリング装置100は、動作関数DB220を参照し、採取したサンプリングデータのPIDに対応付けられたプログラム名を特定する。そして、サンプリング装置100は、特定したプログラム名に対応付けられた動作関数のアドレス範囲と採取したサンプリングデータの命令アドレスとに基づいて、動作関数DB220で対応付けられた動作関数の関数名を特定する。サンプリング装置100は、特定した動作関数の関数名を、主記憶部102の所定の領域に一時的に格納する。
In S4, the
サンプリング装置100は、S2で採取・収集されたサンプリングデータに対してS3−S5の処理による動作関数の関数名の特定を完了すると、S6に移行する。
When the
なお、サンプリング装置100で実行されるS3−S5の処理は、関数の識別情報を取得する取得ステップ、取得手順の一例である。また、サンプリング装置100は、関数の識別情報を取得する取得手段の一例として、S3−S5の処理を実行する。
Note that the processing of S3 to S5 executed by the
S6では、サンプリング装置100は、S3−S5で特定された各動作関数のサンプル数を計数し、動作関数ごとのサンプル集計値を算出する。そして、サンプリング装置100は、動作関数ごとに計数されたサンプル集計値の相互比較を行い、例えば、サンプル集
計値の多い順に各動作関数を整列する。サンプル集計値の多い順に整列された各動作関数は、サンプル集計値と共に主記憶部102の所定の領域に格納される。
In S6, the
さらに、サンプリング装置100で実行されるS1−S6の処理は、関数の識別情報と関数の識別情報のサンプリング回数とを取得するステップ、関数の識別情報と関数の識別情報のサンプリング回数とを取得する手順の一例である。また、サンプリング装置100は、関数の識別情報と関数の識別情報のサンプリング回数とを取得する手段の一例として、S1−S6の処理を実行する。
Further, the processing of S1-S6 executed by the
S7では、サンプリング装置100は、S6で計数されたサンプル集計値に基づいて動作関数を選定し、選定された動作関数に関数識別情報を付与し、関数情報表を作成する。なお、作成された関数情報表は、例えば、図5Bに例示される。サンプリング装置100は、例えば、S6でサンプル集計値の多い順に整列された上位の動作関数を選定することができる。なお、上位の動作関数の選定個数は任意である。上位の動作関数が、所定の基準を満足する動作関数の一例である。
In S7, the
なお、サンプリング装置100で実行されるS7の処理は、関数情報表を作成するステップ、関数情報表を作成する手順の一例である。また、サンプリング装置100は、関数情報表を作成する手段の一例として、S7の処理を実行する。
Note that the processing of S7 executed by the
例えば、サンプリング装置100は、所定の閾値を設け、サンプル集計値が所定の閾値を超える動作関数を上位の動作関数とすることができる。また、例えば、サンプリング装置100は、予め設定された個数(例えば、20個等)に沿って、S6でサンプル集計値の多い順に整列された上位の動作関数を選定するとしてもよい。また、例えば、サンプリング装置100は、S6で集計された動作関数のうち、一定の割合を占める(例えば、サンプル全体の50パーセント等)上位の動作関数を選定するとしてもよい。
For example, the
サンプリング装置100は、S6で計数されたサンプル集計値の多い動作関数を特定できればよい。サンプル集計値の多い動作関数は、対象プログラムの実行期間中にサンプリング頻度の高い動作関数と特定できるからである。
The
サンプリング装置100は、選定された上位の動作関数に対し、動作関数を一意に特定する関数識別情報の付与を行う。そして、サンプリング装置100は、付与した関数識別情報に、動作関数名,PIDに対応するプログラム名,動作関数の開始アドレス及び終了アドレス位置を対応付けて関数情報表を作成する。作成された関数情報表は、関数情報DB230に格納される。
The
以上の処理により、サンプリング装置100は、S2で採取・収集したサンプリングデータから、対象プログラムの実行期間中にサンプリング頻度の高い動作関数を特定することができる。特定した各動作関数は、それぞれに関数識別情報が付与される。付与された関数識別情報と動作関数固有の関数情報とは対応付けられて、関数情報表として関数情報DB230に格納される。サンプリング装置100は、対象プログラムの実行期間中に関数情報DB230に格納された関数情報表を参照することにより、動作関数検出のための処理時間を短縮できる。
With the above processing, the
次に、図7のフローチャートを参照し、本実施形態のサンプリングデータの記録処理を説明する。図7は、本実施形態のサンプリング装置100によるサンプリングデータの記録処理に係るフローチャートの例示である。図例のフローチャートは、主に第2サンプリング処理部150,連続検出部160,収集データ記憶部170で実行される処理である。サンプリング装置100は、例えば、主記憶部102に実行可能に展開されたコンピュ
ータプログラムにより、サンプリングデータの記録処理を実行する。
Next, sampling data recording processing according to the present embodiment will be described with reference to the flowchart of FIG. FIG. 7 is an example of a flowchart relating to sampling data recording processing by the
図7に例示するフローチャートにおいて、サンプリングデータの記録処理の開始(図例では、“サンプリング開始”)は、例えば、補助記憶部103に格納されたコンピュータプログラムの起動を例示できる。サンプリング装置100では、コンピュータプログラムの起動により、対象プログラムの実行と並行して第2サンプリング処理部150,連続検出部160,収集データ記憶部170等の各機能部が実行される。
In the flowchart illustrated in FIG. 7, the start of the sampling data recording process (“sampling start” in the example) can be exemplified by the activation of a computer program stored in the
図例のフローチャートにおいて、S8−S17の処理は、対象プログラムの実行期間中に所定のサンプリング周期でサンプリングデータが採取される度に繰り返し実行される。つまり、本実施形態のサンプリング装置100によるサンプリングデータの記録処理は、対象プログラムの動作実行の終了と共に終了する。
In the illustrated flowchart, the processes of S8 to S17 are repeatedly executed every time sampling data is collected at a predetermined sampling period during the execution period of the target program. That is, the sampling data recording process by the
S8−S17の処理において、サンプリング装置100は、所定のサンプリング周期で対象プログラムの動作に係る情報をサンプリングデータとして採取する(S8)。なお、S8で採取されるサンプリングデータは、例えば、図2に例示するデータ形式で採取される。図2に例示するように、対象プログラムの動作に係る情報には、「CPU番号」,「PID」,「命令アドレス」が含まれる。採取されたサンプリングデータは、主記憶部102の所定の領域に一時的に格納される。
In the process of S8-S17, the
S9では、サンプリング装置100は、S8で採取されたサンプリングデータに含まれるPIDから動作関数DB220を参照し、PIDに対応付けられたプログラム名を特定する。そして、サンプリング装置100は、S8で採取されたサンプリングデータに含まれる命令アドレスと特定したプログラム名から、サンプリングデータが関数情報DB230に格納された関数情報表に定義された動作関数の開始アドレスから終了アドレスの範囲にあるか否かを判定する(S9−S10)。
In S9, the
S10では、サンプリング装置100は、関数情報DB230に格納された、対象プログラムに対応する関数情報表を参照し、サンプリングデータが関数情報表に含まれる動作関数であるかを判定する。
In S10, the
例えば、サンプリング装置100は、S9で特定したプログラム名に基づいて関数情報表を検索し、プログラム名に対応付けられた開始アドレス及び終了アドレスを取得する。そして、サンプリング装置100は、サンプリングデータに含まれるプログラム中のアドレスが、開始アドレス及び終了アドレスで特定できる位置範囲に含まれるか否かを判定すればよい。サンプリング装置100は、プログラム名および命令アドレスが関数情報表に含まれる場合に、サンプリングデータが関数情報表に含まれる動作関数に対応すると判定すればよい。
For example, the
なお、サンプリング装置100は、関数情報DB230に格納された、対象プログラムに対応する関数情報表を、サンプリング開始と共に主記憶部102の所定の領域に格納するとしてもよい。
The
サンプリング装置100は、サンプリングデータから特定される命令アドレスが関数情報表に含まれる動作関数に該当する場合(S10、Yes)には、関数情報表から動作関数に対応する関数識別情報を取得する。そして、サンプリング装置100は、取得した関数識別情報を主記憶部102の所定の領域に格納する(S12)。
When the instruction address specified from the sampling data corresponds to the operation function included in the function information table (S10, Yes), the
一方、サンプリング装置100は、サンプリングデータから特定される命令アドレスが関数情報表に含まれる動作関数に該当しない場合(S10、No)には、S9で特定した
命令アドレスを主記憶部102の所定の領域に格納する(S11)。
On the other hand, when the instruction address specified from the sampling data does not correspond to the operation function included in the function information table (S10, No), the
次にS13では、サンプリング装置100は、処理中のサンプリングデータと直前のサンプリング周期で採取されたサンプリングデータとの比較を行い、処理中のサンプリングデータが連続したものであるかを判定する。
Next, in S13, the
ここで、サンプリングデータが連続したものとは、(1)同一の動作関数のサンプリングデータが連続して検出された場合、(2)同一のPID及び命令アドレスのサンプリングデータが連続して検出された場合を言う。 Here, continuous sampling data means (1) when sampling data of the same operation function is detected continuously, (2) sampling data of the same PID and instruction address are detected continuously Say the case.
例えば、サンプリング装置100は、処理中のサンプリングデータのCPU番号及び動作関数と直前のサンプリング周期で採取されたサンプリングデータのCPU番号及び動作関数とを比較する。サンプリング装置100は、両者のCPU番号及び動作関数の一致を判定することにより、時系列順に連続したサンプリングデータであるかを判定できる。
For example, the
また、例えば、サンプリング装置100は、処理中のサンプリングデータのPID及び命令アドレスと直前のサンプリング周期で採取されたサンプリングデータのPID及び命令アドレスとを比較する。サンプリング装置100は、両者のPID及び命令アドレスの一致を判定することにより、時系列順に連続したサンプリングデータであるかを判定できる。
Further, for example, the
サンプリング装置100は、処理中のサンプリングデータの動作関数が直前のサンプリングデータの動作関数と一致する場合(S13、Yes)には、サンプリング装置100は、例えば、主記憶部102の所定の領域に設定された連続検出カウンタのカウント値を「1」インクリメントする。ここで、サンプリング装置100は、主記憶部102の所定の領域に設定された連続検出カウンタとして、例えば、図5Aの表に示した、各行のレコードを主記憶部102の所定の領域に保持しておけばよい。そして、図5Aに示した各行の「連続回数」のフィールドを連続検出カウンタとして用いればよい。
When the operation function of the sampling data being processed matches the operation function of the immediately preceding sampling data (S13, Yes), the
そして、サンプリング装置100は、計数値を所定の領域に格納する(S16)。なお、サンプリング装置100は、連続して一致するサンプリングデータを検出する度に連続検出カウンタのカウント値を「1」インクリメントし続けることで、サンプリングデータの動作関数(またはPID及び命令アドレス)の連続回数を計数できる。
Then, the
一方、サンプリング装置100は、処理中のサンプリングデータの動作関数が直前のサンプリングデータの動作関数と一致しない場合(S13、No)には、サンプリング装置100は、処理中のサンプリングデータを新たなサンプリングデータとして主記憶部102の所定の領域に格納する(S14)。例えば、サンプリング装置100は、図5Aの表に示した、各行のレコードと同一の形式で主記憶部102の所定の領域を確保し、「連続回数」のフィールドに初期値を1に設定すればよい。
On the other hand, when the operation function of the sampling data being processed does not match the operation function of the immediately preceding sampling data (No at S13), the
なお、S13−S15の処理は、PID及び命令アドレスの一致を判定する場合でも同様である。サンプリング装置100は、処理中のサンプリングデータのPID及び命令アドレスが直前のサンプリングデータのPID及び命令アドレスと一致する場合(S13、Yes)には、サンプリング装置100は、例えば、主記憶部102の所定の領域に設定された連続検出カウンタのカウント値を「1」インクリメントし、計数値を所定の領域に格納する。一方、サンプリング装置100は、処理中のサンプリングデータのPID及び命令アドレスが直前のサンプリングデータのPID及び命令アドレスと一致しない場合には、サンプリング装置100は、処理中のサンプリングデータを新たなサンプリングデータとして主記憶部102の所定の領域に格納すればよい。
Note that the processing in S13 to S15 is the same even when it is determined that the PID and the instruction address match. If the PID and instruction address of the sampling data being processed match the PID and instruction address of the immediately preceding sampling data (S13, Yes), the
ここで、サンプリング装置100で実行されるS13の処理は、検出ステップ、検出手順の一例である。また、サンプリング装置100のCPU101等は、検出手段の一例として、S13の処理を実行する。また、サンプリング装置100で実行されるS15の処理は、計数ステップ、計数手順の一例である。また、サンプリング装置100のCPU101等は、計数手段の一例として、S15の処理を実行する。さらに、サンプリング装置100で実行されるS14、S16の処理は、記録ステップ、記録手順の一例である。また、サンプリング装置100のCPU101等は、記録手段の一例として、S14、S16の処理を実行する。
Here, the process of S13 executed by the
なお、サンプリング装置100は、S10の判定で、動作関数が特定できない場合には、S11において命令アドレスに代えて、サンプリング情報に付属識別情報を付与してもよい。付属識別情報は、サンプリング情報のアドレスから関数を特定することができなかったこと示す情報である。付属識別情報としては、サンプリング装置100は、例えば、「A」や「0」といった命令アドレスを集約する情報を付与し、サンプリングデータレコードを作成するとしてもよい。命令アドレスを集約する付属識別情報は、S12で特定される関数識別情報と識別できればよい。この場合、サンプリング装置100で実行されるS11の処理は、付属識別情報付与ステップ、付属識別情報付与手順の一例である。また、サンプリング装置100のCPU101等は、付属識別情報付与手段の一例として、S11の処理を実行する。
Note that if the operation function cannot be identified in the determination of S10, the
S17では、サンプリング装置100は、対象プログラムの動作実行の終了を判定し、動作実行が終了でなければS8に移行し(S17、No)、S8−S17の処理を繰り返す。一方、サンプリング装置100は、対象プログラムの動作実行が終了の場合(S17、Yes)には、サンプリングデータの記録処理を終了する。
In S17, the
以上、説明したように、本実施形態のサンプリングデータの記録処理では、サンプリングデータの動作関数がサンプリングされた時系列順に連続する場合には、サンプリングデータに替えて連続回数を記憶するため、(1)式で例示する、サンプリング時のサンプリングデータ量を削減できる。また、本実施形態のサンプリングデータの記録処理では、サンプリングデータのPID及び命令アドレスがサンプリングされた時系列順に連続する場合にも、サンプリングデータに替えて連続回数を記憶するため、同様に、サンプル数を削減できる。例えば、対象プログラムに対する1回のサンプリングで収集・蓄積されるデータ量を削減することができる。特に、プログラム実行期間中に何も処理しないアイドル関数や所定のイベント発生を待機するロック関係の関数等を対象プログラムに含む場合には、データ量の削減は効果的である。 As described above, in the sampling data recording process of the present embodiment, when the operation function of the sampling data is consecutive in the time-series order in which the sampling data is sampled, the number of consecutive times is stored instead of the sampling data. The amount of sampling data at the time of sampling exemplified by the equation Also, in the sampling data recording process of the present embodiment, even when the PID and instruction address of the sampling data are consecutive in the time series in which they are sampled, the number of consecutive times is stored instead of the sampling data. Can be reduced. For example, it is possible to reduce the amount of data collected and accumulated by one sampling for the target program. In particular, when the target program includes an idle function that does not process anything during the program execution period or a lock-related function that waits for the occurrence of a predetermined event, the reduction of the data amount is effective.
また、例えば、対象プログラムを実行するコンピュータが、複数のプロセッサを有するマルチプロセッサ、複数のコアを単一のCPUパッケージ内に組み込むマルチコアプロセッサ等のコンピュータであっても、長時間のサンプリングデータの収集が期待できる。 In addition, for example, even if the computer that executes the target program is a computer such as a multiprocessor having a plurality of processors or a multicore processor in which a plurality of cores are incorporated in a single CPU package, long-term sampling data can be collected. I can expect.
また、例えば、HPC(High-performance computing)といった技術分野において、スーパーコンピュータ等で実行される数理計算用プログラムといった実行時間が長大な対象プログラムであっても、長時間のサンプリングデータの収集が期待できる。 In addition, for example, in a technical field such as HPC (High-performance computing), long-time sampling data can be expected to be collected even for a target program such as a mathematical calculation program executed by a supercomputer or the like. .
また、本実施形態のサンプリングデータの記録処理では、サンプリング頻度の相対的に高い動作関数を関数情報表として参照することができるため、動作関数検出のための処理時間を短縮できる。また、本実施形態のサンプリングデータの記録処理では、関数情報表に含まれる動作関数をサンプリングデータの採取・収集の対象とし、関数情報表に含まれない動作関数を採取・収集の対象外とすれば、さらなるデータ量の削減が期待できる。 Further, in the sampling data recording process of the present embodiment, an operation function with a relatively high sampling frequency can be referred to as a function information table, so that the processing time for detecting the operation function can be shortened. In the sampling data recording process of the present embodiment, the operation functions included in the function information table are to be collected and collected, and the operation functions not included in the function information table are excluded from the collection and collection. If this is the case, further reduction of data volume can be expected.
さらに、本実施形態のサンプリングデータの記録処理では、関数情報表に含まれない動作関数を採取する場合に、命令アドレスに替えて命令アドレスであることを特定する関数識別情報を新たに付与し、サンプリングデータレコードを作成できる。このため、(1)式に例示するように、命令アドレスを格納する場合に比べ、1レコードデータサイズを縮小できる。 Furthermore, in the sampling data recording process of the present embodiment, when collecting an operation function that is not included in the function information table, function identification information that identifies the instruction address instead of the instruction address is newly added, Sampling data records can be created. For this reason, as exemplified in the equation (1), one record data size can be reduced as compared with the case where the instruction address is stored.
《変形例》
本実施形態のサンプリングデータの記録処理の変形例として、対象となるプログラムの条件分岐で区分される基本ブロックごとに、計数値を纏めるとしてもよい。例えば、サンプリング装置100は、対象プログラムを分岐命令の分岐先に対応する基本ブロックに分割すればよい。そして、サンプリング装置100は、基本ブロックの識別情報と、基本ブロックの先頭命令のアドレスと基本ブロックの末尾の命令とのアドレスとを含む分類表を作成すればよい。
<Modification>
As a modification of the sampling data recording process of the present embodiment, the count values may be collected for each basic block divided by the conditional branch of the target program. For example, the
そして、サンプリング装置100は、対象となるプログラムの実行期間中に、採取したサンプリングデータのアドレスが基本ブロックの先頭アドレスと末端アドレスとの間にあるか否かを判定し、サンプリングデータに対応する基本ブロックの識別情報を付与すればよい。基本ブロックの識別情報を付与する手順は、上記実施形態において関数の識別情報を付与を付与する手順と同様である。
Then, the
サンプリング装置100は、基本ブロックの識別情報の計数値を記録することにより、関数よりもきめ細かいサンプリングデータの計数値を収集することができる。
The
《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
<Computer-readable recording medium>
A program for causing a computer or other machine or device (hereinafter, a computer or the like) to realize any of the above functions can be recorded on a recording medium that can be read by the computer or the like. Then, the function can be provided by causing the computer or the like to read and execute the program of the recording medium.
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM等がある。 Here, a computer-readable recording medium is a recording medium that stores information such as data and programs by electrical, magnetic, optical, mechanical, or chemical action and can be read from a computer or the like. Say. Examples of such a recording medium that can be removed from a computer or the like include a flexible disk, a magneto-optical disk, a CD-ROM, a CD-R / W, a DVD, a Blu-ray disk, a DAT, an 8 mm tape, a flash memory, and the like. There are cards. Moreover, there are a hard disk, a ROM, and the like as a recording medium fixed to a computer or the like.
《その他》
以上の実施形態は、さらに以下の付記と呼ぶ態様を含む。以下の各付記に含まれる構成要素は、他の付記に含まれる構成と組み合わせることができる。
<Others>
The above embodiment further includes an aspect called the following supplementary note. The components included in the following supplementary notes can be combined with the constituents included in the other supplementary notes.
(付記1)
サンプリングの対象となる対象プログラムの実行期間中に所定のサンプリング周期で採取された、前記対象プログラムの動作に係るサンプリング情報について、時系列順に隣接するサンプリング情報間の比較を行い、共通の要素を有するサンプリング情報が時系列順に連続することを検出する検出ステップと、
前記検出ステップで時系列順に連続することが検出されたサンプリング情報の、連続したサンプリング回数を計数する計数ステップと、
前記検出ステップで時系列順に連続することを検出したサンプリング情報と前記計数ス
テップで計数された連続したサンプリング回数とを対応付けて記録する記録ステップと、
を実行させるためのサンプリングプログラム。
(Appendix 1)
The sampling information related to the operation of the target program collected at a predetermined sampling period during the execution period of the target program to be sampled is compared between adjacent sampling information in chronological order, and has common elements A detection step for detecting that the sampling information is continuous in chronological order;
A counting step of counting the number of consecutive samplings of the sampling information detected to be continuous in chronological order in the detection step;
A recording step in which the sampling information detected to be continuous in chronological order in the detection step and the continuous sampling count counted in the counting step are recorded in association with each other;
Sampling program to execute.
(付記2)
前記対象プログラム中の関数の識別情報と前記関数が前記対象プログラム中に配置されるアドレスの範囲とを含む関数情報表を基に、前記サンプリング情報に含まれる前記対象プログラム中のアドレスから、前記サンプリング情報に対応する関数の識別情報を取得する取得ステップをさらに実行させ、
前記記録ステップでは、前記取得された関数の識別情報と関数の識別情報のサンプリング回数とが記録される付記1に記載のサンプリングプログラム。
(Appendix 2)
Based on a function information table including identification information of a function in the target program and an address range in which the function is arranged in the target program, the sampling is performed from an address in the target program included in the sampling information. And further executing an acquisition step of acquiring identification information of the function corresponding to the information,
The sampling program according to
(付記3)
前記対象プログラムを特定期間で実行し、前記特定期間中に前記対象プログラムの動作に係る情報を所定のサンプリング周期で収集し、収集されたサンプリング情報から、前記対象プログラム中の関数の識別情報と関数の識別情報のサンプリング回数とを取得するステップと、
前記関数の識別情報のサンプリング回数が所定の基準を満足する関数について、前記関数情報表を作成するステップをさらに実行させるための付記2に記載のサンプリングプログラム。
(Appendix 3)
The target program is executed in a specific period, information related to the operation of the target program is collected at a predetermined sampling period during the specific period, and function identification information and function in the target program are collected from the collected sampling information Obtaining a sampling number of identification information of
The sampling program according to
(付記4)
前記取得ステップは、前記サンプリング情報に対応する関数の識別情報を取得できない場合には、前記関数の識別情報に代わるサンプリング情報の付属識別情報を付与する付属識別情報付与ステップを含み、
前記記録ステップは、前記取得ステップで取得された動作関数の識別情報、或いは前記付属識別情報付与ステップで付与された付属識別情報と、前記計数ステップで計数された連続したサンプリング回数とを対応付けて記録する、付記2または3に記載のサンプリングプログラム。
(Appendix 4)
The obtaining step includes an attached identification information giving step of giving attached identification information of sampling information in place of the function identification information when the identification information of the function corresponding to the sampling information cannot be obtained,
The recording step associates the identification information of the operation function acquired in the acquisition step or the auxiliary identification information given in the auxiliary identification information giving step with the continuous sampling count counted in the counting step. The sampling program according to
(付記5)
コンピュータが、
サンプリングの対象となる対象プログラムの実行期間中に所定のサンプリング周期で採取された、前記対象プログラムの動作に係るサンプリング情報について、時系列順に隣接するサンプリング情報間の比較を行い、共通の要素を有するサンプリング情報が時系列順に連続することを検出する検出手順と、
前記検出手順で時系列順に連続することが検出されたサンプリング情報の、連続したサンプリング回数を計数する計数手順と、
前記検出手順で時系列順に連続することを検出したサンプリング情報と前記計数手順で計数された連続したサンプリング回数とを対応付けて記録する記録手順と、
を実行するサンプリング方法。
(Appendix 5)
Computer
The sampling information related to the operation of the target program collected at a predetermined sampling period during the execution period of the target program to be sampled is compared between adjacent sampling information in chronological order, and has common elements A detection procedure for detecting that sampling information is continuous in chronological order;
A counting procedure for counting the number of consecutive samplings of the sampling information detected to be continuous in chronological order in the detection procedure;
A recording procedure for recording the sampling information detected to be continuous in chronological order in the detection procedure and the number of consecutive samplings counted in the counting procedure;
Perform sampling method.
(付記6)
前記対象プログラム中の関数の識別情報と前記関数が前記対象プログラム中に配置されるアドレスの範囲とを含む関数情報表を基に、前記サンプリング情報に含まれる前記対象プログラム中のアドレスから、前記サンプリング情報に対応する関数の識別情報を取得する取得手順をさらに実行し、
前記記録手順では、前記取得された関数の識別情報と関数の識別情報のサンプリング回数とが記録される付記5に記載のサンプリング方法。
(Appendix 6)
Based on a function information table including identification information of a function in the target program and an address range in which the function is arranged in the target program, the sampling is performed from an address in the target program included in the sampling information. Further executing an acquisition procedure for acquiring the identification information of the function corresponding to the information,
6. The sampling method according to appendix 5, wherein in the recording procedure, the acquired function identification information and the number of sampling times of the function identification information are recorded.
(付記7)
前記対象プログラムを特定期間で実行し、前記特定期間中に前記対象プログラムの動作に係る情報を所定のサンプリング周期で収集し、収集されたサンプリング情報から、前記対象プログラム中の関数の識別情報と関数の識別情報のサンプリング回数とを取得する手順と、
前記関数の識別情報のサンプリング回数が所定の基準を満足する関数について、前記関数情報表を作成する手順をさらに実行する付記6に記載のサンプリング方法。
(Appendix 7)
The target program is executed in a specific period, information related to the operation of the target program is collected at a predetermined sampling period during the specific period, and function identification information and function in the target program are collected from the collected sampling information To obtain the sampling number of identification information of
The sampling method according to appendix 6, further executing a procedure of creating the function information table for a function whose sampling number of identification information of the function satisfies a predetermined criterion.
(付記8)
前記取得手順は、前記サンプリング情報に対応する関数の識別情報を取得できない場合には、前記関数の識別情報に代わるサンプリング情報の付属識別情報を付与する付属識別情報付与手順を含み、
前記記録手順は、前記取得手順で取得された動作関数の識別情報、或いは前記付属識別情報付与手順で付与された付属識別情報と、前記計数手順で計数された連続したサンプリング回数とを対応付けて記録する、付記6または7に記載のサンプリング方法。
(Appendix 8)
The acquisition procedure includes an attached identification information providing procedure for adding attached identification information of sampling information instead of the function identification information when the identification information of the function corresponding to the sampling information cannot be acquired,
The recording procedure associates the identification information of the operation function acquired in the acquisition procedure or the attached identification information given in the attached identification information addition procedure with the continuous sampling count counted in the counting procedure. The sampling method according to
(付記9)
サンプリングの対象となる対象プログラムの実行期間中に所定のサンプリング周期で採取された、前記対象プログラムの動作に係るサンプリング情報について、時系列順に隣接するサンプリング情報間の比較を行い、共通の要素を有するサンプリング情報が時系列順に連続することを検出する検出手段と、
前記検出手段で時系列順に連続することが検出されたサンプリング情報の、連続したサンプリング回数を計数する計数手段と、
前記検出手段で時系列順に連続することを検出したサンプリング情報と前記計数手段で計数された連続したサンプリング回数とを対応付けて記録する記録手段と、
を備える情報処理装置。
(Appendix 9)
The sampling information related to the operation of the target program collected at a predetermined sampling period during the execution period of the target program to be sampled is compared between adjacent sampling information in chronological order, and has common elements Detecting means for detecting that the sampling information is continuous in chronological order;
Counting means for counting the number of consecutive samplings of the sampling information detected to be continuous in chronological order by the detection means;
Recording means for recording the sampling information detected to be continuous in time series by the detection means and the number of consecutive samplings counted by the counting means,
An information processing apparatus comprising:
(付記10)
前記対象プログラム中の関数の識別情報と前記関数が前記対象プログラム中に配置されるアドレスの範囲とを含む関数情報表を基に、前記サンプリング情報に含まれる前記対象プログラム中のアドレスから、前記サンプリング情報に対応する関数の識別情報を取得する取得手段をさらに備え、
前記記録手段は、前記取得された関数の識別情報と関数の識別情報のサンプリング回数とを記録する付記9に記載の情報処理装置。
(Appendix 10)
Based on a function information table including identification information of a function in the target program and an address range in which the function is arranged in the target program, the sampling is performed from an address in the target program included in the sampling information. An acquisition means for acquiring identification information of a function corresponding to the information;
The information processing apparatus according to
(付記11)
前記対象プログラムを特定期間で実行し、前記特定期間中に前記対象プログラムの動作に係る情報を所定のサンプリング周期で収集し、収集されたサンプリング情報から、前記対象プログラム中の関数の識別情報と関数の識別情報のサンプリング回数とを取得する手段と、
前記関数の識別情報のサンプリング回数が所定の基準を満足する関数について、前記関数情報表を作成する手段をさらに備える付記10に記載の情報処理装置。
(Appendix 11)
The target program is executed in a specific period, information related to the operation of the target program is collected at a predetermined sampling period during the specific period, and function identification information and function in the target program are collected from the collected sampling information Means for obtaining the number of times the identification information is sampled,
The information processing apparatus according to
(付記12)
前記取得手段は、前記サンプリング情報に対応する関数の識別情報を取得できない場合には、前記関数の識別情報に代わるサンプリング情報の付属識別情報を付与する付属識別情報付与手段を含み、
前記記録手段は、前記取得手段で取得された動作関数の識別情報、或いは前記付属識別情報付与手段で付与された付属識別情報と、前記計数手段で計数された連続したサンプリング回数とを対応付けて記録する、付記10または11に記載の情報処理装置。
(Appendix 12)
The acquisition means includes attached identification information giving means for giving attached identification information of sampling information in place of the function identification information when the function identification information corresponding to the sampling information cannot be obtained,
The recording means associates the identification information of the operation function acquired by the acquisition means or the attached identification information given by the attached identification information giving means with the number of consecutive samplings counted by the counting means. The information processing apparatus according to
100 サンプリング装置
101 CPU
102 主記憶部
103 補助記憶部
104 通信部
110 第1サンプリング処理部
120 動作関数特定部
130 頻度算出部
140 関数情報表作成部
150 第2サンプリング処理部
160 連続検出部
170 収集データ記憶部
200 記憶装置
210 サンプリングDB
220 動作関数DB
230 関数情報DB
100
102
220 Action function DB
230 Function information DB
Claims (4)
サンプリングの対象となる対象プログラム実行期間中に所定のサンプリング周期で採取された前記対象プログラムの動作に係るサンプリング情報について、時系列順に隣接するサンプリング情報間の比較を行い、共通の要素を有するサンプリング情報が時系列順に連続することを検出する検出ステップと、
前記検出ステップで時系列順に連続することが検出されたサンプリング情報の、連続したサンプリング回数を計数する計数ステップと、
前記対象プログラム中の関数の識別情報と前記関数が前記対象プログラム中に配置されるアドレスの範囲とを含む関数情報表を基に、前記サンプリング情報に含まれる前記対象プログラム中のアドレスから、前記サンプリング情報に対応する関数の識別情報を取得する取得ステップと、
前記検出ステップで時系列順に連続することを検出したサンプリング情報に対応する関数の識別情報と前記計数ステップで計数された連続したサンプリング回数とを対応付けて収集し、収集されたサンプリング情報から、前記対象プログラム中の関数の識別情報と関数の識別情報のサンプリング回数とを取得するステップと、
前記関数の識別情報のサンプリング回数が所定の基準を満足する関数について、前記関数情報表を作成するステップと、
を実行させるためのサンプリングプログラム。 On the computer,
Sampling information having common elements by comparing the sampling information related to the operation of the target program collected at a predetermined sampling period during the target program execution period to be sampled, by comparing adjacent sampling information in time series order A detecting step for detecting that is continuous in chronological order;
A counting step of counting the number of consecutive samplings of the sampling information detected to be continuous in chronological order in the detection step;
Based on a function information table including identification information of a function in the target program and an address range in which the function is arranged in the target program, the sampling is performed from an address in the target program included in the sampling information. An acquisition step of acquiring identification information of a function corresponding to the information;
The identification information of the function corresponding to the sampling information detected to be continuous in chronological order in the detection step and the number of consecutive samplings counted in the counting step are collected in association with each other, from the collected sampling information, Obtaining the identification information of the function in the target program and the sampling count of the identification information of the function;
Creating a function information table for a function whose number of samplings of identification information of the function satisfies a predetermined criterion ;
Sampling program to execute.
前記検出ステップで時系列順に連続することを検出したサンプリング情報に対応する関数の識別情報、或いは前記付属識別情報付与ステップで付与された付属識別情報と、前記計数ステップで計数された連続したサンプリング回数とを対応付けて記録する、請求項1に記載のサンプリングプログラム。 The obtaining step, if it can not obtain the identification information of the function corresponding to the sampling information comprises accessory identification information imparting step of imparting the supplied identification information of the sampling information in place of the identification information of the function,
The identification information of the function corresponding to the sampling information detected to be continuous in chronological order in the detection step , or the attached identification information given in the attached identification information giving step, and the number of consecutive samplings counted in the counting step The sampling program according to claim 1 , which is recorded in association with each other .
サンプリングの対象となる対象プログラム実行期間中に所定のサンプリング周期で採取
された前記対象プログラムの動作に係るサンプリング情報について、時系列順に隣接するサンプリング情報間の比較を行い、共通の要素を有するサンプリング情報が時系列順に連続することを検出する検出ステップと、
前記検出ステップで時系列順に連続することが検出されたサンプリング情報の、連続したサンプリング回数を計数する計数ステップと、
前記対象プログラム中の関数の識別情報と前記関数が前記対象プログラム中に配置されるアドレスの範囲とを含む関数情報表を基に、前記サンプリング情報に含まれる前記対象プログラム中のアドレスから、前記サンプリング情報に対応する関数の識別情報を取得する取得ステップと、
前記検出ステップで時系列順に連続することを検出したサンプリング情報に対応する関数の識別情報と前記計数ステップで計数された連続したサンプリング回数とを対応付けて収集し、収集されたサンプリング情報から、前記対象プログラム中の関数の識別情報と関数の識別情報のサンプリング回数とを取得するステップと、
前記関数の識別情報のサンプリング回数が所定の基準を満足する関数について、前記関数情報表を作成するステップと、
を実行するサンプリング方法。 Computer
Collected at a predetermined sampling period during the target program execution period to be sampled
For the sampling information related to the operation of the target program, a detection step of comparing between adjacent sampling information in time series order and detecting that sampling information having common elements is continuous in time series order; and
A counting step of counting the number of consecutive samplings of the sampling information detected to be continuous in chronological order in the detection step;
Based on a function information table including identification information of a function in the target program and an address range in which the function is arranged in the target program, the sampling is performed from an address in the target program included in the sampling information. An acquisition step of acquiring identification information of a function corresponding to the information;
The identification information of the function corresponding to the sampling information detected to be continuous in chronological order in the detection step and the number of consecutive samplings counted in the counting step are collected in association with each other, from the collected sampling information, Obtaining the identification information of the function in the target program and the sampling count of the identification information of the function;
Creating a function information table for a function whose number of samplings of identification information of the function satisfies a predetermined criterion ;
Sampling method for the execution.
前記検出手段で時系列順に連続することが検出されたサンプリング情報の、連続したサンプリング回数を計数する計数手段と、
前記対象プログラム中の関数の識別情報と前記関数が前記対象プログラム中に配置されるアドレスの範囲とを含む関数情報表を基に、前記サンプリング情報に含まれる前記対象プログラム中のアドレスから、前記サンプリング情報に対応する関数の識別情報を取得する取得手段と、
前記検出手段で時系列順に連続することを検出したサンプリング情報に対応する関数の識別情報と前記計数手段で計数された連続したサンプリング回数とを対応付けて収集し、収集されたサンプリング情報から、前記対象プログラム中の関数の識別情報と関数の識別情報のサンプリング回数とを取得する手段と、
前記関数の識別情報のサンプリング回数が所定の基準を満足する関数について、前記関数情報表を作成する手段と、
を備える情報処理装置。 Sampling information related to the operation of the target program collected at a predetermined sampling period during the execution period of the target program to be sampled is compared between adjacent sampling information in time series order, and has a common element Detecting means for detecting that information is continuous in time series; and
Counting means for counting the number of consecutive samplings of the sampling information detected to be continuous in chronological order by the detection means;
Based on a function information table including identification information of a function in the target program and an address range in which the function is arranged in the target program, the sampling is performed from an address in the target program included in the sampling information. Obtaining means for obtaining identification information of a function corresponding to the information;
The identification information of the function corresponding to the sampling information detected to be continuous in chronological order by the detection means and the number of consecutive samplings counted by the counting means are collected in association with each other, from the collected sampling information, Means for obtaining the identification information of the function in the target program and the number of sampling times of the identification information of the function;
Means for creating the function information table for a function whose number of samplings of identification information of the function satisfies a predetermined criterion;
An information processing apparatus comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012258359A JP5974856B2 (en) | 2012-11-27 | 2012-11-27 | Sampling program, sampling method and information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012258359A JP5974856B2 (en) | 2012-11-27 | 2012-11-27 | Sampling program, sampling method and information processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014106679A JP2014106679A (en) | 2014-06-09 |
JP5974856B2 true JP5974856B2 (en) | 2016-08-23 |
Family
ID=51028124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012258359A Active JP5974856B2 (en) | 2012-11-27 | 2012-11-27 | Sampling program, sampling method and information processing apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5974856B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6501159B2 (en) * | 2015-09-04 | 2019-04-17 | 株式会社網屋 | Analysis and translation of operation records of computer devices, output of information for audit and trend analysis device of the system. |
JP6691295B2 (en) | 2016-07-01 | 2020-04-28 | 富士通株式会社 | Information processing apparatus, program execution state display method, and program execution state display program |
JP7420269B2 (en) | 2020-09-14 | 2024-01-23 | 日本電信電話株式会社 | Bug detection support device, bug detection support method, and bug detection support program |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04182840A (en) * | 1990-11-19 | 1992-06-30 | Nec Eng Ltd | Method and device for firmware tracing |
JP4899511B2 (en) * | 2006-02-08 | 2012-03-21 | 富士通株式会社 | System analysis program, system analysis apparatus, and system analysis method |
JP4284332B2 (en) * | 2006-04-21 | 2009-06-24 | 株式会社東芝 | Performance monitoring device, data collection method and program thereof |
JP2008242731A (en) * | 2007-03-27 | 2008-10-09 | Oki Electric Ind Co Ltd | Microprocessor design program, microprocessor design device, and microprocessor |
JP5167984B2 (en) * | 2008-06-26 | 2013-03-21 | 富士通株式会社 | Instruction trace generation program, instruction trace generation apparatus, and instruction trace generation method |
JP5601236B2 (en) * | 2011-02-10 | 2014-10-08 | 富士通株式会社 | Information extraction program, information extraction method, and information extraction apparatus |
-
2012
- 2012-11-27 JP JP2012258359A patent/JP5974856B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014106679A (en) | 2014-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5353227B2 (en) | Information processing apparatus having performance measurement program, performance measurement method, and performance measurement function. | |
JP5874811B2 (en) | Information processing method, program, and information processing apparatus | |
US20100017583A1 (en) | Call Stack Sampling for a Multi-Processor System | |
US8850402B2 (en) | Determining performance of a software entity | |
JP2007213205A (en) | System analysis program, device, and method | |
WO2017215557A1 (en) | Method and device for collecting performance monitor unit (pmu) events | |
KR20110052470A (en) | Symmetric multi-processor lock tracing | |
US20120089724A1 (en) | Diagnosis of application server performance problems via thread level pattern analysis | |
JP5974856B2 (en) | Sampling program, sampling method and information processing apparatus | |
JP2018194988A (en) | Information processing apparatus, information processing method, and program | |
Shi et al. | A case study of tuning MapReduce for efficient Bioinformatics in the cloud | |
JP2016066197A (en) | Analysis system and analysis method | |
US10114725B2 (en) | Information processing apparatus, method, and computer readable medium | |
CN107451038B (en) | Hardware event acquisition method, processor and computing system | |
AU2015265595A1 (en) | System and method for dynamic collection of system management data in a mainframe computing environment | |
US20160357655A1 (en) | Performance information generating method, information processing apparatus and computer-readable storage medium storing performance information generation program | |
EP3001312B1 (en) | Method, device and computer program product for detecting data dependencies within a program | |
US20170228303A1 (en) | Information processing apparatus and method for collecting performance data | |
Nair et al. | Gapp: A fast profiler for detecting serialization bottlenecks in parallel linux applications | |
Li et al. | Tracerar: An i/o performance evaluation tool for replaying, analyzing, and regenerating traces | |
US10001992B2 (en) | Method, information processing apparatus, and medium | |
US20050204346A1 (en) | Using sampling data for program phase detection | |
US20230333987A1 (en) | Computer-readable recording medium, information processing method, and information processing device | |
Dai et al. | Evaluating Index Systems of High Energy Physics | |
Elder et al. | MitoMut: An Efficient Approach to Detecting Mitochondrial DNA Deletions from Paired-end Next-generation Sequencing Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150706 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160311 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160322 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160523 |
|
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: 20160621 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160704 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Ref document number: 5974856 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |