JP5974856B2 - Sampling program, sampling method and information processing apparatus - Google Patents

Sampling program, sampling method and information processing apparatus Download PDF

Info

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
Application number
JP2012258359A
Other languages
Japanese (ja)
Other versions
JP2014106679A (en
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 JP2012258359A priority Critical patent/JP5974856B2/en
Publication of JP2014106679A publication Critical patent/JP2014106679A/en
Application granted granted Critical
Publication of JP5974856B2 publication Critical patent/JP5974856B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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.

特開2000−10827号公報Japanese Patent Laid-Open No. 2000-10828 特開2006−202134号公報JP 2006-202134 A

例えば、複数のプロセッサ(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.

本実施形態のサンプリング装置の概略構成図である。It is a schematic block diagram of the sampling device of this embodiment. 従来のサンプリング方法によるサンプリングデータを例示する図である。It is a figure which illustrates the sampling data by the conventional sampling method. サンプリング装置のハードウェアの概略構成図である。It is a schematic block diagram of the hardware of a sampling device. サンプリング装置の機能構成を説明するための図である。It is a figure for demonstrating the function structure of a sampling apparatus. サンプリングDBに格納されるレコードを例示する図である。It is a figure which illustrates the record stored in sampling DB. 関数情報DBに格納される関数情報表を例示する図である。It is a figure which illustrates the function information table stored in function information DB. 関数情報表の作成処理を例示するフローチャートである。It is a flowchart which illustrates the creation process of a function information table. サンプリングデータの記録処理を例示するフローチャートである。It is a flowchart which illustrates the recording process of sampling data.

以下、図面を参照して、一実施形態に係るサンプリング装置について説明する。以下の実施形態の構成は例示であり、サンプリング装置は実施形態の構成には限定されない。   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 sampling apparatus 100 in FIG. 1 is an information processing apparatus that functions as a multiprocessor computer including a plurality of processors (CPUs: Central Processing Units), for example. The sampling apparatus 100 of FIG. 1 implement | achieves the multiprocessing system (multi processing system) which performs a some processing process in parallel by a some processor.

図1のサンプリング装置100は、対象となるプログラムの実行と共に動作情報のサンプリングを行う。サンプリング装置100は、動作情報のサンプリングにおいて、サンプリング間隔毎に動作中の関数(以下、動作関数と称す)を記録する。サンプリング装置100は、動作情報のサンプリングにおいて、同一の動作関数におけるサンプリングデータであることを示すデータを連続してサンプリングした場合には、データの圧縮を実行する。   The sampling apparatus 100 in FIG. 1 samples operation information together with execution of a target program. In sampling of operation information, the sampling apparatus 100 records a function being operated (hereinafter referred to as an operation function) at each sampling interval. In the sampling of operation information, the sampling device 100 performs data compression when data indicating sampling data in the same operation function is continuously sampled.

なお、以下の説明では、本実施形態のサンプリングプログラムが搭載されるコンピュータによる処理の1例として、複数のプロセッサを有するサンプリング装置100で実行される処理例を説明する。ただし、本実施形態のサンプリングプログラムが搭載されるコンピュータが、サンプリング装置100に限定されるわけではない。   In the following description, an example of processing executed by the sampling apparatus 100 having a plurality of processors will be described as an example of processing by a computer in which the sampling program of the present embodiment is installed. However, the computer on which the sampling program of the present embodiment is installed is not limited to the sampling apparatus 100.

本実施形態のサンプリングプログラムが搭載されるコンピュータとして、例えば、複数のコア(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 sampling device 100 in FIG. 1 is connected to the storage device 200. Note that the sampling device 100 may include the storage device 200. The sampling device 100 and the storage device 200 may be part of a cloud that is a group of computers on a network, for example. The network includes a public network such as the Internet, a local area network (LAN), or a wide area network (WAN).

記憶装置200は、各種プログラムおよび各種データを格納する記憶媒体を備えた記憶装置である。記憶装置200は、外部記憶装置とも呼ばれる。記憶装置200としては、例えば、ソリッドステートドライブ装置、ハードディスクドライブ装置等がある。また、記憶装置200は、CD(Compact Disc)ドライブ装置、DVD(Digital Versatile Disc)ドライブ装置、BD(Blu-ray Disc)ドライブ装置等の可搬記録媒体を含むことができる。   The storage device 200 is a storage device that includes a storage medium that stores various programs and various data. The storage device 200 is also called an external storage device. Examples of the storage device 200 include a solid state drive device and a hard disk drive device. The storage device 200 can include a portable recording medium such as a CD (Compact Disc) drive device, a DVD (Digital Versatile Disc) drive device, and a BD (Blu-ray Disc) drive device.

記憶装置200は、サンプリングDB210、動作関数DB220、関数情報DB230を含む。サンプリングDB210,動作関数DB220,関数情報DB230は、それぞれ、別々の記憶装置に含まれるとしてもよい。   The storage device 200 includes a sampling DB 210, an operation function DB 220, and a function information DB 230. The sampling DB 210, the operation function DB 220, and the function information DB 230 may each be included in separate storage devices.

図1のサンプリング装置100は、サンプリング対象となるプログラム(以下、対象プログラムと称す)の実行期間中に、対象プログラムの動作に係る情報を所定のサンプリング周期で採取する。そして、サンプリング装置100は、採取されたサンプリングデータを収集し、収集したサンプリングデータを記憶装置200に蓄積する。   The sampling apparatus 100 in FIG. 1 collects information related to the operation of the target program at a predetermined sampling period during the execution period of the program to be sampled (hereinafter referred to as the target program). The sampling device 100 collects the collected sampling data and accumulates the collected sampling data in the storage device 200.

サンプリング装置100で実行されるサンプリングのサンプリング周期は、対象プログラムの実行期間を超える周期でなければ任意である。例えば、1秒,10ミリ秒,100マイクロ秒といった時間単位の間隔が例示できる。コンピュータの性能、対象プログラムの実行期間,サンプル数等に応じて、適切な周期を設定すればよい。   The sampling period of sampling executed by the sampling apparatus 100 is arbitrary as long as it does not exceed the execution period of the target program. For example, time unit intervals such as 1 second, 10 milliseconds, and 100 microseconds can be exemplified. An appropriate period may be set according to the performance of the computer, the execution period of the target program, the number of samples, and the like.

図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 sampling apparatus 100 according to the present embodiment detects, for example, that sampling data indicating data in the same operation function continues from sampling data collected in time series. Then, the sampling apparatus 100 according to the present embodiment counts the number of consecutive samplings of sampling data indicating that the data is in the same operation function. The sampling apparatus 100 of this embodiment replaces recording individual sampling data one by one, sampling data indicating data in the same operation function, and sampling data indicating data in the same operation function Are recorded in association with the number of consecutive samplings. As a result, the accumulated data amount of data accumulated in the sampling apparatus 100 of the present embodiment is compressed, so that the collected sampling data amount is reduced.

また、本実施形態のサンプリング装置100は、時系列順に採取したサンプリングデータから、対象となるプログラムのサンプリング頻度の相対的に高い動作関数を特定する。特定したサンプリング頻度の相対的に高い動作関数は、例えば、テーブル形式で保持される。本実施形態のサンプリング装置100は、サンプリング頻度の相対的に高い動作関数をテーブル形式で保持することにより、採取したサンプリングデータから動作関数を検出するための処理時間を短縮する。   In addition, the sampling apparatus 100 according to the present embodiment specifies an operation function having a relatively high sampling frequency of the target program from the sampling data collected in time series. The identified operation function having a relatively high sampling frequency is held in a table format, for example. The sampling apparatus 100 according to the present embodiment reduces the processing time for detecting an operation function from the collected sampling data by holding an operation function having a relatively high sampling frequency in a table format.

図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 sampling device 100. The sampling device 100 includes a plurality of CPUs 101 # 1-CPU101 # n, a main storage unit 102, an auxiliary storage unit 103, and a communication unit 104 connected to each other via a connection bus B1. In the sampling device 100, the CPU 101 # 1-CPU101 # n develops a program stored in the auxiliary storage unit 103 so as to be executable in the work area of the main storage unit 102, and controls peripheral devices through execution of the program. Thereby, the sampling apparatus 100 can implement | achieve the function corresponding to the predetermined objective. The main storage unit 102 and the auxiliary storage unit 103 are recording media that can be read by the sampling apparatus 100 that is a computer.

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 sampling device 100. CPU 101 # 1 -CPU 101 #n perform processing according to a program stored in auxiliary storage unit 103. The main storage unit 102 is a storage medium in which the CPU 101 # 1-CPU101 # n caches programs and data and develops a work area. The main storage unit 102 includes, for example, a RAM (Random Access Memory) and a ROM (Read Only Memory).

補助記憶部103は、各種のプログラム及び各種のデータを読み書き自在に記録媒体に格納する。補助記憶部103には、オペレーティングシステム(Operating System :OS)、各種プログラム、各種テーブル等が格納される。OSは、通信部104を介して接続される外部装置等とのデータの受け渡しを行う通信インターフェースプログラムを含む。外部装置等には、例えば、ネットワークを介して接続された、他の情報処理装置、記憶装置が含まれる。通信部104は、例えば、ネットワーク等とのインターフェースである。   The auxiliary storage unit 103 stores various programs and various data in a recording medium in a readable and writable manner. The auxiliary storage unit 103 stores an operating system (OS), various programs, various tables, and the like. The OS includes a communication interface program that exchanges data with an external device or the like connected via the communication unit 104. The external device or the like includes, for example, other information processing devices and storage devices connected via a network. The communication unit 104 is an interface with a network or the like, for example.

補助記憶部103は、例えば、EPROM(Erasable Programmable ROM)、ソリッド
ステートドライブ装置、ハードディスクドライブ(HDD、Hard Disc Drive)装置等で
ある。また、補助記憶部103としては、例えば、CDドライブ装置、DVDドライブ装置、BDドライブ装置等が提示できる。記録媒体としては、例えば、不揮発性半導体メモ
リ(フラッシュメモリ)を含むシリコンディスク、ハードディスク、CD、DVD、BD、USB(Universal Serial Bus)メモリ等がある。
The auxiliary storage unit 103 is, for example, an EPROM (Erasable Programmable ROM), a solid state drive device, a hard disk drive (HDD, Hard Disc Drive) device, or the like. As the auxiliary storage unit 103, for example, a CD drive device, a DVD drive device, a BD drive device, or the like can be presented. Examples of the recording medium include a silicon disk including a nonvolatile semiconductor memory (flash memory), a hard disk, a CD, a DVD, a BD, and a USB (Universal Serial Bus) memory.

図3に例示するサンプリング装置100は、例えば、ユーザ等からの操作指示等を受け付ける入力部を備えるとしてもよい。このような、入力部として、キーボード、ポインティングデバイス等といった入力デバイスを例示できる。また、サンプリング装置100は、CPU101#1−CPU101#nで処理されるデータや主記憶部102に記憶されるデータを出力する出力部を備えるとしてもよい。このような、入力部として、CRT(Cathode Ray Tube)ディスプレイ、LCD(Liquid Crystal Display)、PDP(Plasma
Display Panel)、EL(Electroluminescence)パネル、有機ELパネル、プリンタと
いった出力デバイスを例示できる。
The sampling apparatus 100 illustrated in FIG. 3 may include an input unit that receives an operation instruction or the like from a user or the like, for example. Examples of such an input unit include an input device such as a keyboard and a pointing device. The sampling apparatus 100 may include an output unit that outputs data processed by the CPUs 101 # 1-CPU101 # n and data stored in the main storage unit 102. As such an input unit, a CRT (Cathode Ray Tube) display, an LCD (Liquid Crystal Display), a PDP (Plasma)
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 sampling apparatus 100 is illustrated in FIG. 1 together with the execution of the target program by the CPU 101 # 1-CPU101 # n reading various programs and various data stored in the auxiliary storage unit 103 into the main storage unit 102 and executing them. Realize each functional unit. Along with the execution of the target program, the sampling apparatus 100 includes a first sampling processing unit 110, an operation function specifying unit 120, a frequency calculation unit 130, a function information table creation unit 140, a second sampling processing unit 150, a continuous detection example illustrated in FIG. Unit 160 and collected data storage unit 170 are realized.

なお、各機能部のうち、いずれかが、他の情報処理装置に含まれてもよい。例えば、サンプリング装置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 sampling device 100 includes a first sampling processing unit 110, a second sampling processing unit 150, a continuous detection unit 160, and a collected data storage unit 170, and is connected to a network. Then, the information processing apparatus including the operation function identification unit 120, the information processing apparatus including the frequency calculation unit 130, and the information processing apparatus including the function information table creation unit 140 are connected to the network. As described above, the sampling device 100 may be realized by distributing functional units to a plurality of information processing devices and executing the functional units. Since the sampling device 100 can be realized in the cloud that is a group of computers on the network, the processing load of each functional unit can be reduced.

〔機能ブロック構成〕
図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 sampling apparatus 100. The sampling apparatus 100 illustrated in FIG. 4 includes a first sampling processing unit 110, an operation function specifying unit 120, a frequency calculation unit 130, a function information table creation unit 140, a second sampling processing unit 150, a continuous detection unit 160, and collected data storage. Each functional unit of the unit 170 is included.

また、図4に例示のサンプリング装置100は、以上の機能部が参照し、あるいは、管理するデータの格納先として、記憶装置200に構築された、サンプリングDB210、動作関数DB220、関数情報DB230を有する。   The sampling device 100 illustrated in FIG. 4 includes a sampling DB 210, an operation function DB 220, and a function information DB 230 constructed in the storage device 200 as a storage destination of data to be referred to or managed by the above functional units. .

第1サンプリング処理部110は、対象プログラムを特定期間で実行し、該特定期間中に所定のサンプリング周期で採取された対象プログラムの動作に係る情報を収集する。第1サンプリング処理部110で収集された情報は、例えば、主記憶部102の所定の領域に格納される。収集された情報は、動作関数特定部120,頻度算出部130に引き渡される。   The first sampling processing unit 110 executes the target program in a specific period, and collects information related to the operation of the target program collected at a predetermined sampling period during the specific period. The information collected by the first sampling processing unit 110 is stored in a predetermined area of the main storage unit 102, for example. The collected information is delivered to the action function identification unit 120 and the frequency calculation unit 130.

第1サンプリング処理部110で収集されるサンプリングデータは、例えば、図2に例示するサンプリングデータ形式で収集される。第1サンプリング処理部110で収集されるサンプリングデータは、サンプリングごとのレコードを有する。第1サンプリング処理部110は、対象プログラムの動作に係る情報として、「CPU番号」,「PID」,「命令アドレス」といった情報を採取・収集する。   The sampling data collected by the first sampling processing unit 110 is collected, for example, in the sampling data format illustrated in FIG. The sampling data collected by the first sampling processing unit 110 has a record for each sampling. The first sampling processing unit 110 collects and collects information such as “CPU number”, “PID”, and “instruction address” as information related to the operation of the target program.

なお、第1サンプリング処理部110で実行されるサンプリングデータの収集期間は、例えば、対象プログラムの実行期間より短い特定期間が設定される。設定された特定期間は、例えば、補助記憶部103に格納される。また、特定期間は、サンプリング装置100の管理者等により、例えば、キーボード等の操作入力を介して設定されるとしてもよく、サンプリング装置100に接続するネットワークを介して設定されるとしてもよい。第1サンプリング処理部110は、対象プログラムの実行期間より短い特定期間でサンプリングデータの収集が実行できればよい。   Note that the sampling period of sampling data executed by the first sampling processing unit 110 is set to a specific period shorter than the execution period of the target program, for example. The set specific period is stored in the auxiliary storage unit 103, for example. Further, the specific period may be set by an administrator of the sampling apparatus 100 or the like, for example, through an operation input such as a keyboard, or may be set via a network connected to the sampling apparatus 100. The first sampling processor 110 only needs to be able to collect sampling data in a specific period shorter than the execution period of the target program.

動作関数特定部120は、第1サンプリング処理部110から引き渡されたサンプリングデータから、動作関数DB220を参照し、PID,命令アドレスに対応付けられた動作関数情報を特定する。動作関数情報には、PIDに対応するプログラム名,動作関数の関数名,動作関数の開始アドレス及び終了アドレスが含まれる。開始アドレスは、例えば、プログラム中の関数の先頭命令の命令アドレスである。また、終了アドレスは、例えば、プログラム中の関数の末尾の命令の命令アドレスである。動作関数特定部120は、特定した動作関数情報を例えば、主記憶部102の所定の領域に格納する。特定した動作関数情報は、頻度算出部130に引き渡される。   The operation function specifying unit 120 specifies the operation function information associated with the PID and the instruction address with reference to the operation function DB 220 from the sampling data delivered from the first sampling processing unit 110. The action function information includes a program name corresponding to the PID, a function name of the action function, a start address and an end address of the action function. The start address is, for example, the instruction address of the first instruction of the function in the program. The end address is, for example, the instruction address of the instruction at the end of the function in the program. The action function specifying unit 120 stores the specified action function information in a predetermined area of the main storage unit 102, for example. The identified operation function information is delivered to the frequency calculation unit 130.

頻度算出部130は、第1サンプリング処理部110から引き渡されたサンプリングデータと動作関数特定部120から引き渡された動作関数情報に基づいて、特定された動作関数ごとのサンプル数を集計する。頻度算出部130は、特定された動作関数を、集計されたサンプル数の相対的に多い順に並べ、主記憶部102の所定の領域に格納する。相対的にサンプル数の多い順に並べられた各動作関数は、関数情報表作成部140に引き渡される。   Based on the sampling data delivered from the first sampling processing unit 110 and the action function information delivered from the action function specifying part 120, the frequency calculating part 130 totals the number of samples for each specified action function. The frequency calculation unit 130 arranges the identified operation functions in the order of the relatively large number of samples, and stores them in a predetermined area of the main storage unit 102. The operation functions arranged in the order of the relatively large number of samples are delivered to the function information table creation unit 140.

関数情報表作成部140は、頻度算出部130から引き渡された動作関数に対し、動作関数を一意に特定する関数識別情報の付与を行う。そして、関数情報表作成部140は、付与した関数識別情報に、動作関数名,PIDに対応するプログラム名,動作関数の開始アドレス及び終了アドレス位置を対応付け、関数情報表の作成を行う。作成された関数情報表は主記憶部102の所定の領域に格納される。また、関数情報表作成部140は、作成された関数情報表を関数情報DB230に格納する。   The function information table creation unit 140 assigns function identification information that uniquely identifies the motion function to the motion function delivered from the frequency calculation unit 130. Then, the function information table creation unit 140 creates a function information table by associating the assigned function identification information with the action function name, the program name corresponding to the PID, the start address and the end address position of the action function. The created function information table is stored in a predetermined area of the main storage unit 102. Further, the function information table creation unit 140 stores the created function information table in the function information DB 230.

なお、関数情報表作成部140は、例えば、所定の閾値を設け、所定の閾値を超えたサンプル数を有する動作関数に対して関数情報表を生成するとしてもよい。また、例えば、関数情報表作成部140は、予め設定された個数(例えば、上位20個等)の動作関数に対し、関数情報表を生成するとしてもよい。また、例えば、関数情報表作成部140は、頻度算出部130で集計された全ての動作関数のうち、一定の割合を占める(例えば、全体の50パーセント等)、上位の動作関数に対し、関数情報表を作成するとしてもよい。   The function information table creation unit 140 may generate a function information table for an operation function having a predetermined threshold value and having a sample number exceeding the predetermined threshold value, for example. Further, for example, the function information table creation unit 140 may generate a function information table for a predetermined number (for example, the top 20) operation functions. In addition, for example, the function information table creation unit 140 occupies a certain ratio (for example, 50% of the whole) among all the motion functions aggregated by the frequency calculation unit 130, and the function information table creation unit 140 An information table may be created.

関数情報表の作成では、対象プログラムが実行される動作環境、対象プログラムの実行時間、サンプリング周期、サンプリングデータを蓄積するメモリ等の記憶容量等に応じて、関数情報表を作成するための適切な基準を選定することができる。   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 sampling processing unit 150 collects information related to the operation of the target program at a predetermined sampling period during the execution period of the target program, and collects sampling data. The collected sampling data is collected, for example, in the sampling data format illustrated in FIG. The second sampling processing unit 150 temporarily stores the collected sampling data in a predetermined area of the main storage unit 102.

また、第2サンプリング処理部150は、サンプリングデータに含まれるプログラム中のアドレスから動作関数を特定し、サンプリングデータが関数情報表作成部140で生成
した関数情報表に定義されたいずれかの関数のアドレスの範囲にあるか否かを判定する。
Further, the second sampling processing unit 150 identifies an operation function from the address in the program included in the sampling data, and the sampling data is one of the functions defined in the function information table generated by the function information table creation unit 140. Determine whether it is in the address range.

第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 sampling processing unit 150 specifies function identification information corresponding to the sampling data from the function information table. The identified function identification information is selected as recording information to be accumulated as sampling data. The second sampling processing unit 150 stores the specified function identification information in a predetermined area of the main storage unit 102 and delivers it to the continuous detection unit 160 and the collected data storage unit 170.

一方、サンプリングデータから特定された動作関数が関数情報表に含まれていない場合、第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 sampling processing unit 150 uses the address position information during the execution of the instruction included in the sampling data as the sampling data as in the conventional case. Select recording information to be stored. The address position information during instruction execution included in the sampling data is, for example, an “instruction address” illustrated in FIG.

第2サンプリング処理部150は、サンプリングデータに含まれる命令実行中のアドレス位置情報を主記憶部102の所定の領域に格納し、連続検出部160,収集データ記憶部170に引き渡す。   The second sampling processing unit 150 stores the address position information during the execution of the instruction included in the sampling data in a predetermined area of the main storage unit 102 and passes it to the continuous detection unit 160 and the collected data storage unit 170.

連続検出部160は、第2サンプリング処理部150で採取されたサンプリングデータについて、同一の動作関数情報または同一のPID及び命令アドレスがサンプリングの時系列順に連続することを検出する。連続検出部160は、採取されたサンプリングデータと直前のサンプリング周期で採取されたサンプリングデータとの比較を行い、同一の動作関数情報または同一のPID及び命令アドレスが時系列順に連続したサンプリングデータを検出する。   The continuous detection unit 160 detects that the same operation function information or the same PID and instruction address are consecutive in the sampling time-series order for the sampling data collected by the second sampling processing unit 150. The continuous detection unit 160 compares the collected sampling data with the sampling data collected in the immediately preceding sampling period, and detects the sampling data in which the same operation function information or the same PID and instruction address are consecutive in time series order. To do.

例えば、連続検出部160は、第n番目に採取されたサンプリングデータの「CPU番号」及び「PID」と第n−1番目に採取されたサンプリングデータの「CPU番号」及び「PID」との比較を行う。比較の結果、連続検出部160は、両者の「CPU番号」及び「PID」が同じ場合に、サンプリングされたデータが時系列順に連続することを検出できる。   For example, the continuous detection unit 160 compares the “CPU number” and “PID” of the nth sampling data with the “CPU number” and “PID” of the (n−1) th sampling data. I do. As a result of the comparison, the continuous detection unit 160 can detect that the sampled data is continuous in time series when both of the “CPU number” and “PID” are the same.

また、連続検出部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 continuity detection unit 160 performs the same processing on the function identification information specified from the function information table. Just do it. For example, the continuous detection unit 160 may compare the function identification information of the nth sampling data with the function identification information of the (n−1) th sampling data. As a result of the comparison, the continuous detection unit 160 can detect that the sampled data is continuous in time series when the function identification information is the same.

また、連続検出部160は、同一の関数識別情報(または同一のPID及び命令アドレスの組み)が連続したサンプリングを検出すると、例えば、主記憶部102の所定の領域に設定された連続検出カウンタのカウント値を「1」インクリメントする。連続検出部160は、同一の動作関数情報(または同一のPID及び命令アドレスの組み)が連続したサンプリングを検出する度に連続検出カウンタのカウント値をインクリメントし続けることにより、サンプリングデータの連続回数を計数できる。   Further, when the continuous detection unit 160 detects continuous sampling of the same function identification information (or the same combination of PID and instruction address), for example, a continuous detection counter set in a predetermined area of the main storage unit 102 The count value is incremented by “1”. The continuous detection unit 160 keeps incrementing the count value of the continuous detection counter every time the same operation function information (or the combination of the same PID and instruction address) detects continuous sampling, thereby reducing the continuous number of sampling data. Can count.

連続検出部160は、計数した、同一の動作関数情報(または同一のPID及び命令アドレスの組み)が連続したサンプリングデータの連続回数を、主記憶部102の所定の領域に格納し、収集データ記憶部170に引き渡す。   The continuous detection unit 160 stores, in a predetermined area of the main storage unit 102, the number of consecutive sampling data in which the same operation function information (or combination of the same PID and instruction address) counted is stored, and collects data storage Delivered to the unit 170.

収集データ記憶部170は、引き渡されたサンプリングデータを例えば、図5Aに例示するサンプリングデータ形式で、サンプリングDB210に格納する。   The collected data storage unit 170 stores the delivered sampling data in the sampling DB 210, for example, in the sampling data format illustrated in FIG. 5A.

〔データベース構成〕
図5Aに、サンプリングDB210を例示する。図5AのサンプリングDB210には、収集データ記憶部170で作成されたサンプリングデータレコードが格納される。サンプリングDB210は、連続して検出された動作関数ごとのレコードを有する。サンプリングDB210の各レコードは、サンプリングされた経過時間順に格納される。
[Database configuration]
FIG. 5A illustrates the sampling DB 210. In the sampling DB 210 of FIG. 5A, sampling data records created by the collected data storage unit 170 are stored. The sampling DB 210 has a record for each action function detected continuously. Each record of the sampling DB 210 is stored in the order of the sampled elapsed time.

図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 sampling processing unit 150 is stored. If the PID and instruction address are not included in the function information table, the “function identification information / instruction address” field contains “instruction position information that is collected by the second sampling processing unit 150 and that is address position information during execution of the instruction. Address "is stored. In the “continuous count” field, the continuous count of the sampling data counted by the continuous detection unit 160 is stored.

なお、「関数識別情報/命令アドレス」フィールドには、「命令アドレス」に替えて、収集データ記憶部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 data storage unit 170 instead of “instruction address” is stored. It may be stored.

図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 table creation unit 140 such as “1” and “2” is stored. The “continuous number” field stores the continuous number of sampling data such as “10” and “8” counted by the continuous detection unit 160.

動作関数DB220には、OS関数,ユーザ関数等と対応付けられた動作関数の動作関数情報が格納されている。動作関数DB220は、動作関数ごとのレコードを有する。動作関数DB220に格納される動作関数情報には、PIDに対応するプログラム名,動作関数の関数名,動作関数の開始アドレス及び終了アドレスが含まれる。   The action function DB 220 stores action function information of action functions associated with OS functions, user functions, and the like. The operation function DB 220 has a record for each operation function. The action function information stored in the action function DB 220 includes a program name corresponding to the PID, a function name of the action function, a start address and an end address of the action function.

このような動作関数情報は、例えば、サンプリング装置100の管理者等により、キーボード等の操作入力を介して設定されるとしてもよく、サンプリング装置100に接続するネットワークを介して設定されるとしてもよい。   Such operation function information may be set, for example, by an administrator of the sampling apparatus 100 via an operation input such as a keyboard, or may be set via a network connected to the sampling apparatus 100. .

一例として、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 sampling device 100 may access the above-described system file and acquire operation function information corresponding to each OS function.

また、例えば、“/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 sampling apparatus 100 may access the above-described file and acquire a program name corresponding to each process.

また、例えば、上述したプログラム名の実行ファイルに対し所定のコマンド(例えば、“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 sampling device 100 may acquire the operation function information defined by the user function by performing the above-described command operation.

サンプリング装置100の管理者等は、上述の処理で取得した動作関数情報を、動作関数に対応付けて動作関数DB220に登録する。   The administrator of the sampling apparatus 100 registers the action function information acquired by the above-described process in the action function DB 220 in association with the action function.

図5Bに、関数情報DB230を例示する。図5Bの関数情報DB230には、関数情報表作成部140で作成された関数情報表が格納される。関数情報DB230は、対象プログラムごとの関数情報表を有する。   FIG. 5B illustrates the function information DB 230. The function information table created by the function information table creation unit 140 is stored in the function information DB 230 of FIG. 5B. The function information DB 230 has a function information table for each target program.

図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 table creation unit 140 is stored. The “function name” field stores the function name of the action function. The “start address” field stores the start address position of the motion function. The “end address” field stores the end address position of the action function.

図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 sampling processing unit 150 can identify the program name associated with “PID” by referring to the operation function DB 220 from “PID” included in the collected sampling data. Then, in the second sampling processing unit 150, the function information table illustrated in FIG. 5B is referred to from the position information of the “instruction address” included in the collected program data and the specified program name, and given to the operation function. Function identification information can be specified.

〔処理フロー〕
以下、図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 sampling apparatus 100 according to the present embodiment. The flowchart of the example is a process mainly executed by the first sampling processing unit 110, the operation function specifying unit 120, the frequency calculating unit 130, and the function information table creating unit 140. For example, the sampling device 100 executes a function information table creation process by a computer program that is executably expanded in the main storage unit 102.

図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 auxiliary storage unit 103, for example. The sampling apparatus 100 accesses a predetermined file and acquires OS function information in an OS environment in which the target program is executed (S1). The OS function information includes the OS function name and the start address and end address of the operation function associated with the OS function name.

なお、動作関数DB220で説明したように、サンプリング装置100の管理者等によりOS関数情報が既に取得されている場合には、サンプリング装置100はS1の処理を省略できる。   As described in the operation function DB 220, when the OS function information has already been acquired by the administrator of the sampling apparatus 100, the sampling apparatus 100 can omit the process of S1.

S2では、サンプリング装置100は、対象プログラムを実行し、対象プログラムの実行期間よりも短い特定期間でサンプリングデータを採取する。サンプリング装置100は、採取したサンプリングデータを、例えば、主記憶部102の所定の領域に格納する。なお、S2の処理は、第1サンプリング処理部110で説明した。   In S2, the sampling apparatus 100 executes the target program and collects sampling data in a specific period shorter than the execution period of the target program. The sampling device 100 stores the collected sampling data in a predetermined area of the main storage unit 102, for example. Note that the processing of S2 has been described in the first sampling processing unit 110.

S3−S5では、サンプリング装置100は、S2で採取・収集されたサンプリングデータに対して、サンプリングデータのPIDと命令アドレスから動作関数の動作関数情報を取得し、動作関数の関数名を特定する。サンプリング装置100は、S2で採取・収集したサンプリングデータに対し、S3−S5の処理を繰り返す。   In S3 to S5, the sampling apparatus 100 acquires the operation function information of the operation function from the PID and instruction address of the sampling data for the sampling data collected and collected in S2, and specifies the function name of the operation function. The sampling apparatus 100 repeats the processing of S3-S5 for the sampling data collected / collected in S2.

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 sampling apparatus 100 determines whether or not the instruction address of the sampling data collected in S2 is included in the address of the OS function (S3). The sampling apparatus 100 refers to the operation function DB 220 and determines whether or not the instruction address of the collected sampling data is included in the address range specified by the start address and end address of each OS function. When the instruction address of the sampling data is included in the address of the OS function (S3, Yes), the sampling device 100 specifies the function name of the operation function from the OS function information associated with the corresponding address range (S5). ). The sampling device 100 temporarily stores the function name of the identified operation function in a predetermined area of the main storage unit 102.

一方、サンプリング装置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 sampling device 100 proceeds to S4.

S4では、サンプリング装置100は、動作関数DB220を参照し、採取したサンプリングデータのPIDに対応付けられたプログラム名を特定する。そして、サンプリング装置100は、特定したプログラム名に対応付けられた動作関数のアドレス範囲と採取したサンプリングデータの命令アドレスとに基づいて、動作関数DB220で対応付けられた動作関数の関数名を特定する。サンプリング装置100は、特定した動作関数の関数名を、主記憶部102の所定の領域に一時的に格納する。   In S4, the sampling device 100 refers to the operation function DB 220 and specifies a program name associated with the PID of the collected sampling data. Then, the sampling device 100 identifies the function name of the action function associated with the action function DB 220 based on the address range of the action function associated with the identified program name and the instruction address of the collected sampling data. . The sampling device 100 temporarily stores the function name of the identified operation function in a predetermined area of the main storage unit 102.

サンプリング装置100は、S2で採取・収集されたサンプリングデータに対してS3−S5の処理による動作関数の関数名の特定を完了すると、S6に移行する。   When the sampling device 100 completes specifying the function name of the operation function by the processing of S3-S5 for the sampling data collected and collected in S2, the sampling device 100 proceeds to S6.

なお、サンプリング装置100で実行されるS3−S5の処理は、関数の識別情報を取得する取得ステップ、取得手順の一例である。また、サンプリング装置100は、関数の識別情報を取得する取得手段の一例として、S3−S5の処理を実行する。   Note that the processing of S3 to S5 executed by the sampling device 100 is an example of an acquisition step and an acquisition procedure for acquiring function identification information. In addition, the sampling apparatus 100 performs the processing of S3 to S5 as an example of an acquisition unit that acquires function identification information.

S6では、サンプリング装置100は、S3−S5で特定された各動作関数のサンプル数を計数し、動作関数ごとのサンプル集計値を算出する。そして、サンプリング装置100は、動作関数ごとに計数されたサンプル集計値の相互比較を行い、例えば、サンプル集
計値の多い順に各動作関数を整列する。サンプル集計値の多い順に整列された各動作関数は、サンプル集計値と共に主記憶部102の所定の領域に格納される。
In S6, the sampling apparatus 100 counts the number of samples of each action function specified in S3-S5, and calculates a sample total value for each action function. Then, the sampling apparatus 100 performs a mutual comparison of the sample aggregate values counted for each operation function, and arranges the operation functions in the order of, for example, the sample aggregate values in descending order. Each action function arranged in order of increasing sample aggregate value is stored in a predetermined area of the main storage unit 102 together with the sample aggregate value.

さらに、サンプリング装置100で実行されるS1−S6の処理は、関数の識別情報と関数の識別情報のサンプリング回数とを取得するステップ、関数の識別情報と関数の識別情報のサンプリング回数とを取得する手順の一例である。また、サンプリング装置100は、関数の識別情報と関数の識別情報のサンプリング回数とを取得する手段の一例として、S1−S6の処理を実行する。   Further, the processing of S1-S6 executed by the sampling device 100 acquires the function identification information and the number of times of sampling of the function identification information, and acquires the function identification information and the number of times of sampling of the function identification information. It is an example of a procedure. In addition, the sampling apparatus 100 performs the processing of S1 to S6 as an example of a unit that acquires the function identification information and the number of times the function identification information is sampled.

S7では、サンプリング装置100は、S6で計数されたサンプル集計値に基づいて動作関数を選定し、選定された動作関数に関数識別情報を付与し、関数情報表を作成する。なお、作成された関数情報表は、例えば、図5Bに例示される。サンプリング装置100は、例えば、S6でサンプル集計値の多い順に整列された上位の動作関数を選定することができる。なお、上位の動作関数の選定個数は任意である。上位の動作関数が、所定の基準を満足する動作関数の一例である。   In S7, the sampling device 100 selects an operation function based on the sample total value counted in S6, adds function identification information to the selected operation function, and creates a function information table. The created function information table is exemplified in FIG. 5B, for example. For example, the sampling apparatus 100 can select a higher-order operation function arranged in the descending order of sample count values in S6. It should be noted that the number of higher-order operation functions can be selected arbitrarily. A higher-order operation function is an example of an operation function that satisfies a predetermined criterion.

なお、サンプリング装置100で実行されるS7の処理は、関数情報表を作成するステップ、関数情報表を作成する手順の一例である。また、サンプリング装置100は、関数情報表を作成する手段の一例として、S7の処理を実行する。   Note that the processing of S7 executed by the sampling apparatus 100 is an example of a step of creating a function information table and a procedure of creating a function information table. In addition, the sampling device 100 executes the process of S7 as an example of a means for creating a function information table.

例えば、サンプリング装置100は、所定の閾値を設け、サンプル集計値が所定の閾値を超える動作関数を上位の動作関数とすることができる。また、例えば、サンプリング装置100は、予め設定された個数(例えば、20個等)に沿って、S6でサンプル集計値の多い順に整列された上位の動作関数を選定するとしてもよい。また、例えば、サンプリング装置100は、S6で集計された動作関数のうち、一定の割合を占める(例えば、サンプル全体の50パーセント等)上位の動作関数を選定するとしてもよい。   For example, the sampling apparatus 100 can set a predetermined threshold value, and can set an operation function whose sample total value exceeds the predetermined threshold value as a higher-level operation function. Further, for example, the sampling apparatus 100 may select a higher-order operation function that is arranged in order of increasing sample count value in S6 along a preset number (for example, 20). For example, the sampling apparatus 100 may select a higher-order operation function that occupies a certain ratio (for example, 50% of the entire sample) among the operation functions totaled in S6.

サンプリング装置100は、S6で計数されたサンプル集計値の多い動作関数を特定できればよい。サンプル集計値の多い動作関数は、対象プログラムの実行期間中にサンプリング頻度の高い動作関数と特定できるからである。   The sampling apparatus 100 only needs to be able to identify an operation function having a large sample count value counted in S6. This is because an operation function having a large sample aggregate value can be identified as an operation function having a high sampling frequency during the execution period of the target program.

サンプリング装置100は、選定された上位の動作関数に対し、動作関数を一意に特定する関数識別情報の付与を行う。そして、サンプリング装置100は、付与した関数識別情報に、動作関数名,PIDに対応するプログラム名,動作関数の開始アドレス及び終了アドレス位置を対応付けて関数情報表を作成する。作成された関数情報表は、関数情報DB230に格納される。   The sampling device 100 assigns function identification information that uniquely identifies the motion function to the selected higher-order motion function. Then, the sampling apparatus 100 creates a function information table by associating the assigned function identification information with the action function name, the program name corresponding to the PID, the start address and the end address position of the action function. The created function information table is stored in the function information DB 230.

以上の処理により、サンプリング装置100は、S2で採取・収集したサンプリングデータから、対象プログラムの実行期間中にサンプリング頻度の高い動作関数を特定することができる。特定した各動作関数は、それぞれに関数識別情報が付与される。付与された関数識別情報と動作関数固有の関数情報とは対応付けられて、関数情報表として関数情報DB230に格納される。サンプリング装置100は、対象プログラムの実行期間中に関数情報DB230に格納された関数情報表を参照することにより、動作関数検出のための処理時間を短縮できる。   With the above processing, the sampling apparatus 100 can identify an operation function with a high sampling frequency during the execution period of the target program from the sampling data collected and collected in S2. Each identified operation function is given function identification information. The assigned function identification information and the function information unique to the action function are associated with each other and stored in the function information DB 230 as a function information table. The sampling device 100 can shorten the processing time for detecting the operation function by referring to the function information table stored in the function information DB 230 during the execution period of the target program.

次に、図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 sampling device 100 of the present embodiment. The flowchart in the example is a process mainly executed by the second sampling processing unit 150, the continuous detection unit 160, and the collected data storage unit 170. The sampling device 100 executes sampling data recording processing by, for example, a computer program developed in the main storage unit 102 so as to be executable.

図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 auxiliary storage unit 103. In the sampling device 100, each functional unit such as the second sampling processing unit 150, the continuous detection unit 160, and the collected data storage unit 170 is executed in parallel with the execution of the target program by the activation of the computer program.

図例のフローチャートにおいて、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 sampling apparatus 100 according to the present embodiment ends with the end of the execution of the operation of the target program.

S8−S17の処理において、サンプリング装置100は、所定のサンプリング周期で対象プログラムの動作に係る情報をサンプリングデータとして採取する(S8)。なお、S8で採取されるサンプリングデータは、例えば、図2に例示するデータ形式で採取される。図2に例示するように、対象プログラムの動作に係る情報には、「CPU番号」,「PID」,「命令アドレス」が含まれる。採取されたサンプリングデータは、主記憶部102の所定の領域に一時的に格納される。   In the process of S8-S17, the sampling apparatus 100 collects information related to the operation of the target program as sampling data at a predetermined sampling period (S8). Note that the sampling data collected in S8 is collected, for example, in the data format illustrated in FIG. As illustrated in FIG. 2, the information related to the operation of the target program includes “CPU number”, “PID”, and “instruction address”. The collected sampling data is temporarily stored in a predetermined area of the main storage unit 102.

S9では、サンプリング装置100は、S8で採取されたサンプリングデータに含まれるPIDから動作関数DB220を参照し、PIDに対応付けられたプログラム名を特定する。そして、サンプリング装置100は、S8で採取されたサンプリングデータに含まれる命令アドレスと特定したプログラム名から、サンプリングデータが関数情報DB230に格納された関数情報表に定義された動作関数の開始アドレスから終了アドレスの範囲にあるか否かを判定する(S9−S10)。   In S9, the sampling device 100 refers to the operation function DB 220 from the PID included in the sampling data collected in S8, and identifies the program name associated with the PID. Then, the sampling device 100 ends from the instruction address included in the sampling data collected in S8 and the specified program name, from the start address of the operation function defined in the function information table in which the sampling data is stored in the function information DB 230. It is determined whether it is within the address range (S9-S10).

S10では、サンプリング装置100は、関数情報DB230に格納された、対象プログラムに対応する関数情報表を参照し、サンプリングデータが関数情報表に含まれる動作関数であるかを判定する。   In S10, the sampling apparatus 100 refers to the function information table corresponding to the target program stored in the function information DB 230, and determines whether the sampling data is an operation function included in the function information table.

例えば、サンプリング装置100は、S9で特定したプログラム名に基づいて関数情報表を検索し、プログラム名に対応付けられた開始アドレス及び終了アドレスを取得する。そして、サンプリング装置100は、サンプリングデータに含まれるプログラム中のアドレスが、開始アドレス及び終了アドレスで特定できる位置範囲に含まれるか否かを判定すればよい。サンプリング装置100は、プログラム名および命令アドレスが関数情報表に含まれる場合に、サンプリングデータが関数情報表に含まれる動作関数に対応すると判定すればよい。   For example, the sampling device 100 searches the function information table based on the program name specified in S9, and obtains a start address and an end address associated with the program name. Then, the sampling apparatus 100 may determine whether the address in the program included in the sampling data is included in the position range that can be specified by the start address and the end address. The sampling apparatus 100 may determine that the sampling data corresponds to the operation function included in the function information table when the program name and the instruction address are included in the function information table.

なお、サンプリング装置100は、関数情報DB230に格納された、対象プログラムに対応する関数情報表を、サンプリング開始と共に主記憶部102の所定の領域に格納するとしてもよい。   The sampling apparatus 100 may store the function information table corresponding to the target program stored in the function information DB 230 in a predetermined area of the main storage unit 102 together with the start of sampling.

サンプリング装置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 sampling device 100 acquires function identification information corresponding to the operation function from the function information table. Then, the sampling device 100 stores the acquired function identification information in a predetermined area of the main storage unit 102 (S12).

一方、サンプリング装置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 sampling apparatus 100 uses the instruction address specified in S9 as the predetermined address in the main storage unit 102. Store in the area (S11).

次にS13では、サンプリング装置100は、処理中のサンプリングデータと直前のサンプリング周期で採取されたサンプリングデータとの比較を行い、処理中のサンプリングデータが連続したものであるかを判定する。   Next, in S13, the sampling apparatus 100 compares the sampling data being processed with the sampling data collected in the immediately preceding sampling period, and determines whether the sampling data being processed is continuous.

ここで、サンプリングデータが連続したものとは、(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 sampling apparatus 100 compares the CPU number and operation function of the sampling data being processed with the CPU number and operation function of the sampling data collected in the immediately preceding sampling cycle. The sampling apparatus 100 can determine whether the sampling data is continuous in time series order by determining the coincidence of both CPU numbers and operation functions.

また、例えば、サンプリング装置100は、処理中のサンプリングデータのPID及び命令アドレスと直前のサンプリング周期で採取されたサンプリングデータのPID及び命令アドレスとを比較する。サンプリング装置100は、両者のPID及び命令アドレスの一致を判定することにより、時系列順に連続したサンプリングデータであるかを判定できる。   Further, for example, the sampling apparatus 100 compares the PID and instruction address of the sampling data being processed with the PID and instruction address of the sampling data collected in the immediately preceding sampling cycle. The sampling apparatus 100 can determine whether the sampling data is continuous in chronological order by determining the coincidence of both PIDs and instruction addresses.

サンプリング装置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 sampling device 100 sets, for example, a predetermined area of the main storage unit 102. The count value of the continuous detection counter is incremented by “1”. Here, as a continuous detection counter set in a predetermined area of the main storage unit 102, the sampling device 100 holds, for example, the records of each row shown in the table of FIG. 5A in the predetermined area of the main storage unit 102. Just keep it. Then, the “continuous count” field in each row shown in FIG. 5A may be used as a continuous detection counter.

そして、サンプリング装置100は、計数値を所定の領域に格納する(S16)。なお、サンプリング装置100は、連続して一致するサンプリングデータを検出する度に連続検出カウンタのカウント値を「1」インクリメントし続けることで、サンプリングデータの動作関数(またはPID及び命令アドレス)の連続回数を計数できる。   Then, the sampling device 100 stores the count value in a predetermined area (S16). Note that the sampling device 100 continuously increments the count value of the continuous detection counter by “1” every time it detects the sampling data that coincides continuously, so that the number of times the operation function (or PID and instruction address) of the sampling data continues. Can be counted.

一方、サンプリング装置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 sampling device 100 converts the sampling data being processed to new sampling data. Is stored in a predetermined area of the main storage unit 102 (S14). For example, if the sampling apparatus 100 secures a predetermined area of the main storage unit 102 in the same format as the record of each row shown in the table of FIG. 5A and sets the initial value to 1 in the “continuous number of times” field. Good.

なお、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 sampling apparatus 100 may, for example, store the predetermined data in the main storage unit 102. The count value of the continuous detection counter set in this area is incremented by “1” and the count value is stored in a predetermined area. On the other hand, when the PID and instruction address of the sampling data being processed do not match the PID and instruction address of the immediately preceding sampling data, the sampling apparatus 100 sets the sampling data being processed as new sampling data. What is necessary is just to store in the predetermined area | region of the main memory part 102. FIG.

ここで、サンプリング装置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 sampling apparatus 100 is an example of a detection step and a detection procedure. Further, the CPU 101 or the like of the sampling apparatus 100 executes the process of S13 as an example of a detection unit. Moreover, the process of S15 performed by the sampling apparatus 100 is an example of a counting step and a counting procedure. In addition, the CPU 101 and the like of the sampling device 100 execute the process of S15 as an example of a counting unit. Furthermore, the processes of S14 and S16 executed by the sampling apparatus 100 are an example of a recording step and a recording procedure. In addition, the CPU 101 and the like of the sampling device 100 execute the processes of S14 and S16 as an example of a recording unit.

なお、サンプリング装置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 sampling device 100 may add the attached identification information to the sampling information instead of the instruction address in S11. The attached identification information is information indicating that the function could not be specified from the address of the sampling information. As the attached identification information, the sampling apparatus 100 may create information for collecting instruction addresses such as “A” and “0” to create a sampling data record. The attached identification information for collecting the instruction addresses may be identified from the function identification information specified in S12. In this case, the process of S11 executed by the sampling device 100 is an example of an attached identification information adding step and an attached identification information adding procedure. In addition, the CPU 101 and the like of the sampling device 100 execute the process of S11 as an example of an attached identification information adding unit.

S17では、サンプリング装置100は、対象プログラムの動作実行の終了を判定し、動作実行が終了でなければS8に移行し(S17、No)、S8−S17の処理を繰り返す。一方、サンプリング装置100は、対象プログラムの動作実行が終了の場合(S17、Yes)には、サンプリングデータの記録処理を終了する。   In S17, the sampling apparatus 100 determines the end of the operation execution of the target program. If the operation execution is not ended, the sampling apparatus 100 proceeds to S8 (S17, No), and repeats the processing of S8-S17. On the other hand, the sampling device 100 ends the sampling data recording process when the operation execution of the target program is ended (S17, Yes).

以上、説明したように、本実施形態のサンプリングデータの記録処理では、サンプリングデータの動作関数がサンプリングされた時系列順に連続する場合には、サンプリングデータに替えて連続回数を記憶するため、(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 sampling apparatus 100 may divide the target program into basic blocks corresponding to the branch destination of the branch instruction. The sampling apparatus 100 may create a classification table including basic block identification information, the address of the first instruction of the basic block, and the address of the last instruction of the basic block.

そして、サンプリング装置100は、対象となるプログラムの実行期間中に、採取したサンプリングデータのアドレスが基本ブロックの先頭アドレスと末端アドレスとの間にあるか否かを判定し、サンプリングデータに対応する基本ブロックの識別情報を付与すればよい。基本ブロックの識別情報を付与する手順は、上記実施形態において関数の識別情報を付与を付与する手順と同様である。   Then, the sampling device 100 determines whether the address of the collected sampling data is between the head address and the end address of the basic block during the execution period of the target program, and the basic corresponding to the sampling data What is necessary is just to give the identification information of a block. The procedure for assigning basic block identification information is the same as the procedure for assigning function identification information in the above embodiment.

サンプリング装置100は、基本ブロックの識別情報の計数値を記録することにより、関数よりもきめ細かいサンプリングデータの計数値を収集することができる。   The sampling apparatus 100 can collect the count value of the sampling data finer than the function by recording the count value of the identification information of the basic block.

《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
<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 appendix 1, wherein in the recording step, the obtained function identification information and the number of times the function identification information is sampled are recorded.

(付記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 appendix 2, for further executing the step of creating the function information table for a function whose sampling number of identification information of the function satisfies a predetermined criterion.

(付記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 appendix 2 or 3, which is recorded.

(付記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 appendix 6 or 7, which is recorded.

(付記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 appendix 9, wherein the recording unit records the acquired function identification information and the number of times the function identification information is sampled.

(付記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 appendix 10, further comprising means for creating the function information table for a function whose sampling number of identification information of the function satisfies a predetermined criterion.

(付記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 appendix 10 or 11, which is recorded.

100 サンプリング装置
101 CPU
102 主記憶部
103 補助記憶部
104 通信部
110 第1サンプリング処理部
120 動作関数特定部
130 頻度算出部
140 関数情報表作成部
150 第2サンプリング処理部
160 連続検出部
170 収集データ記憶部
200 記憶装置
210 サンプリングDB
220 動作関数DB
230 関数情報DB
100 Sampling device 101 CPU
102 main storage unit 103 auxiliary storage unit 104 communication unit 110 first sampling processing unit 120 operation function specifying unit 130 frequency calculation unit 140 function information table creation unit 150 second sampling processing unit 160 continuous detection unit 170 collected data storage unit 200 storage device 210 Sampling DB
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:
JP2012258359A 2012-11-27 2012-11-27 Sampling program, sampling method and information processing apparatus Active JP5974856B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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