JP2016143146A - Auto-resource logging system, auto-resource logging method, and program - Google Patents

Auto-resource logging system, auto-resource logging method, and program Download PDF

Info

Publication number
JP2016143146A
JP2016143146A JP2015016976A JP2015016976A JP2016143146A JP 2016143146 A JP2016143146 A JP 2016143146A JP 2015016976 A JP2015016976 A JP 2015016976A JP 2015016976 A JP2015016976 A JP 2015016976A JP 2016143146 A JP2016143146 A JP 2016143146A
Authority
JP
Japan
Prior art keywords
logging
code
measurement
terminal
measurement section
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.)
Granted
Application number
JP2015016976A
Other languages
Japanese (ja)
Other versions
JP6247237B2 (en
Inventor
篤史 外山
Atsushi Toyama
篤史 外山
啓介 小西
Keisuke Konishi
啓介 小西
俊之 森谷
Toshiyuki Moriya
俊之 森谷
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015016976A priority Critical patent/JP6247237B2/en
Publication of JP2016143146A publication Critical patent/JP2016143146A/en
Application granted granted Critical
Publication of JP6247237B2 publication Critical patent/JP6247237B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To easily manage a measurement section for performing performance evaluation of software, and to easily embed a logging code in the software, and to reduce measurement overhead.SOLUTION: A build server 30 for performing pre-processing of receiving a source code SC from terminal equipment 20, and embedding a logging code LC therein includes: a measurement section storage part 30d for storing the measurement section of the source code SC corresponding to the software for performing performance measurement of the software to be executed by the terminal equipment 20; a logging code storage part 30f for storing the logging code LC for performing the performance measurement; and a pre-processing function part 30c for executing pre-processing process of acquiring the stored measurement section, and acquiring the logging code LC for instructing the output of a log by measurement for performance evaluation in the measurement section from the logging code storage part 30f, and embedding the logging code LC in the source code SC.SELECTED DRAWING: Figure 1

Description

本発明は、ソフトウェアの性能評価を行うために、評価対象のソフトウェア自体に、性能評価に必要なログを出力するためのロギングコードを埋め込むことが可能なオートリソースロギングシステム、オートリソースロギング方法及びプログラムに関する。   The present invention relates to an auto resource logging system, an auto resource logging method, and a program capable of embedding a logging code for outputting a log necessary for performance evaluation in the evaluation target software itself in order to perform software performance evaluation About.

現状では、ソフトウェアの後述する性能評価を行うために必要な上述したロギングコードの埋め込みを行う場合、性能計測のためのプログラムに基づくロギングコード(文字列)を人が設計し、この設計されたロギングコードをソフトウェアに埋め込む等の手法が取られている。性能評価とは、メモリの空き容量をチェックしたり、プログラムがCPU(Central Processing Unit)リソース(使用可能量)を使用する際のプログラムカウンタをチェックしたりすることである。   At present, when embedding the above-mentioned logging code necessary for performance evaluation of the software described later, a person designs a logging code (character string) based on a performance measurement program, and this designed logging Techniques such as embedding code in software are taken. The performance evaluation means checking the free capacity of the memory or checking a program counter when the program uses a CPU (Central Processing Unit) resource (usable amount).

また、性能評価のために、プログラムカウンタにより、CPUクロック消費量を求めたり、メモリの解放容量を検出して、メモリの空き容量を求めたりする手法も取られている。この内容を含む従来技術として特許文献1に記載のものがある。   In addition, for performance evaluation, a method of obtaining a CPU clock consumption by a program counter or detecting a memory free capacity to obtain a free memory capacity is also used. There exists a thing of patent document 1 as a prior art containing this content.

特開2010−117757号公報JP 2010-117757 A

ところで、ソフトウェアにロギングコードを埋め込む場合、埋め込み個所が多くなるケースが多々ある。この多くの埋め込み個所にロギングコードが存在するため、ソフトウェアの性能評価のための計測区間が管理し難くなるという問題がある。   By the way, when the logging code is embedded in the software, there are many cases where the number of embedded portions increases. Since logging codes exist in many of these embedding locations, there is a problem that it becomes difficult to manage the measurement section for software performance evaluation.

また、ロギングコードを人が設計してソフトウェアに埋め込む必要があるので、ロギングコードの埋め込みに手間が掛かるという問題がある。   Further, since it is necessary for a person to design the logging code and embed it in the software, there is a problem that it takes time to embed the logging code.

更に、プロファイラによるソフトウェアの性能計測では、関数単位の時間計測しか行えない。自動で全ての関数について計測してしまうため、性能計測のための処理が増加してしまう。言い換えれば、性能を計測するためのプログラムによる計測オーバーヘッドが増加するという問題がある。   Furthermore, software performance measurement using a profiler can only perform time measurement in units of functions. Since all functions are automatically measured, processing for performance measurement increases. In other words, there is a problem that measurement overhead due to a program for measuring performance increases.

本発明は、このような背景に鑑みてなされたものであり、ソフトウェアの性能評価のための計測区間を容易に管理することができ、ソフトウェアへのロギングコードの埋め込みを容易に行うことができ、計測オーバーヘッドを減少させることができるオートリソースロギングシステム、オートリソースロギング方法及びプログラムを提供することを課題とする。   The present invention was made in view of such a background, can easily manage the measurement section for software performance evaluation, can easily embed the logging code in the software, It is an object of the present invention to provide an auto resource logging system, an auto resource logging method, and a program capable of reducing measurement overhead.

前記した課題を解決するため、請求項1に記載の発明は、端末機と、前記端末機からソースコードを受信してロギングコードを埋め込むプリプロセッシングを行うビルドサーバとを備えたオートリソースロギングシステムであって、前記ビルドサーバは、前記端末機で実行されるソフトウェアの性能評価を行うための、当該ソフトウェアに対応するソースコードの計測区間を記憶する計測区間記憶部と、前記ソースコード内で性能計測を行うためのロギングコードが記憶されたロギングコード記憶部と、前記計測区間記憶部に記憶された計測区間を取得し、この取得した計測区間での性能評価のための計測によるログを出力する命令を行うロギングコードを、前記ロギングコード記憶部から取得し、この取得したロギングコードを、前記端末機から受信したソースコードに埋め込むプリプロセッシング処理を実行するプリプロセッシング機能部と、を備えることを特徴とするオートリソースロギングシステムである。   In order to solve the above-described problem, an invention according to claim 1 is an auto resource logging system including a terminal and a build server that receives a source code from the terminal and performs preprocessing to embed a logging code. The build server includes a measurement section storage unit that stores a measurement section of a source code corresponding to the software for performance evaluation of software executed on the terminal, and a performance measurement in the source code. A logging code storage unit for storing a logging code for performing the operation, and a command for acquiring a measurement section stored in the measurement section storage unit and outputting a log of measurement for performance evaluation in the acquired measurement section The logging code for performing is acquired from the logging code storage unit, and the acquired logging code is , A pre-processing functional unit for executing the preprocessing process of embedding the source code received from a automatic resource logging system, characterized in that it comprises a.

この構成によれば、ソースコードに対応するソフトウェアの性能評価のための計測区間を容易に管理することができる。また、ソフトウェアへのロギングコードの埋め込みを容易に行うことができる。更に、端末機のユーザが指定する任意の区間のみの計測が可能となるので、計測オーバーヘッドを最小化できる。言い換えれば、計測オーバーヘッドを減少させることができる。   According to this configuration, it is possible to easily manage a measurement section for software performance evaluation corresponding to the source code. Also, the logging code can be easily embedded in the software. Furthermore, since measurement is possible only in an arbitrary section designated by the user of the terminal, measurement overhead can be minimized. In other words, measurement overhead can be reduced.

請求項2に係る発明は、請求項1において、前記ロギングコードは、前記ソフトウェアの前記計測区間のクロック数を計測するコードを有することを特徴とする請求項1に記載のオートリソースロギングシステムである。   The invention according to claim 2 is the auto resource logging system according to claim 1, wherein the logging code includes a code for measuring the number of clocks of the measurement section of the software. .

この構成によれば、端末機のCPUクロック消費量を検出することができるので、プログラム(ソフトウェア)がどれだけCPUリソースを消費したかを把握することができる。   According to this configuration, since the CPU clock consumption of the terminal can be detected, it is possible to grasp how much CPU resources are consumed by the program (software).

請求項3に係る発明は、請求項1又は2において、前記ビルドサーバは、前記端末機から指定された前記計測区間のログを出力する条件としての出力閾値を記憶する閾値記憶部を更に備え、前記プリプロセッシング機能部は、前記計測区間を取得した際に、前記閾値記憶部に記憶された出力閾値も取得し、この取得した計測区間で尚且つ出力閾値以上のサイズのログを出力するためのロギングコードを、前記ソースコードに埋め込む処理を実行することを特徴とする請求項1又は2に記載のオートリソースロギングシステムである。   The invention according to claim 3 is the invention according to claim 1 or 2, further comprising a threshold storage unit that stores an output threshold as a condition for outputting a log of the measurement section designated from the terminal, When the preprocessing function unit acquires the measurement section, the preprocessing function unit also acquires an output threshold stored in the threshold storage unit, and outputs a log having a size equal to or larger than the output threshold in the acquired measurement section. The auto resource logging system according to claim 1 or 2, wherein a process of embedding a logging code in the source code is executed.

この構成によれば、ソフトウェアの区間計測時のログのサイズが、出力閾値で制限されるので、例えば、出力閾値を3MB(メガバイト)に設定すると、3MB未満のサイズのログは出力されず、3MB以上のログが出力されるようになる。このため、出力閾値を大きく(例えば8MB)しておけば、ノイズのような小容量のログは出力されない。また、出力閾値を「異常な値」と設定しておけば、出力閾値以上のサイズのログが出力された際に、異常と判定することが可能となる。   According to this configuration, the log size at the time of software section measurement is limited by the output threshold value. For example, if the output threshold value is set to 3 MB (megabytes), a log having a size less than 3 MB is not output. The above log will be output. For this reason, if the output threshold is increased (for example, 8 MB), a small-capacity log such as noise is not output. Also, if the output threshold is set to “abnormal value”, it is possible to determine that the log is abnormal when a log having a size larger than the output threshold is output.

請求項4に係る発明は、請求項1において、前記プリプロセッシング機能部は、前記計測区間記憶部に記憶された前記計測区間の指定がメソッド単位である場合、計測区間の呼び出し元プログラムの命令を受けて、計測対象の計測区間を有する複数の下位モジュールに対して、間接的に区間計測を可能とするプログラムを更に備えることを特徴とする請求項1に記載のオートリソースロギングシステムである。   According to a fourth aspect of the present invention, in the first aspect, the preprocessing function unit, when the measurement interval stored in the measurement interval storage unit is a method unit, outputs the instruction of the calling program of the measurement interval. The auto resource logging system according to claim 1, further comprising a program that indirectly enables section measurement for a plurality of lower modules having a measurement section to be measured.

この構成によれば、計測区間の呼び出し元プログラムが1回の命令を行えば、間接的に区間計測を可能とするプログラムにより、複数の下位モジュールに対して区間計測を行うことができる。   According to this configuration, if the calling program of the measurement section performs one instruction, the section measurement can be performed on a plurality of lower modules by the program that enables the section measurement indirectly.

請求項5に係る発明は、請求項1〜4の何れか1項において、前記プリプロセッシング機能部は、前記ロギングコードによる区間計測のために必要な命令による区間計測実行時のオーバーヘッドを事前に計測し、この計測オーバーヘッドを用いて、前記端末機による実行ファイルの実行時に得られる計測結果を補正可能とするロギングコードを、前記ソースコードに埋め込むことを特徴とする請求項1〜4の何れか1項に記載のオートリソースロギングシステムである。   A fifth aspect of the present invention provides the method according to any one of the first to fourth aspects, wherein the preprocessing function unit measures in advance the overhead at the time of section measurement execution by an instruction necessary for section measurement by the logging code. Then, a logging code that can correct a measurement result obtained when the execution file is executed by the terminal is embedded in the source code using the measurement overhead. The auto resource logging system described in the section.

この構成によれば、次のような作用効果が得られる。性能評価対象のソフトウエアにおいて、性能評価のために取得した計測区間の実際のクロック数に対して、区間計測時のクロック数は計測コードの実行にかかるクロック数分ずれており、このずれが計測オーバーヘッドである。例えば、実行ファイル実行時に得られる計測結果から計測オーバーヘッドを減算することにより、その計測結果を補正することができる。   According to this configuration, the following operational effects can be obtained. In the software subject to performance evaluation, the number of clocks at the time of section measurement is shifted by the number of clocks required to execute the measurement code with respect to the actual number of clocks of the measurement section acquired for performance evaluation. Overhead. For example, the measurement result can be corrected by subtracting the measurement overhead from the measurement result obtained when executing the executable file.

請求項6に係る発明は、前記ビルドサーバは、前記ロギングコードを埋め込んだソースコードをコンパイルして、コンピュータが処理可能な実行ファイルに変換するコンパイル機能部を更に備え、前記端末機は、前記実行ファイルを実行することを特徴とする請求項1に記載のオートリソースロギングシステムである。   The invention according to claim 6 further includes a compile function unit that compiles the source code in which the logging code is embedded, and converts the source code into an executable file that can be processed by a computer. The auto resource logging system according to claim 1, wherein the file is executed.

この構成によれば、端末機が、ソフトウェアの計測区間において、クロック数計測によるCPUクロック消費量を検出することができるので、プログラム(ソフトウェア)がどれだけCPUリソースを消費したかを把握することができる。また、同計測区間において、出力閾値以上のログのサイズを検出できるので、メモリの異常な解放を検出することができる。これにより、データ異常やプロセス異常を発見することができるので、ソフトウェアのバグ検出を行うことができる。   According to this configuration, since the terminal can detect the CPU clock consumption by measuring the number of clocks in the software measurement section, it is possible to grasp how much CPU resources are consumed by the program (software). it can. In addition, since the log size equal to or larger than the output threshold value can be detected in the same measurement section, abnormal memory release can be detected. This makes it possible to detect data abnormalities and process abnormalities, so that software bugs can be detected.

請求項7に係る発明は、端末機と、前記端末機からソースコードを受信してロギングコードを埋め込むプリプロセッシングを行うビルドサーバとを備えたオートリソースロギングシステムのオートリソースロギング方法であって、前記ビルドサーバは、前記端末機で実行されるソフトウェアの性能評価を行うための、当該ソフトウェアに対応するソースコードの計測区間を記憶する第1ステップと、前記ソースコード内で性能計測を行うためのロギングコードを記憶する第2ステップと、前記第1ステップで記憶された計測区間を取得し、この取得した計測区間での性能評価のための計測によるログを出力する命令を行うロギングコードを、前記第2ステップで記憶されたロギングコードから取得し、この取得したロギングコードを、前記端末機から受信したソースコードに埋め込むプリプロセッシング処理を実行する第3ステップを実行することを特徴とするオートリソースロギング方法。   The invention according to claim 7 is an auto resource logging method of an auto resource logging system comprising a terminal and a build server that receives a source code from the terminal and performs preprocessing to embed a logging code, The build server has a first step of storing a measurement section of source code corresponding to the software for performing performance evaluation of software executed on the terminal, and logging for performing performance measurement in the source code A second step of storing a code; and a logging code for executing a command to output a log of measurement for performance evaluation in the acquired measurement section, and acquiring the measurement section stored in the first step. Obtained from the logging code stored in two steps, and the obtained logging code is Auto resource logging method characterized by performing the third step of performing a pre-processing process of embedding the source code received from the machine.

この方法によれば、ソースコードに対応するソフトウェアの性能評価のための計測区間を容易に管理することができる。また、ソフトウェアへのロギングコードの埋め込みを容易に行うことができる。更に、端末機のユーザが指定する任意の区間のみの計測が可能となるので、計測オーバーヘッドを減少させることができる。   According to this method, it is possible to easily manage a measurement section for software performance evaluation corresponding to the source code. Also, the logging code can be easily embedded in the software. Furthermore, since only an arbitrary section designated by the user of the terminal can be measured, the measurement overhead can be reduced.

請求項8に係る発明は、請求項7に記載のオートリソースロギング方法を、前記ビルドサーバとしてのコンピュータに実行させるためのプログラムである。   The invention according to claim 8 is a program for causing a computer as the build server to execute the auto resource logging method according to claim 7.

このプログラムによれば、ソースコードに対応するソフトウェアの性能評価のための計測区間を容易に管理することができる。また、ソフトウェアへのロギングコードの埋め込みを容易に行うことができる。更に、端末機のユーザが指定する任意の区間のみの計測が可能となるので、計測オーバーヘッドを減少させることができる。   According to this program, it is possible to easily manage a measurement section for software performance evaluation corresponding to the source code. Also, the logging code can be easily embedded in the software. Furthermore, since only an arbitrary section designated by the user of the terminal can be measured, the measurement overhead can be reduced.

本発明によれば、ソフトウェアの性能評価のための計測区間を容易に管理することができ、ソフトウェアへのロギングコードの埋め込みを容易に行うことができ、計測オーバーヘッドを減少させることができるオートリソースロギングシステム、オートリソースロギング方法及びプログラムを提供することができる。   According to the present invention, it is possible to easily manage a measurement section for software performance evaluation, to easily embed a logging code in software, and to reduce measurement overhead. A system, an auto resource logging method, and a program can be provided.

本発明の実施形態に係るオートリソースロギングシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the auto resource logging system which concerns on embodiment of this invention. 端末機、ビルドサーバ及び管理サーバによる通信を行うためのアカウント情報の登録や認証等の処理を説明するためのシーケンス図である。It is a sequence diagram for demonstrating processes, such as registration of the account information for performing communication by a terminal, a build server, and a management server, authentication. 本実施形態に係るオートリソースロギングシステムの動作説明を行うためのブロック図である。It is a block diagram for demonstrating operation | movement of the auto resource logging system which concerns on this embodiment. メモリ解放CSVの一例を示す図である。It is a figure which shows an example of memory release CSV. 計測区間情報の具体的な一例を示す図である。It is a figure which shows a specific example of measurement area information. ロギングコード記憶部に記憶されるロギングコードの一例を示す第1の図である。It is a 1st figure which shows an example of the logging code memorize | stored in a logging code memory | storage part. ロギングコード記憶部に記憶されるロギングコードの一例を示す第2の図である。図である。It is a 2nd figure which shows an example of the logging code memorize | stored in a logging code memory | storage part. FIG. プリプロセッシング機能部がロギングコードをソースコードに埋め込む際のロギング埋込の具体例を説明するための図である。It is a figure for demonstrating the specific example of logging embedding when a preprocessing function part embeds a logging code in a source code. CPUクロック消費量の直接計測時に、ソースコードに埋め込まれるロギングコードの一例を示す第1の図である。It is a 1st figure which shows an example of the logging code embedded in a source code at the time of direct measurement of CPU clock consumption. CPUクロック消費量の直接計測時に、ソースコードに埋め込まれるロギングコードの一例を示す第2の図である。It is a 2nd figure which shows an example of the logging code embedded in a source code at the time of direct measurement of CPU clock consumption. CPUクロック消費量の直接計測時において、プリプロセッシング機能部がロギングコードをソースコードに埋め込む際のロギング埋込の具体例を説明するための図である。It is a figure for demonstrating the specific example of logging embedding when a preprocessing function part embeds a logging code in a source code at the time of direct measurement of CPU clock consumption. オーバーヘッドベンチマーク機能コードによるシングルトンの仕組みを説明するためのブロック図である。It is a block diagram for demonstrating the mechanism of the singleton by an overhead benchmark function code. 計測オーバーヘッドの一例を示す第1の図である。It is a 1st figure which shows an example of a measurement overhead. 計測オーバーヘッドの一例を示す第2の図である。It is a 2nd figure which shows an example of a measurement overhead. 消費クロックの一例を示す図である。It is a figure which shows an example of a consumption clock. オートリソースロギング処理によって、端末機におけるメモリの異常な解放の検出を行う際の動作を説明するためのフローチャートである。6 is a flowchart for explaining an operation when detecting abnormal release of memory in a terminal by auto resource logging processing; オートリソースロギング処理によって、端末機におけるCPUクロック消費量の直接計測による検出を行う際の動作を説明するためのフローチャートである。7 is a flowchart for explaining an operation when performing detection by direct measurement of CPU clock consumption in a terminal by auto resource logging processing. プリプロセッシング機能部がCPUクロック消費量を間接計測で検出する際の構成を示す図である。It is a figure which shows the structure at the time of a preprocessing function part detecting CPU clock consumption by indirect measurement. CPUクロック消費量の間接計測時において、プリプロセッシング機能部がロギングコードをソースコードに埋め込む際のロギング埋込の具体例を説明するための図である。It is a figure for demonstrating the specific example of logging embedding at the time of indirect measurement of CPU clock consumption, when a preprocessing function part embeds a logging code in a source code.

以下、本発明の実施形態を、図面を参照して説明する。
<実施形態の構成>
図1は、本発明の実施形態に係るオートリソースロギングシステムの構成を示すブロック図である。
図1に示すオートリソースロギングシステム10(単に、システム10ともいう)は、ユーザ端末機20と、ビルドサーバ30と、アカウント管理サーバ40とを備え、ソフトウェアにロギングコードを埋め込むロギング埋込を行うプリプロセッシング処理(前処理)を行うものである。ロギング埋込の処理は、端末機20に当該ソフトウェアを実行させる前に行われる。この処理を、オートリソースロギング処理という。ロギング埋込の処理内容については、後述する。
Embodiments of the present invention will be described below with reference to the drawings.
<Configuration of Embodiment>
FIG. 1 is a block diagram showing a configuration of an auto resource logging system according to an embodiment of the present invention.
1 includes a user terminal 20, a build server 30, and an account management server 40. The auto resource logging system 10 (also simply referred to as the system 10) shown in FIG. Processing (pre-processing) is performed. The logging embedding process is performed before the terminal 20 executes the software. This process is called auto resource logging process. The details of the logging embedding process will be described later.

ユーザ端末機20、ビルドサーバ30及びアカウント管理サーバ40は、有線や無線回線によるインターネット回線で接続されている。なお、アカウント管理サーバ40を管理サーバ40ともいい、ユーザ端末機20を端末機20ともいう。   The user terminal 20, the build server 30, and the account management server 40 are connected to each other via a wired or wireless internet line. The account management server 40 is also referred to as the management server 40, and the user terminal 20 is also referred to as the terminal 20.

端末機20は、システム10のユーザが、アカウント情報の登録、更新、削除や認証(又は特定)要求等の各種操作を行う通信機能付のコンピュータである。この端末機20は、通信に係る処理を行う送受信部20a及びアカウント要求応答部20bと、本発明の特徴構成要素の実行ファイル実行処理部20cと、ソースコード記憶部20d、オーバーヘッド記憶部20e及びCSV記憶部20fを有する外部記憶部20gとを備える。なお、アカウント情報は、ユーザが、インターネット上のサーバやコンピュータへのログインを行う権利を得るための情報であり、ユーザのユーザID(Identification)やパスワードを含むものである。   The terminal device 20 is a computer with a communication function that allows the user of the system 10 to perform various operations such as account information registration, update, deletion, and authentication (or identification) request. The terminal 20 includes a transmission / reception unit 20a and an account request response unit 20b that perform processing related to communication, an execution file execution processing unit 20c that is a characteristic component of the present invention, a source code storage unit 20d, an overhead storage unit 20e, and a CSV. An external storage unit 20g having a storage unit 20f. The account information is information for the user to obtain the right to log in to a server or computer on the Internet, and includes the user ID (Identification) and password of the user.

ビルドサーバ30は、端末機20からソースコードSCを受信し、性能評価対象のソフトウェア(プログラム)にロギングコードLCを埋め込むプリプロセッシングを行うサーバである。このビルドサーバ30は、通信に係る処理を行う送受信部30a及びアカウント要求応答部30bと、本発明の特徴であるオートリソースロギング処理に係るプリプロセッシング機能部30cと、計測区間記憶部30dと、閾値記憶部30eと、ロギングコード記憶部30fと、コンパイル機能部30hとを備える。   The build server 30 is a server that receives the source code SC from the terminal 20 and performs preprocessing for embedding the logging code LC in the performance evaluation target software (program). The build server 30 includes a transmission / reception unit 30a and an account request response unit 30b that perform processing related to communication, a preprocessing function unit 30c related to auto resource logging processing that is a feature of the present invention, a measurement interval storage unit 30d, a threshold value A storage unit 30e, a logging code storage unit 30f, and a compile function unit 30h are provided.

管理サーバ40は、ユーザのアカウント情報の登録、更新、削除や認証等を行ってアカウントの管理を行うサーバであり、送受信部40a及びアカウント管理処理部40bを備える。   The management server 40 is a server that manages the account by registering, updating, deleting, authenticating, and the like of user account information, and includes a transmission / reception unit 40a and an account management processing unit 40b.

ここで、端末機20、ビルドサーバ30及び管理サーバ40における通信を行うための処理であるアカウント情報の登録、更新、削除や認証等の各種処理について説明する。   Here, various processes such as registration, update, deletion and authentication of account information, which are processes for performing communication in the terminal 20, the build server 30, and the management server 40, will be described.

端末機20において、送受信部20aは、ユーザのアカウント登録や認証に係るアカウント情報並びに、その他、後述のようにビルドサーバ30との間で遣り取りされる各種情報を送受信する。
アカウント要求応答部20bは、ユーザのアカウント情報をビルドサーバ30を介して管理サーバ40へ登録、更新、削除や認証する要求の制御を行うと共に、管理サーバ40からビルドサーバ30を介して返信されてきたアカウント登録、更新、削除や認証の応答結果を表示する制御を行う。
In the terminal device 20, the transmission / reception unit 20 a transmits and receives account information related to user account registration and authentication, and other various information exchanged with the build server 30 as described later.
The account request response unit 20 b controls requests for registering, updating, deleting, and authenticating user account information to the management server 40 via the build server 30, and returns a response from the management server 40 via the build server 30. Control to display the response result of the registered account, update, delete and authentication.

ビルドサーバ30において、送受信部30aは、端末機20又は管理サーバ40との間で遣り取りされる各種情報を送受信する。
アカウント要求応答部30bは、端末機20から送信されてきた登録要求情報に応じて、管理サーバ40にアカウント登録要求を行い、この登録要求に応じて管理サーバ40から返信されてきた登録応答情報を、端末機20へ送信する。また、アカウント要求応答部30bは、端末機20から送信されてきた認証要求情報に応じて、管理サーバ40にアカウント認証要求を行い、この認証要求に応じて管理サーバ40から返信されてきた認証応答情報を、端末機20へ送信する。
In the build server 30, the transmission / reception unit 30 a transmits and receives various information exchanged with the terminal 20 or the management server 40.
The account request response unit 30b makes an account registration request to the management server 40 in accordance with the registration request information transmitted from the terminal 20, and receives the registration response information returned from the management server 40 in response to the registration request. To the terminal 20. The account request response unit 30b makes an account authentication request to the management server 40 in accordance with the authentication request information transmitted from the terminal 20, and the authentication response returned from the management server 40 in response to the authentication request. Information is transmitted to the terminal 20.

管理サーバ40において、送受信部40aは、ビルドサーバ30との間で、上述したような各種情報を送受信する。
アカウント管理処理部40bは、アカウント情報に含まれるユーザIDやパスワードを事前登録する処理、ユーザIDに紐づきユーザ情報を更新する処理、ユーザIDに紐づきユーザ情報を削除する処理、ユーザID及びパスワードを用いてユーザの特定を行うアカウント認証の処理を行う。
In the management server 40, the transmission / reception unit 40a transmits / receives various kinds of information as described above to / from the build server 30.
The account management processing unit 40b is a process of pre-registering a user ID and password included in account information, a process of updating user information associated with the user ID, a process of deleting user information associated with the user ID, a user ID and a password The account authentication process for specifying the user is performed.

端末機20、ビルドサーバ30及び管理サーバ40による通信を行うためのアカウント情報の登録や認証等の処理について、図2に示すシーケンス図を参照して詳細に説明する。   Processing such as registration and authentication of account information for communication by the terminal 20, the build server 30, and the management server 40 will be described in detail with reference to the sequence diagram shown in FIG.

図2において、端末機20のアカウント要求応答部20b(図1)は、ステップS1,S2に示すように、ユーザのアカウント情報をビルドサーバ30を介して管理サーバ40へ登録する要求制御(アカウント登録要求)を行う。これに応じて、ステップS3に示すように、管理サーバ40がそのユーザのアカウント情報を登録する。管理サーバ40は、そのアカウント登録の結果を、ステップS4,S5に示すようにビルドサーバ30を介して端末機20へ応答(アカウント登録応答)する。端末機20のアカウント要求応答部20bは、ステップS6に示すように、その返信されてきたアカウント登録結果を表示する。   In FIG. 2, the account request response unit 20 b (FIG. 1) of the terminal 20 requests control (account registration) for registering user account information to the management server 40 via the build server 30 as shown in steps S <b> 1 and S <b> 2. Request). In response to this, as shown in step S3, the management server 40 registers the account information of the user. The management server 40 responds (account registration response) to the terminal 20 via the build server 30 as shown in steps S4 and S5. The account request response unit 20b of the terminal 20 displays the returned account registration result as shown in step S6.

また、端末機20のアカウント要求応答部20bは、ステップS7,S8に示すように、ユーザのアカウント情報を認証する要求制御(アカウント認証要求)をビルドサーバ30を介して管理サーバ40へ行う。これに応じて、ステップS9に示すように、管理サーバ40がそのユーザのアカウント情報の認証を行う。管理サーバ40は、そのアカウント認証の結果を、ステップS10,S11に示すようにビルドサーバ30を介して端末機20へ応答(アカウント認証応答)する。端末機20のアカウント要求応答部20bは、ステップS12に示すように、その返信されてきたアカウント認証結果を、端末機20の図示せぬ画面に表示する。認証結果がOKであれば後述する次の処理へ進む。   Further, the account request response unit 20b of the terminal 20 performs request control (account authentication request) for authenticating user account information to the management server 40 via the build server 30, as shown in steps S7 and S8. In response to this, as shown in step S9, the management server 40 authenticates the account information of the user. The management server 40 returns the result of the account authentication to the terminal 20 via the build server 30 (account authentication response) as shown in steps S10 and S11. The account request response unit 20b of the terminal 20 displays the returned account authentication result on a screen (not shown) of the terminal 20 as shown in step S12. If the authentication result is OK, the process proceeds to the next process described later.

図1に戻って、端末機20の本発明の特徴構成要素について説明する。
ソースコード記憶部20dは、コンピュータでの処理が不可能なプログラミング言語で記述されたソースコードSCを記憶するものである。このソースコードSCには、後述するビルドサーバ30においてロギングコードLCが埋め込まれる。ロギングコードLCは、ソフトウェアの性能計測のためのプログラムに基づくコードであって、ソフトウェアの性能評価に必要なログを出力するためのコードである。
Returning to FIG. 1, the characteristic components of the terminal 20 according to the present invention will be described.
The source code storage unit 20d stores a source code SC described in a programming language that cannot be processed by a computer. In this source code SC, a logging code LC is embedded in a build server 30 described later. The logging code LC is a code based on a program for software performance measurement, and is a code for outputting a log necessary for software performance evaluation.

実行ファイル実行処理部20cは、ロギングコードLCが埋め込まれた実行ファイルEFを実行し、この結果得られるログである図3に示す後述のメモリ解放CSV(Comma-Separated Value)並びに消費クロックCSVを、外部記憶部20gのCSV記憶部20fに記憶するものである。外部記憶部20gは、図示せぬ外部装置とのアクセスが可能な記憶部である。なお、消費クロックとは、ロギングコードLC自体で性能計測のために消費してしまう、CPUに割り当てられたCPUクロックである。   The execution file execution processing unit 20c executes the execution file EF in which the logging code LC is embedded, and obtains a memory release CSV (Comma-Separated Value) and a consumption clock CSV, which will be described later, shown in FIG. The information is stored in the CSV storage unit 20f of the external storage unit 20g. The external storage unit 20g is a storage unit that can be accessed with an external device (not shown). The consumed clock is a CPU clock assigned to the CPU that is consumed for performance measurement by the logging code LC itself.

メモリ解放CSVは、メモリの解放情報(解放サイズの情報)をCSVで表したものであり、実行ファイル実行処理部20cに保持された実行ファイルEFの実行により、作動中のコンピュータとしての端末機20のCSV記憶部20fにメモリ解放CSVとして記憶されるものである。CSVは、必要なデータをデータ形式やファイル形式で表すフォーマットである。消費クロックCSVについては後述する。   The memory release CSV represents memory release information (release size information) in CSV, and the terminal 20 as a computer in operation by executing the execution file EF held in the execution file execution processing unit 20c. Stored in the CSV storage unit 20f as a memory release CSV. CSV is a format that represents necessary data in a data format or a file format. The consumed clock CSV will be described later.

メモリ解放CSVの一例を図4に示す。図4には、メモリ解放CSVの項目として、メモリアドレス、メモリサイズ、タイムスタンプ、ファイル名、クラス名、行番号があり、これら項目において、凡例及びデータ量を示した。なお、凡例及びデータ量の補足の説明内容も示した。   An example of the memory release CSV is shown in FIG. In FIG. 4, the memory release CSV items include a memory address, a memory size, a time stamp, a file name, a class name, and a line number, and a legend and a data amount are shown in these items. The supplementary explanation contents of the legend and the data amount are also shown.

図1に示すオーバーヘッド記憶部20eは、後述する計測オーバーヘッドOH(図3参照)を記憶するものである。   The overhead storage unit 20e shown in FIG. 1 stores measurement overhead OH (see FIG. 3) described later.

次に、ビルドサーバ30の本発明の特徴構成要素について説明する。
計測区間記憶部30dは、端末機20で指定されたソフトウェアの、計測区間情報(図3参照)を記憶するものである。なお、計測区間記憶部30dは、複数の計測区間情報を記憶できるようになっている。計測区間情報は、ソフトウェアの計測区間が、設定し易く管理が容易なテキスト形式等で表されている。
Next, the characteristic components of the present invention of the build server 30 will be described.
The measurement section storage unit 30d stores measurement section information (see FIG. 3) of software designated by the terminal 20. Note that the measurement section storage unit 30d can store a plurality of pieces of measurement section information. The measurement section information is expressed in a text format that is easy to set and manage the measurement section of the software.

計測区間情報の一例は、次の括弧内の通りである。括弧内は、(ファイル名,計測区間の先頭の行番号,計測区間の末尾の行番号)となっている。
(mainModule.cpp,135,207),
(mainModule.cpp,205,205),
(subModule.cpp,1092,1100),
....
An example of measurement section information is as follows in parentheses. The parentheses are (file name, first line number of measurement section, last line number of measurement section).
(MainModule.cpp, 135, 207),
(MainModule.cpp, 205, 205),
(SubModule.cpp, 1092, 1100),
. . . .

計測区間情報の具体的な一例を図5に示す。図5には、計測区間情報の項目として、ファイル名、計測区間先頭行番号、計測区間末尾行番号があり、これら項目において、凡例及びデータ量を示した。なお、凡例及びデータ量の補足の説明内容も示した。   A specific example of the measurement section information is shown in FIG. In FIG. 5, the measurement section information items include a file name, a measurement section start line number, and a measurement section end line number. In these items, a legend and a data amount are shown. The supplementary explanation contents of the legend and the data amount are also shown.

閾値記憶部30eは、ソフトウェアの性能評価のために出力されるログのサイズを制限する出力閾値(図3参照)を記憶するものである。例えば、出力閾値を3MBに設定すると、3MB未満のサイズのログは出力されず、3MB以上のログが出力されるようになる。例えば、メモリの解放サイズの小容量のものは、殆どがノイズであり、ログ出力させる必要はない。このため、出力閾値を大きく(例えば8MB)しておけば、ノイズのような小容量のメモリ解放情報はログ出力されないようになる。また、出力閾値を「異常な値」と設定しておけば、出力閾値以上のサイズのログが出力された際に、異常と判定することが可能となる。但し、これと逆に、出力閾値は、当該出力閾値を3MBに設定した場合に、3MB以下のサイズのログが出力され、3MB超のサイズのログは出力されないように定義してもよい。   The threshold storage unit 30e stores an output threshold (see FIG. 3) that limits the size of a log output for software performance evaluation. For example, when the output threshold is set to 3 MB, a log having a size of less than 3 MB is not output, and a log of 3 MB or more is output. For example, a small memory having a small memory release size is mostly noise and does not require log output. For this reason, if the output threshold value is increased (for example, 8 MB), a small amount of memory release information such as noise is not output as a log. Also, if the output threshold is set to “abnormal value”, it is possible to determine that the log is abnormal when a log having a size larger than the output threshold is output. However, on the contrary, the output threshold may be defined such that when the output threshold is set to 3 MB, a log having a size of 3 MB or less is output and a log having a size of more than 3 MB is not output.

出力閾値の一例は、次の括弧内の通りである。括弧内は、(ファイル名,出力値の下限,出力値の上限)となっている。但し、出力値の下限及び上限の指定なしは、空白となっている。
(mainModule.cpp,1350000, ),
(mainModule.cpp, ,2050000),
(subModule.cpp,10920000,11000000),
....
An example of the output threshold is as follows in parentheses. The parentheses are (file name, lower limit of output value, upper limit of output value). However, if the lower limit and upper limit of the output value are not specified, it is blank.
(MainModule.cpp, 1350000,),
(MainModule.cpp,, 2050000),
(SubModule.cpp, 10920000,11000000),
. . . .

ロギングコード記憶部30fは、図3に示す少なくとも1つ以上のロギングコードLCと、オーバーヘッドベンチマーク機能コード(ベンチマーク機能コードともいう)OBCとを記憶するものである。   The logging code storage unit 30f stores at least one or more logging codes LC shown in FIG. 3 and an overhead benchmark function code (also referred to as a benchmark function code) OBC.

そのロギングコードLCの一例を図6及び図7に示す。図6にはロギングコード(_ReleaseObject.h)LC1を、図7にはロギングコード(_ReleaseObject.cpp)LC2を示した。   An example of the logging code LC is shown in FIGS. FIG. 6 shows the logging code (_ReleaseObject.h) LC1, and FIG. 7 shows the logging code (_ReleaseObject.cpp) LC2.

図1に戻り、プリプロセッシング機能部30cは、メモリの大きな解放サイズを検出するために、ソフトウェアにロギングコードLCを埋め込むロギング埋込を行うプリプロセッシング処理を、端末機20に当該ソフトウェアを実行させる前に行うものである。   Returning to FIG. 1, the preprocessing function unit 30 c performs preprocessing processing for embedding logging in which the logging code LC is embedded in the software in order to detect a large memory release size before the terminal 20 executes the software. To do.

即ち、プリプロセッシング機能部30cは、図3に示すように、計測区間記憶部30dに記憶された計測区間の情報(計測区間情報)と、閾値記憶部30eに記憶された出力閾値とを取得する。更に、プリプロセッシング機能部30cは、その取得した計測区間で尚且つ出力閾値以上のサイズのログを出力するためのロギングコードLCを、ロギングコード記憶部30fから取得する。更に、プリプロセッシング機能部30cは、その取得したロギングコードLCを、端末機20のソースコード記憶部20dから受信したソースコードSCに埋め込むロギング埋込を行うプリプロセッシング処理を実行する。   That is, as shown in FIG. 3, the preprocessing function unit 30c acquires information on the measurement section (measurement section information) stored in the measurement section storage unit 30d and the output threshold stored in the threshold storage unit 30e. . Further, the preprocessing function unit 30c acquires a logging code LC for outputting a log having a size equal to or larger than the output threshold in the acquired measurement section from the logging code storage unit 30f. Further, the preprocessing function unit 30 c executes a preprocessing process for embedding the acquired logging code LC in the source code SC received from the source code storage unit 20 d of the terminal 20.

このロギング埋込の具体例を、図8を参照して説明する。図8に示すソースコードSCにおいて、矢印Y1で指し示す先頭の「Class::~Class(){」と、矢印Y2で指し示す末尾の「}」とはデストラクタである。デストラクタは、クラス名の先頭にチルダ「~」を付けた名前のメンバ関数であり、引数も戻り値も持たないものである。   A specific example of this logging embedding will be described with reference to FIG. In the source code SC shown in FIG. 8, the first “Class :: ˜Class () {” indicated by the arrow Y1 and the last “}” indicated by the arrow Y2 are destructors. A destructor is a member function with a tilde “~” in front of the class name, and has neither an argument nor a return value.

また、破線枠内の文字列はロギングコードLCであり、矢印Y3,Y4で指し示す「,」と「,」の間の文字列「abi::__cxa_demangle((typeid(*this)).name()」は関数である。この関数は、ソフトウェアの性能計測等を行うためのものである。   The character string in the broken line frame is the logging code LC, and the character string “abi :: __ cxa_demangle ((typeid (* this)). Name () between“, ”and“, ”indicated by arrows Y3 and Y4. "Is a function. This function is for measuring the performance of software.

ロギング埋込を行う場合、ステップ(1)において、ソースコードSCに、矢印Y1,Y2で指し示すデストラクタが記述されているか否かを、ソースコードSCの全てにおいて探索する。この探索は、チルダ「~」を検索することにより行う。   When logging embedding is performed, in step (1), the source code SC is searched for whether or not the destructor indicated by the arrows Y1 and Y2 is described in the source code SC. This search is performed by searching for a tilde “˜”.

ステップ(2)において、ソースコードSC内にデストラクタが記述されていた場合、先頭と末尾のデストラクタ間に、ロギングコードLCを埋め込む。
ステップ(3)において、対象のロギングコードLCの行頭に、「1回のみの読込命令」(例えば、#pragma once)が記述されていない場合、その#pragma onceを行頭に埋め込む。
In step (2), when a destructor is described in the source code SC, the logging code LC is embedded between the first and last destructors.
In step (3), if “reading instruction only once” (for example, #pragma once) is not described at the beginning of the target logging code LC, the #pragma once is embedded at the beginning of the line.

ステップ(4)において、対象のロギングコードLCの中に、「ヘッダファイル」(例えば、cxxabi.h)がインクルードされていない場合、#include <cxxabi.h>を、対象のロギングコードLCの中に埋め込む。但し、上記ステップ(3)の#pragma onceが行頭に存在する場合、その#pragma onceの次行に、#include <cxxabi.h>を埋め込む。   In step (4), if a “header file” (for example, cxxabi.h) is not included in the target logging code LC, #include <cxxabi.h> is included in the target logging code LC. Embed. However, if #pragma once in step (3) above is present at the beginning of the line, #include <cxxabi.h> is embedded in the line following #pragma once.

ステップ(5)において、対象のロギングコードLCの中に、上記ステップ(4)と異なる「ヘッダファイル」(例えば、sys/time.h)がインクルードされていない場合、#include <sys/time.h>を、対象のロギングコードLCの中に埋め込む。但し、上記ステップ(3)の#pragma once又は(4)のcxxabi.hが行頭に存在する場合、その#pragma once又はcxxabi.hの次行に、#include <sys/time.h>を埋め込む。   In step (5), if a “header file” (for example, sys / time.h) different from that in step (4) is not included in the target logging code LC, #include <sys / time.h > Is embedded in the target logging code LC. However, if #pragma once in step (3) or cxxabi.h in (4) exists at the beginning of the line, embed #include <sys / time.h> in the next line of #pragma once or cxxabi.h .

コンパイル機能部30hは、そのロギングコードLCが埋め込まれたソースコードSCをコンパイルして、コンピュータがプログラムとして解釈実行できる実行ファイルEFを生成し、この実行ファイルEFを端末機20へ出力する。   The compile function unit 30 h compiles the source code SC in which the logging code LC is embedded, generates an execution file EF that can be interpreted and executed by the computer as a program, and outputs the execution file EF to the terminal device 20.

実行ファイル実行処理部20cは、ロギングコードLCが埋め込まれた実行ファイルEFを実行処理する。この実行により、端末機20のソフトウェア上の指定された計測区間において、メモリの出力閾値(例えば3MB)以上のログが検出された場合、このログがメモリ解放CSVとして外部記憶部20gへ出力される。言い換えれば、メモリの異常な解放が検出される。   The execution file execution processing unit 20c executes the execution file EF in which the logging code LC is embedded. As a result of this execution, when a log greater than the memory output threshold (for example, 3 MB) is detected in the designated measurement section on the software of the terminal 20, this log is output to the external storage unit 20g as a memory release CSV. . In other words, an abnormal release of memory is detected.

このようにメモリの異常な解放を検出することにより、データ異常やプロセス異常を発見することができるので、ソフトウェアのバグ検出が可能となる。なお、プロセス異常とは、OS(Operating System)からメモリ領域等の割り当てを受けて処理を実行しているプログラムとしてのプロセスの異常をいう。マルチプロセスシステム(既存の電話系システム等)のプロセスは、プロセス毎にメモリ利用量に変動は無い傾向がある。しかし、これをシングルプロセスで実現した場合は、1プロセスで動作することもあり、データ数に応じて必要なメモリ容量がダイナミックに変動し、プロセス異常となるケースがある。   By detecting an abnormal release of the memory in this way, it is possible to detect a data abnormality or a process abnormality, so that a software bug can be detected. The process abnormality refers to an abnormality of a process as a program that executes processing upon receiving allocation of a memory area or the like from an OS (Operating System). In a process of a multi-process system (such as an existing telephone system), there is a tendency that the memory usage does not vary for each process. However, if this is realized by a single process, it may operate in one process, and the required memory capacity may dynamically change according to the number of data, resulting in a process abnormality.

次に、プリプロセッシング機能部30cは、後述するCPUクロック消費量の直接計測による検出を行うために、計測区間記憶部30dから計測区間を取得し、ソースコードSCにおける、その取得した計測区間の前後の行に、ロギングコード記憶部30fから取得したロギングコードLCのアセンブリコード(後述)を埋め込みする。一般的にロギングコードLCには、C++コードと、アセンブリコードとがあるので、本実施形態では、アセンブリコードを用いるようになっている。   Next, the preprocessing function unit 30c acquires a measurement section from the measurement section storage unit 30d in order to perform detection by direct measurement of CPU clock consumption, which will be described later, and before and after the acquired measurement section in the source code SC. The assembly code (described later) of the logging code LC acquired from the logging code storage unit 30f is embedded in the line. In general, the logging code LC includes a C ++ code and an assembly code. In this embodiment, the assembly code is used.

この際のロギングコードLCの一例を図9及び図10に示す。図9にはロギングコード(_ClockAssign.h)LC3を、図10にはロギングコード(_ClockAssign.cpp)LC4を示した。   An example of the logging code LC at this time is shown in FIGS. FIG. 9 shows a logging code (_ClockAssign.h) LC3, and FIG. 10 shows a logging code (_ClockAssign.cpp) LC4.

このロギング埋込の具体例を、図11を参照して説明する。図11に示すソースコードSCにおいて、矢印Y5で指し示す先頭の「Class::func(){」と、矢印Y6で指し示す末尾の「}」とはデストラクタである。   A specific example of this logging embedding will be described with reference to FIG. In the source code SC shown in FIG. 11, the first “Class :: func () {” indicated by the arrow Y5 and the last “}” indicated by the arrow Y6 are destructors.

また、破線枠内の文字列はロギングコードLCであり、破線枠AC0,AC1で囲んだ文字列は、ロギングコードLCのアセンブリコードである。   The character string in the broken line frame is the logging code LC, and the character string enclosed by the broken line frames AC0 and AC1 is the assembly code of the logging code LC.

ロギング埋込を行う場合、ステップ(11)において、計測区間記憶部30dに記憶された計測区間情報の、矢印Y7で指し示す計測対象の区間の前後に、破線枠AC0,AC1で囲むロギングコードLCのアセンブリコードを埋め込む。   When logging embedding is performed, in step (11), the logging code LC enclosed by the broken line frames AC0 and AC1 is placed before and after the measurement target section indicated by the arrow Y7 in the measurement section information stored in the measurement section storage unit 30d. Embed assembly code.

ステップ(12)において、対象のロギングコードLCの行頭に、「1回のみの読込命令」(例えば、#pragma once)が記述されていない場合、その#pragma onceを行頭に埋め込む。   In step (12), when “reading instruction only once” (for example, #pragma once) is not described at the beginning of the target logging code LC, the #pragma once is embedded at the beginning of the line.

ステップ(13)において、対象のロギングコードLCの中に、「ヘッダファイル」(例えば、cxxabi.h)がインクルードされていない場合、#include <cxxabi.h>を、対象のロギングコードLCの中に埋め込む。但し、上記ステップ(12)の#pragma onceが行頭に存在する場合、その#pragma onceの次行に、#include <cxxabi.h>を埋め込む。   In step (13), if “header file” (for example, cxxabi.h) is not included in the target logging code LC, #include <cxxabi.h> is included in the target logging code LC. Embed. However, if #pragma once in the above step (12) exists at the beginning of the line, #include <cxxabi.h> is embedded in the next line of the #pragma once.

ステップ(14)において、対象のロギングコードLCの中に、上記ステップ(13)と異なる「ヘッダファイル」(例えば、sys/time.h)がインクルードされていない場合、#include <sys/time.h>を、対象のロギングコードLCの中に埋め込む。但し、上記ステップ(2)の#pragma once又は(3)のcxxabi.hが行頭に存在する場合、その#pragma once又はcxxabi.hの次行に、#include <sys/time.h>を埋め込む。   In step (14), if a “header file” (for example, sys / time.h) different from that in step (13) is not included in the target logging code LC, #include <sys / time.h > Is embedded in the target logging code LC. However, if #pragma once in step (2) or cxxabi.h in (3) exists at the beginning of the line, embed #include <sys / time.h> in the next line of #pragma once or cxxabi.h .

プリプロセッシング機能部30cは、更に、ロギングコード記憶部30fからベンチマーク機能コードOBCを取得し、これをロギングコードLCと関連付けてソースコードSCに埋め込む。
ベンチマーク機能コードOBCは、後述する実行ファイル実行処理部20cによる実行ファイルEFの実行時に、ロギングコードLCによるソフトウェアの区間計測の命令実行時のオーバーヘッドを事前に計測し、この計測されたオーバーヘッド(計測オーバーヘッドOH)で、ソースコードSC上の区間計測結果を補正するコードである。
The preprocessing function unit 30c further acquires the benchmark function code OBC from the logging code storage unit 30f, and embeds it in the source code SC in association with the logging code LC.
The benchmark function code OBC measures in advance the overhead at the time of execution of the software section measurement instruction by the logging code LC when the execution file EF is executed by the execution file execution processing unit 20c described later, and the measured overhead (measurement overhead). OH) is a code for correcting the section measurement result on the source code SC.

ここで、計測オーバーヘッドOHについて説明する。性能評価対象のソフトウエアにおいて、性能評価のために取得したい計測区間(例えば0〜1500クロック数の区間)を実測した際に、計測開始から終了まで1515クロック数だったすると、1515−1500=15の差分が、計測オーバーヘッドOHとなる。つまり、ソースコードSC上の区間計測結果から、計測オーバーヘッドOHを減算することにより、その区間計測結果を補正することができる。   Here, the measurement overhead OH will be described. When actually measuring a measurement section (for example, a section of 0 to 1500 clocks) to be acquired for performance evaluation in the software for performance evaluation, if 1515 clocks from the start to the end of measurement, 1515-1500 = 15 Is the measurement overhead OH. In other words, the section measurement result can be corrected by subtracting the measurement overhead OH from the section measurement result on the source code SC.

コンパイル機能部30hは、そのロギングコードLCが埋め込まれたソースコードSCをコンパイルして、コンピュータがプログラムとして解釈実行できる実行ファイルEFに変換し、この実行ファイルEFを端末機20の実行ファイル実行処理部20cへ出力する。   The compile function unit 30h compiles the source code SC in which the logging code LC is embedded, converts the source code SC into an execution file EF that can be interpreted and executed as a program by the computer, and executes the execution file EF of the terminal 20 To 20c.

実行ファイル実行処理部20cは、実行ファイルEFを実行する。この実行により、ロギングコードLCによるソフトウェアの区間計測が行われ、この際に、ベンチマーク機能コードOBCによるシングルトンの仕組み(後述する)が用いられて、ソースコードSC上の区間計測結果が補正される。   The execution file execution processing unit 20c executes the execution file EF. By this execution, software section measurement is performed by the logging code LC, and at this time, a section measurement result on the source code SC is corrected using a singleton mechanism (described later) using the benchmark function code OBC.

シングルトンの仕組みとは、図12に示す計測モジュールMM、ベンチマークモジュールBM、及びオーバーヘッド記憶部20eにより、オーバーヘッドのベンチマーク機能(後述する)を実現するものである。   The singleton mechanism realizes an overhead benchmark function (described later) by the measurement module MM, the benchmark module BM, and the overhead storage unit 20e shown in FIG.

計測モジュールMMは、ソフトウェアの区間計測を、計測区間を呼び出す上位モジュールと下位モジュール(ここではベンチマークモジュールBM)との間にあって、間接的に区間計測を行うためのプログラムである。
ベンチマークモジュールBMとは、ロギングコードLC自体で測定のために消費してしまうCPUクロックを測定するためのプログラムである。
The measurement module MM is a program for performing interval measurement indirectly between the upper module and the lower module (here, the benchmark module BM) that call the measurement interval for software interval measurement.
The benchmark module BM is a program for measuring a CPU clock that is consumed for measurement by the logging code LC itself.

即ち、シングルトンの仕組みとは、1回目のソフトウェアの区間計測時に、計測モジュールMMがベンチマークモジュールBM(後述)にアクセスして、その区間計測の命令実行時のオーバーヘッドを計測し、この計測オーバーヘッドOHをオーバーヘッド記憶部20eに記憶する。この記憶後、2回目以降のソフトウェアの区間計測時には、計測の都度、1回のみ、計測モジュールMMがオーバーヘッド記憶部20eにアクセスして計測オーバーヘッドOHを取得可能とする仕組みである。この仕組みの動作を行う機能がベンチマーク機能である。   In other words, the singleton mechanism is that the measurement module MM accesses the benchmark module BM (described later) at the time of the first software section measurement, and measures the overhead when executing the section measurement instruction. Store in the overhead storage unit 20e. After this storage, the second and subsequent software sections are measured so that the measurement module MM can access the overhead storage unit 20e and acquire the measurement overhead OH only once for each measurement. The function that performs this mechanism is the benchmark function.

なお、オーバーヘッド記憶部20eに記憶される計測オーバーヘッドOHの一例を図13及び図14に示す。図13には計測オーバーヘッドコード(_OverHead.h)OH1を、図14には計測オーバーヘッドコード(_OverHead.cpp)OH2を示した。   An example of the measurement overhead OH stored in the overhead storage unit 20e is shown in FIGS. FIG. 13 shows the measurement overhead code (_OverHead.h) OH1, and FIG. 14 shows the measurement overhead code (_OverHead.cpp) OH2.

このベンチマーク機能によれば、実行ファイルEFの実行時に、ロギングコードLCに応じてソフトウェアの区間計測を行った際に、その区間計測の命令実行時の計測オーバーヘッドOHを、その計測区間上のCPUクロック数の計測結果から減算することで、計測結果が補正される。この補正後に、CPUクロック数の区間計測結果である消費クロックCSVを、CSV記憶部20fに記憶する。   According to this benchmark function, when the software section is measured according to the logging code LC when the execution file EF is executed, the measurement overhead OH at the time of executing the instruction for the section is calculated using the CPU clock on the measurement section. The measurement result is corrected by subtracting from the measurement result of the number. After this correction, the consumed clock CSV, which is the result of measuring the number of CPU clocks, is stored in the CSV storage unit 20f.

更に説明すると、実行ファイルEFの実行により、端末機20のソフトウェア上の指定された計測区間におけるCPUクロック数が検出される。この検出クロック数により、後述するCPUクロック消費量が検出され、このログが、消費クロックCSVとして外部記憶部20gへ出力される。   More specifically, the number of CPU clocks in the designated measurement section on the software of the terminal 20 is detected by executing the execution file EF. A CPU clock consumption amount, which will be described later, is detected based on the number of detected clocks, and this log is output to the external storage unit 20g as a consumed clock CSV.

ここで、CPUクロック消費量とは、例えば2.2GHz等の定格クロックをどれだけ消費したかを示す消費量であり、CPUの中に実装された図示せぬプログラムカウンタで計数する。このプログラムカウンタでの計数は、例えばクロックが論理回路を通過して元に戻った際にプログラムカウンタを1加算する。このように、CPUクロック消費量を検出することにより、プログラム(ソフトウェア)がどれだけCPUリソースを消費したかを把握することが可能となる。通常、OSで標準装備されているリソースモニタでは、プログラムがどれだけCPUリソースを消費したかをクロック数単位で把握することはできない。   Here, the CPU clock consumption is a consumption indicating how much a rated clock such as 2.2 GHz is consumed, and is counted by a program counter (not shown) mounted in the CPU. For example, when the clock returns to the original value after passing through the logic circuit, the program counter is incremented by one. Thus, by detecting the CPU clock consumption, it is possible to grasp how much CPU resources are consumed by the program (software). Normally, the resource monitor provided as standard with the OS cannot determine how much CPU resources the program has consumed in units of the number of clocks.

消費クロックCSVの一例を図15に示す。図15には、消費クロックCSVの項目として、クロック数、タイムスタンプ(開始)、タイムスタンプ(終了)、ファイル名、クラス名、行番号があり、これら項目において、凡例及びデータ量を示した。なお、凡例及びデータ量の補足の説明内容も示した。   An example of the consumption clock CSV is shown in FIG. In FIG. 15, the clock consumption CSV items include the number of clocks, time stamp (start), time stamp (end), file name, class name, and line number. Legends and data amounts are shown in these items. The supplementary explanation contents of the legend and the data amount are also shown.

<実施形態の動作>
次に、本実施形態に係るオートリソースロギングシステム10によるオートリソースロギング処理の動作を、図16〜図17に示すフローチャートを参照して説明する。但し、端末機20、ビルドサーバ30及び管理サーバ40において、図2のステップS1〜S12の処理は完了し、認証結果はOKであったとする。
<Operation of Embodiment>
Next, the operation of the auto resource logging process by the auto resource logging system 10 according to the present embodiment will be described with reference to the flowcharts shown in FIGS. However, in the terminal 20, the build server 30, and the management server 40, it is assumed that the processing of steps S1 to S12 in FIG. 2 is completed and the authentication result is OK.

また、事前準備として、端末機20で指定されたソフトウェアの計測区間の情報(図3の計測区間情報)が計測区間記憶部30dに記憶され、ソフトウェアの性能評価のために出力されるログのサイズを制限する出力閾値(図3参照)が閾値記憶部30eに記憶され、更に、ロギングコードLC及びベンチマーク機能コードOBCがロギングコード記憶部30fに記憶されているとする。   Also, as advance preparation, the information of the measurement section of the software designated by the terminal 20 (measurement section information of FIG. 3) is stored in the measurement section storage unit 30d, and the size of the log output for software performance evaluation Is stored in the threshold storage unit 30e, and the logging code LC and the benchmark function code OBC are stored in the logging code storage unit 30f.

最初に、オートリソースロギング処理によって、端末機20におけるメモリの異常な解放の検出を行う際の動作について、図16を参照して説明する。   First, an operation of detecting an abnormal release of memory in the terminal 20 by the auto resource logging process will be described with reference to FIG.

まず、図16に示すステップS101において、端末機20からソースコードSCが送信(図2のS13参照)されると、ビルドサーバ30のプリプロセッシング機能部30cは、そのソースコードSCを受信する。   First, in step S101 shown in FIG. 16, when the source code SC is transmitted from the terminal 20 (see S13 in FIG. 2), the preprocessing function unit 30c of the build server 30 receives the source code SC.

次に、ステップS102において、プリプロセッシング機能部30cは、計測区間記憶部30dに記憶された計測区間情報と、閾値記憶部30eに記憶された出力閾値とを取得する。更に、ステップS103において、プリプロセッシング機能部30cは、その取得した計測区間で且つ出力閾値以上のサイズのログを出力するためのロギングコードLCを、ロギングコード記憶部30fから取得する。   Next, in step S102, the preprocessing function unit 30c acquires the measurement section information stored in the measurement section storage unit 30d and the output threshold stored in the threshold storage unit 30e. Further, in step S103, the preprocessing function unit 30c acquires a logging code LC for outputting a log having a size equal to or larger than the output threshold in the acquired measurement section from the logging code storage unit 30f.

次に、ステップS104において、プリプロセッシング機能部30cは、その取得したロギングコードLCを、端末機20から受信したソースコードSCに埋め込むロギング埋込を行う(図2のS14参照)。   Next, in step S104, the preprocessing function unit 30c performs logging embedding in which the acquired logging code LC is embedded in the source code SC received from the terminal device 20 (see S14 in FIG. 2).

次に、ステップS105において、図3に示すように、コンパイル機能部30hは、ロギングコードLCが埋め込まれたソースコードSCを取得してコンパイルする。このコンパイルによりロギングコードLCが埋め込まれた実行ファイルEFが生成され、端末機20の実行ファイル実行処理部20cへ出力される(図2のS16参照)。   Next, in step S105, as shown in FIG. 3, the compile function unit 30h acquires and compiles the source code SC in which the logging code LC is embedded. By this compilation, an execution file EF in which the logging code LC is embedded is generated and output to the execution file execution processing unit 20c of the terminal 20 (see S16 in FIG. 2).

次に、ステップS106において、実行ファイル実行処理部20cは、実行ファイルEFを実行処理する(図2のS17参照)。この実行により、ステップS107において、端末機20のソフトウェア上の指定された計測区間において、メモリの出力閾値以上の大きな解放サイズが検出されたか否かが判定される。   Next, in step S106, the execution file execution processing unit 20c executes the execution file EF (see S17 in FIG. 2). With this execution, in step S107, it is determined whether or not a large release size that is equal to or larger than the memory output threshold is detected in the designated measurement section on the software of the terminal 20.

この結果、メモリの出力閾値以上の大きな解放サイズが検出された場合、ステップS108において、その検出結果(ログ)がメモリ解放CSVとしてCSV記憶部20fへ出力される(図2のS18参照)。言い換えれば、メモリの異常な解放がメモリ解放CSVとして出力される。このメモリ解放CSVとしてのメモリの異常な解放の検出情報により、データ異常やプロセス異常を発見することができ、ソフトウェアのバグ検出が可能となる。一方、検出されない場合、ログは出力されず、本処理は終了する。   As a result, when a large release size equal to or larger than the memory output threshold is detected, the detection result (log) is output to the CSV storage unit 20f as the memory release CSV in step S108 (see S18 in FIG. 2). In other words, an abnormal release of the memory is output as a memory release CSV. Data abnormalities and process abnormalities can be found from the abnormal memory release detection information as the memory release CSV, and software bugs can be detected. On the other hand, if it is not detected, no log is output and the process ends.

次に、オートリソースロギング処理によって、端末機20におけるCPUクロック消費量の直接計測による検出を行う際の動作について、図17を参照して説明する。但し、初期条件において、オーバーヘッド記憶部20eには、計測オーバーヘッドOHは記憶されていないとする。   Next, an operation when performing detection by direct measurement of CPU clock consumption in the terminal device 20 by auto resource logging processing will be described with reference to FIG. However, it is assumed that the measurement overhead OH is not stored in the overhead storage unit 20e under the initial conditions.

まず、図17に示すステップS201は、図16のステップS101と同じ処理である。
次に、ステップS202において、プリプロセッシング機能部30cは、計測区間記憶部30dに記憶された計測区間情報を取得する。更に、ステップS203において、プリプロセッシング機能部30cは、その取得した計測区間でそのログを出力するためのロギングコードLCと、このロギングコードLCによる区間計測実行時のオーバーヘッドによる計測結果を補正するためのベンチマーク機能コードOBCとを取得する。
First, step S201 shown in FIG. 17 is the same processing as step S101 of FIG.
Next, in step S202, the preprocessing function unit 30c acquires measurement section information stored in the measurement section storage unit 30d. Further, in step S203, the preprocessing function unit 30c corrects the measurement result due to the logging code LC for outputting the log in the acquired measurement section and the overhead when the section measurement is executed by the logging code LC. Benchmark function code OBC is acquired.

次に、ステップS204において、プリプロセッシング機能部30cは、その取得したロギングコードLC及びベンチマーク機能コードOBCを、端末機20から受信したソースコードSCに埋め込むロギング埋込を行う。   Next, in step S204, the preprocessing function unit 30c performs logging embedding in which the acquired logging code LC and benchmark function code OBC are embedded in the source code SC received from the terminal device 20.

次に、ステップS205において、図3に示すように、コンパイル機能部30hは、ソースコードSCを取得してコンパイルする。このコンパイルによりロギングコードLC及びベンチマーク機能コードOBCが埋め込まれた実行ファイルEFが生成され、端末機20の実行ファイル実行処理部20cへ出力される。   Next, in step S205, as shown in FIG. 3, the compile function unit 30h acquires the source code SC and compiles it. By this compilation, an execution file EF in which the logging code LC and the benchmark function code OBC are embedded is generated and output to the execution file execution processing unit 20 c of the terminal 20.

ステップS206において、実行ファイル実行処理部20cは、実行ファイルEFを実行処理する。この実行により、ステップS207において、ロギングコードLCによるソフトウェアの区間計測の命令実行時のオーバーヘッドが計測され、この計測オーバーヘッドOHがオーバーヘッド記憶部20eに記憶される。   In step S206, the execution file execution processing unit 20c executes the execution file EF. By this execution, in step S207, the overhead at the time of executing the instruction for measuring the software section by the logging code LC is measured, and this measurement overhead OH is stored in the overhead storage unit 20e.

ステップS208において、実行ファイル実行処理部20cは、上記ステップS207の計測オーバーヘッドOHを用い、上記ソフトウェアの区間計測の命令実行時の、計測区間上のCPUクロック数の計測結果を補正する。即ち、計測区間上のCPUクロック数の計測結果から計測オーバーヘッドOHを減算することで、計測結果を補正する。   In step S208, the execution file execution processing unit 20c uses the measurement overhead OH of step S207 to correct the measurement result of the number of CPU clocks on the measurement section when the software section measurement instruction is executed. That is, the measurement result is corrected by subtracting the measurement overhead OH from the measurement result of the number of CPU clocks on the measurement section.

この補正後に、ステップS209において、実行ファイル実行処理部20cは、CPUクロック数の区間計測結果である消費クロックCSVを、CSV記憶部20fに出力して記憶する。この記憶された消費クロックCSVからCPUクロック消費量を認識することができる。   After this correction, in step S209, the execution file execution processing unit 20c outputs and stores the consumed clock CSV, which is the CPU clock interval measurement result, to the CSV storage unit 20f. The CPU clock consumption can be recognized from the stored consumption clock CSV.

但し、実行ファイルEFの実行時に、オーバーヘッド記憶部20eに計測オーバーヘッドOHが記憶されていれば、この記憶された計測オーバーヘッドOHを用いて上記ステップS208の補正を行う。一方、計測オーバーヘッドOHが記憶されていなければ、上記ステップS207のオーバーヘッドの計測を行って記憶し、上記ステップS208の補正を行う。   However, if the measurement overhead OH is stored in the overhead storage unit 20e during execution of the execution file EF, the stored measurement overhead OH is used to perform the correction in step S208. On the other hand, if the measurement overhead OH is not stored, the overhead in step S207 is measured and stored, and the correction in step S208 is performed.

<CPUクロック消費量の他の検出処理例>
次に、CPUクロック消費量を間接計測で検出する際の処理について説明する。
<Another detection processing example of CPU clock consumption>
Next, processing when detecting CPU clock consumption by indirect measurement will be described.

本例では、プリプロセッシング機能部30cが、計測区間記憶部30dから計測区間情報を取得する際に、その計測区間情報の取得の指定が、ある纏まりのメソッド単位である場合、計測区間情報の呼び出し元プログラムの命令を受けて、間接的に区間計測を可能とするプログラムを備え、CPUクロック消費量を間接計測により検出できるようにした。   In this example, when the preprocessing function unit 30c acquires measurement interval information from the measurement interval storage unit 30d, if the acquisition of the measurement interval information is in a certain method unit, the measurement interval information is called. In response to an instruction from the original program, a program is provided that can indirectly measure the interval so that the CPU clock consumption can be detected by indirect measurement.

この構成は、図18に示すように、呼び出し元プログラムとしての上位モジュールJMと、区間計測対象がモジュール単位(又はメソッド単位)である場合、これに対応した複数の下位モジュールKM1〜KM4と、上位モジュールJMと下位モジュールKM1〜KM4との間に介在された計測モジュールMMAとを備えて成る。なお、計測モジュールMMAは、請求項記載の間接的に区間計測を可能とするプログラムである。   As shown in FIG. 18, when the section measurement target is a module unit (or method unit), the configuration includes a plurality of lower modules KM1 to KM4 corresponding to the upper module JM as a calling source program, A measurement module MMA interposed between the module JM and the lower modules KM1 to KM4 is provided. The measurement module MMA is a program that enables indirectly section measurement as described in the claims.

計測モジュールMMAは、上位モジュールJMから矢印Y21で示す区間計測の命令を受けて、同種の下位モジュールKM1,KM2の各々に、矢印Y21a,Y21bで示すように区間計測の命令を行うものである。これにより、ビルド範囲を局所化し、ビルド時間の短縮できるようになっている。計測モジュールMMAは、破線枠W1で囲むように、上位モジュールJMと同一ファイル内に埋め込まれている。
なお、計測モジュールMMAが存在しない通常の場合は、矢印Y22,Y23で示すように、上位モジュールJMから、下位モジュールKM3、KM4毎に区間計測の命令を行う。
The measurement module MMA receives a section measurement command indicated by the arrow Y21 from the higher module JM, and issues a section measurement command to each of the same kind of lower modules KM1 and KM2 as indicated by arrows Y21a and Y21b. As a result, the build range can be localized and the build time can be shortened. The measurement module MMA is embedded in the same file as the upper module JM so as to be surrounded by a broken line frame W1.
In a normal case where the measurement module MMA does not exist, a section measurement command is issued from the higher module JM for each of the lower modules KM3 and KM4 as indicated by arrows Y22 and Y23.

ここで、プリプロセッシング機能部30cの上位モジュールJMが、図18に示した構成を用いて、ソースコードSCに、ロギングコード記憶部30fから取得したロギングコードLCを埋め込む場合の具体例を、図19を参照して説明する。図19に示すソースコードSCにおいて、矢印Y8で指し示す先頭の「void __check(void *l_func()){」と、矢印Y9で指し示す末尾の「}」とはメソッド__checkの末尾である。   Here, a specific example in which the upper module JM of the preprocessing function unit 30c embeds the logging code LC acquired from the logging code storage unit 30f in the source code SC using the configuration shown in FIG. Will be described with reference to FIG. In the source code SC shown in FIG. 19, the first “void __check (void * l_func ()) {” indicated by the arrow Y8 and the last “}” indicated by the arrow Y9 are the end of the method __check.

また、破線枠内の文字列はロギングコードLCであり、破線枠AC0,AC1で囲んだ文字列は、ロギングコードLCのアセンブリコードである。   The character string in the broken line frame is the logging code LC, and the character string enclosed by the broken line frames AC0 and AC1 is the assembly code of the logging code LC.

まず、ステップ(21)において、計測区間記憶部30dに記憶された計測区間情報の、矢印Y10で指し示す計測対象の区間(l_func();)の前後に、破線枠AC0,AC1で囲むロギングコードLCのアセンブリコードを埋め込む。   First, in step (21), the logging code LC surrounded by broken line frames AC0 and AC1 before and after the measurement target section (l_func ();) indicated by the arrow Y10 in the measurement section information stored in the measurement section storage unit 30d. Embed the assembly code.

ステップ(22)において、対象のロギングコードLCの行頭に、「1回のみの読込命令」(例えば、#pragma once)が記述されていない場合、その#pragma onceを行頭に埋め込む。   In step (22), if “reading instruction only once” (for example, #pragma once) is not described at the beginning of the target logging code LC, the #pragma once is embedded at the beginning of the line.

ステップ(23)において、対象のロギングコードLCの中に、「ヘッダファイル」(例えば、cxxabi.h)がインクルードされていない場合、#include <cxxabi.h>を、対象のロギングコードLCの中に埋め込む。但し、上記ステップ(22)の#pragma onceが行頭に存在する場合、その#pragma onceの次行に、#include <cxxabi.h>を埋め込む。   In step (23), if “header file” (for example, cxxabi.h) is not included in the target logging code LC, #include <cxxabi.h> is included in the target logging code LC. Embed. However, if #pragma once in the above step (22) is present at the beginning of the line, #include <cxxabi.h> is embedded in the line next to #pragma once.

ステップ(24)において、対象のロギングコードLCの中に、上記ステップ(23)と異なる「ヘッダファイル」(例えば、sys/time.h)がインクルードされていない場合、#include <sys/time.h>を、対象のロギングコードLCの中に埋め込む。但し、上記ステップ(22)の#pragma once又は(23)のcxxabi.hが行頭に存在する場合、その#pragma once又はcxxabi.hの次行に、#include <sys/time.h>を埋め込む。   In step (24), if a “header file” (for example, sys / time.h) different from that in step (23) is not included in the target logging code LC, #include <sys / time.h > Is embedded in the target logging code LC. However, if #pragma once in step (22) or cxxabi.h in (23) is present at the beginning of the line, #include <sys / time.h> is embedded in the next line of #pragma once or cxxabi.h. .

次に、計測モジュールMMAが、上位モジュールJMから区間計測の命令を受けて、同じ種類の下位モジュールKM1,KM2の各々に区間計測を可能とする際のコードの具体例を次に示し、その埋め込みを説明する。   Next, a specific example of code when the measurement module MMA receives a section measurement command from the higher module JM and enables each of the lower module KM1 and KM2 of the same type to perform section measurement is shown below. Will be explained.

int main(){
・・・
func1(); −> __check(func1);(*1)
func2(); −> __check(func2);(*2)
func3();
func4();
・・・
int main () {
...
func1 ();-> __ check (func1); (* 1)
func2 ();-> __ check (func2); (* 2)
func3 ();
func4 ();
...
}

まず、ステップ(31)において、計測区間記憶部30dに記憶されたメソッドの呼び出し元ファイル(プログラム)のメソッドを、上記コードの符号*1,*2で示す行のように書き換える。   First, in step (31), the method of the method call source file (program) stored in the measurement section storage unit 30d is rewritten as the lines indicated by the codes * 1 and * 2 in the above code.

ステップ(32)において、対象のロギングコードLCの行頭に、「1回のみの読込命令」(例えば、#pragma once)が記述されていない場合、その#pragma onceを行頭に埋め込む。   In step (32), when “reading instruction only once” (for example, #pragma once) is not described at the beginning of the target logging code LC, the #pragma once is embedded at the beginning of the line.

ステップ(33)において、対象のロギングコードLCの中に、「ヘッダファイル」(例えば、cxxabi.h)がインクルードされていない場合、#include <cxxabi.h>を、対象のロギングコードLCの中に埋め込む。但し、上記ステップ(32)の#pragma onceが行頭に存在する場合、その#pragma onceの次行に、#include <cxxabi.h>を埋め込む。   In step (33), if a “header file” (for example, cxxabi.h) is not included in the target logging code LC, #include <cxxabi.h> is included in the target logging code LC. Embed. However, if #pragma once in the above step (32) is present at the beginning of the line, #include <cxxabi.h> is embedded in the next line of #pragma once.

ステップ(34)において、対象のロギングコードLCの中に、上記ステップ(33)と異なる「ヘッダファイル」(例えば、sys/time.h)がインクルードされていない場合、#include <sys/time.h>を、対象のロギングコードLCの中に埋め込む。但し、上記ステップ(32)の#pragma once又は(33)のcxxabi.hが行頭に存在する場合、その#pragma once又はcxxabi.hの次行に、#include <sys/time.h>を埋め込む。   In step (34), if a “header file” (for example, sys / time.h) different from that in step (33) is not included in the target logging code LC, #include <sys / time.h > Is embedded in the target logging code LC. However, if #pragma once in step (32) or cxxabi.h in (33) is present at the beginning of the line, embed #include <sys / time.h> in the next line of #pragma once or cxxabi.h. .

この後、プリプロセッシング機能部30cは、更に、ロギングコード記憶部30fからベンチマーク機能コードOBCを取得し、これをロギングコードLCと関連付けてソースコードSCに埋め込む。後の処理は、前述したCPUクロック消費量の直接計測による検出時の処理と同じである。   Thereafter, the preprocessing function unit 30c further acquires the benchmark function code OBC from the logging code storage unit 30f, and embeds it in the source code SC in association with the logging code LC. The subsequent processing is the same as the processing at the time of detection by direct measurement of the CPU clock consumption described above.

<実施形態の効果>
以上説明した本実施形態のオートリソースロギングシステム10は、端末機20と、端末機20からソースコードSCを受信してロギングコードLCを埋め込むプリプロセッシングを行うビルドサーバ30とを備える。
<Effect of embodiment>
The auto resource logging system 10 of the present embodiment described above includes the terminal 20 and the build server 30 that receives the source code SC from the terminal 20 and performs preprocessing for embedding the logging code LC.

本実施形態の特徴は、ビルドサーバ30が、端末機20から指定され、当該端末機20で実行されるソフトウェアの性能評価を行うための、当該ソフトウェアに対応するソースコードSCの計測区間を記憶する計測区間記憶部30dと、ソースコードSC内で性能計測を行うためのロギングコードLCが記憶されたロギングコード記憶部30fと、計測区間記憶部30dに記憶された計測区間を取得し、この取得した計測区間での性能評価のための計測によるログを出力する命令を行うロギングコードLCを、ロギングコード記憶部30fから取得し、この取得したロギングコードLCを、端末機20から受信したソースコードSCに埋め込むプリプロセッシング処理を実行するプリプロセッシング機能部30cとを備える構成とした。   A feature of the present embodiment is that the build server 30 stores a measurement section of the source code SC corresponding to the software, which is designated from the terminal 20 and performs performance evaluation of the software executed on the terminal 20. The measurement section storage unit 30d, the logging code storage unit 30f in which the logging code LC for performing performance measurement in the source code SC is stored, and the measurement section stored in the measurement section storage unit 30d are acquired, and the acquired A logging code LC for performing a command to output a log by measurement for performance evaluation in the measurement section is acquired from the logging code storage unit 30f, and the acquired logging code LC is stored in the source code SC received from the terminal device 20. A preprocessing function unit 30c that executes the preprocessing process to be embedded is provided.

この構成によれば、ソースコードSCに対応するソフトウェアの性能評価のための計測区間を容易に管理することができる。また、ソフトウェアへのロギングコードLCの埋め込みを容易に行うことができる。更に、端末機20のユーザが指定する任意の区間のみの計測が可能となるので、計測オーバーヘッドを最小化できる。言い換えれば、計測オーバーヘッドを減少させることができる。   According to this configuration, it is possible to easily manage a measurement section for software performance evaluation corresponding to the source code SC. Also, the logging code LC can be easily embedded in the software. Furthermore, since it is possible to measure only an arbitrary section designated by the user of the terminal device 20, the measurement overhead can be minimized. In other words, measurement overhead can be reduced.

また、ロギングコードLCは、ソフトウェアの計測区間のクロック数を計測するコードを有することとした。
これによって、端末機20のCPUクロック消費量を検出することができるので、プログラム(ソフトウェア)がどれだけCPUリソースを消費したかを把握することができる。
Further, the logging code LC has a code for measuring the number of clocks in the measurement section of the software.
Accordingly, since the CPU clock consumption of the terminal 20 can be detected, it is possible to grasp how much CPU resources are consumed by the program (software).

また、ビルドサーバ30は、端末機20から指定された計測区間のログを出力する条件としての出力閾値を記憶する閾値記憶部30eを更に備え、プリプロセッシング機能部30cは、計測区間を取得した際に、閾値記憶部30eに記憶された出力閾値も取得し、この取得した計測区間で尚且つ出力閾値以上のサイズのログを出力するためのロギングコードLCを、ソースコードSCに埋め込む処理を実行するようにした。   The build server 30 further includes a threshold storage unit 30e that stores an output threshold as a condition for outputting the log of the measurement section specified from the terminal 20, and the preprocessing function unit 30c acquires the measurement section. In addition, an output threshold value stored in the threshold value storage unit 30e is also acquired, and processing for embedding the logging code LC for outputting a log having a size equal to or larger than the output threshold value in the acquired measurement section into the source code SC is executed. I did it.

これによって、ソフトウェアの区間計測時のログのサイズが、出力閾値で制限されるので、例えば、出力閾値を3MBに設定すると、3MB未満のサイズのログは出力されず、3MB以上のログが出力されるようになる。このため、出力閾値を大きく(例えば8MB)しておけば、ノイズのような小容量のログは出力されない。また、出力閾値以上のサイズのログが出力された際に、「異常な値」と設定しておけば、出力閾値以上のサイズのログが出力された際に、異常と判定することが可能となる。   As a result, the log size at the time of software section measurement is limited by the output threshold. For example, if the output threshold is set to 3 MB, a log of less than 3 MB is not output and a log of 3 MB or more is output. Become so. For this reason, if the output threshold is increased (for example, 8 MB), a small-capacity log such as noise is not output. In addition, if a log with a size larger than the output threshold is output when a log with a size larger than the output threshold is set, it can be determined that the log is abnormal when a log with a size larger than the output threshold is output. Become.

また、プリプロセッシング機能部30cは、計測区間記憶部30dに記憶された計測区間の指定がメソッド単位である場合、計測区間の呼び出し元プログラムの命令を受けて、計測対象の計測区間を有する複数の下位モジュールに対して、間接的に区間計測を可能とするプログラムを更に備える構成とした。   In addition, when the measurement section designation stored in the measurement section storage section 30d is a method unit, the preprocessing function unit 30c receives a command from the caller program of the measurement section and has a plurality of measurement sections to be measured. The lower module is further provided with a program that can indirectly measure the section.

この構成によれば、計測区間の呼び出し元プログラムが1回の命令を行えは、間接的に区間計測を可能とするプログラムにより、複数の下位モジュールに対して区間計測を行うことができる。   According to this configuration, if the calling program of the measurement section can issue a single instruction, the section measurement can be performed on a plurality of lower modules by the program that enables the section measurement indirectly.

また、プリプロセッシング機能部30cは、ロギングコードLCによる計測のために必要な命令による区間計測実行時のオーバーヘッドを事前に計測し、この計測オーバーヘッドを用いて、端末機20による実行ファイルEFの実行時に得られる計測結果を補正可能とするロギングコードLCを、ソースコードSC上に備える構成とした。   In addition, the preprocessing function unit 30c measures in advance the overhead at the time of section measurement execution by an instruction necessary for measurement by the logging code LC, and uses the measurement overhead to execute the execution file EF by the terminal 20 The logging code LC that can correct the obtained measurement result is provided on the source code SC.

この構成によれば、次のような作用効果が得られる。性能評価対象のソフトウエアにおいて、性能評価のために取得した計測区間の実際のクロック数に対して、区間計測時のクロック数はずれており、このずれが計測オーバーヘッドである。例えば、実行ファイルEF実行時に得られる計測結果から計測オーバーヘッドを減算することにより、その計測結果を補正することができる。   According to this configuration, the following operational effects can be obtained. In the performance evaluation target software, the number of clocks at the time of the section measurement deviates from the actual number of clocks of the measurement section acquired for performance evaluation, and this deviation is a measurement overhead. For example, the measurement result can be corrected by subtracting the measurement overhead from the measurement result obtained when the execution file EF is executed.

また、ビルドサーバ30は、ロギングコードLCを埋め込んだソースコードSCをコンパイルして、コンピュータが処理可能な実行ファイルEFに変換するコンパイル機能部を更に備える構成とし、端末機20は、実行ファイルEFを実行するようにした。   In addition, the build server 30 is configured to further include a compile function unit that compiles the source code SC in which the logging code LC is embedded and converts it into an executable file EF that can be processed by the computer. I tried to run.

この構成によれば、端末機20が、ソフトウェアの計測区間において、クロック数計測によるCPUクロック消費量を検出することができるので、プログラム(ソフトウェア)がどれだけCPUリソースを消費したかを把握することができる。また、同計測区間において、出力閾値以上のログのサイズを検出できるので、メモリの異常な解放を検出することができる。これにより、データ異常やプロセス異常を発見することができるので、ソフトウェアのバグ検出を行うことができる。   According to this configuration, since the terminal 20 can detect the CPU clock consumption by measuring the number of clocks in the software measurement section, it can grasp how much CPU resources are consumed by the program (software). Can do. In addition, since the log size equal to or larger than the output threshold value can be detected in the same measurement section, abnormal memory release can be detected. This makes it possible to detect data abnormalities and process abnormalities, so that software bugs can be detected.

また、ビルドサーバ30は、次の第1〜第3ステップのオートリソースロギング方法を実行してもよい。
第1ステップにおいて、端末機20から指定され、当該端末機20で実行されるソフトウェアの性能評価を行うための、当該ソフトウェアに対応するソースコードSCの計測区間を記憶する。
第2ステップにおいて、ソースコードSC内で性能計測を行うためのロギングコードLCを記憶する。
Further, the build server 30 may execute the auto resource logging method of the following first to third steps.
In the first step, the measurement section of the source code SC corresponding to the software for performing the performance evaluation of the software designated by the terminal 20 and executed by the terminal 20 is stored.
In the second step, a logging code LC for performing performance measurement is stored in the source code SC.

第3ステップにおいて、第1ステップで記憶された計測区間を取得し、この取得した計測区間での性能評価のための計測によるログを出力する命令を行うロギングコードLCを、第2ステップで記憶されたロギングコードLCから取得し、この取得したロギングコードLCを、端末機20から受信したソースコードSCに埋め込むプリプロセッシング処理を実行する。   In the third step, the logging code LC for obtaining the measurement section stored in the first step and performing a command to output a log by measurement for performance evaluation in the acquired measurement section is stored in the second step. The preprocessing process is executed to embed the acquired logging code LC in the source code SC received from the terminal 20.

この方法によれば、ソースコードSCに対応するソフトウェアの性能評価のための計測区間を容易に管理することができる。また、ソフトウェアへのロギングコードLCの埋め込みを容易に行うことができる。更に、端末機20のユーザが指定する任意の区間のみの計測が可能となるので、計測オーバーヘッドを減少させることができる。   According to this method, it is possible to easily manage a measurement section for software performance evaluation corresponding to the source code SC. Also, the logging code LC can be easily embedded in the software. Furthermore, since it is possible to measure only an arbitrary section designated by the user of the terminal device 20, the measurement overhead can be reduced.

更に、上記のオートリソースロギング方法を、ビルドサーバ30としてのコンピュータに実行させるためのプログラムを備えてもよい。このプログラムによっても、オートリソースロギング方法と同様な効果が得られる。   Furthermore, you may provide the program for making the computer as the build server 30 perform said auto resource logging method. This program can achieve the same effect as the auto resource logging method.

その他、具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。   In addition, the specific configuration can be appropriately changed without departing from the gist of the present invention.

10 オートリソースロギングシステム
20 ユーザ端末機
20a 送受信部
20b アカウント要求応答部
20c 実行ファイル実行処理部
20d ソースコード記憶部
20e オーバーヘッド記憶部
20f CSV記憶部
20g 外部記憶部
30 ビルドサーバ
30a 送受信部
30b アカウント要求応答部
30c プリプロセッシング機能部
30d 計測区間記憶部
30e 閾値記憶部
30f ロギングコード記憶部
30h コンパイル機能部
40 アカウント管理サーバ
40a 送受信部
40b アカウント管理処理部
DESCRIPTION OF SYMBOLS 10 Auto resource logging system 20 User terminal 20a Transmission / reception part 20b Account request response part 20c Execution file execution process part 20d Source code storage part 20e Overhead storage part 20f CSV storage part 20g External storage part 30 Build server 30a Transmission / reception part 30b Account request response Unit 30c preprocessing function unit 30d measurement section storage unit 30e threshold storage unit 30f logging code storage unit 30h compilation function unit 40 account management server 40a transmission / reception unit 40b account management processing unit

Claims (8)

端末機と、前記端末機からソースコードを受信してロギングコードを埋め込むプリプロセッシングを行うビルドサーバとを備えたオートリソースロギングシステムであって、
前記ビルドサーバは、
前記端末機で実行されるソフトウェアの性能評価を行うための、当該ソフトウェアに対応するソースコードの計測区間を記憶する計測区間記憶部と、
前記ソースコード内で性能計測を行うためのロギングコードが記憶されたロギングコード記憶部と、
前記計測区間記憶部に記憶された計測区間を取得し、この取得した計測区間での性能評価のための計測によるログを出力する命令を行うロギングコードを、前記ロギングコード記憶部から取得し、この取得したロギングコードを、前記端末機から受信したソースコードに埋め込むプリプロセッシング処理を実行するプリプロセッシング機能部と、
を備えることを特徴とするオートリソースロギングシステム。
An auto resource logging system comprising a terminal and a build server that receives source code from the terminal and performs preprocessing to embed a logging code,
The build server
A measurement interval storage unit for storing a measurement interval of a source code corresponding to the software for performing performance evaluation of software executed in the terminal;
A logging code storage unit storing a logging code for measuring performance in the source code;
A logging code for obtaining a measurement section stored in the measurement section storage unit and performing a command to output a log by measurement for performance evaluation in the acquired measurement section is acquired from the logging code storage unit, A preprocessing function unit that executes preprocessing processing for embedding the acquired logging code in the source code received from the terminal;
An auto resource logging system comprising:
前記ロギングコードは、前記ソフトウェアの前記計測区間のクロック数を計測するコードを有する
ことを特徴とする請求項1に記載のオートリソースロギングシステム。
The auto resource logging system according to claim 1, wherein the logging code includes a code for measuring the number of clocks in the measurement section of the software.
前記ビルドサーバは、前記端末機から指定された前記計測区間のログを出力する条件としての出力閾値を記憶する閾値記憶部を更に備え、
前記プリプロセッシング機能部は、前記計測区間を取得した際に、前記閾値記憶部に記憶された出力閾値も取得し、この取得した計測区間で尚且つ出力閾値以上のサイズのログを出力するためのロギングコードを、前記ソースコードに埋め込む処理を実行する
ことを特徴とする請求項1又は2に記載のオートリソースロギングシステム。
The build server further includes a threshold storage unit that stores an output threshold as a condition for outputting a log of the measurement section designated from the terminal,
When the preprocessing function unit acquires the measurement section, the preprocessing function unit also acquires an output threshold stored in the threshold storage unit, and outputs a log having a size equal to or larger than the output threshold in the acquired measurement section. The auto resource logging system according to claim 1 or 2, wherein a process of embedding a logging code in the source code is executed.
前記プリプロセッシング機能部は、前記計測区間記憶部に記憶された前記計測区間の指定がメソッド単位である場合、計測区間の呼び出し元プログラムの命令を受けて、計測対象の計測区間を有する複数の下位モジュールに対して、間接的に区間計測を可能とするプログラムを更に備えることを特徴とする請求項1に記載のオートリソースロギングシステム。   The preprocessing function unit receives a command from a calling program of a measurement section and has a plurality of subordinates having a measurement section to be measured when the measurement section stored in the measurement section storage unit is a method unit. The auto resource logging system according to claim 1, further comprising a program for indirectly measuring a section of the module. 前記プリプロセッシング機能部は、前記ロギングコードによる区間計測のために必要な命令による区間計測実行時のオーバーヘッドを事前に計測し、この計測オーバーヘッドを用いて、前記端末機による実行ファイルの実行時に得られる計測結果を補正可能とするロギングコードを、前記ソースコードに埋め込むことを特徴とする請求項1〜4の何れか1項に記載のオートリソースロギングシステム。   The preprocessing function unit measures in advance the overhead at the time of section measurement execution by an instruction necessary for section measurement by the logging code, and is obtained when the execution file is executed by the terminal using the measurement overhead. 5. The auto resource logging system according to claim 1, wherein a logging code enabling correction of a measurement result is embedded in the source code. 前記ビルドサーバは、前記ロギングコードを埋め込んだソースコードをコンパイルして、コンピュータが処理可能な実行ファイルに変換するコンパイル機能部を更に備え、
前記端末機は、前記実行ファイルを実行する
ことを特徴とする請求項1に記載のオートリソースロギングシステム。
The build server further includes a compile function unit that compiles the source code in which the logging code is embedded and converts the source code into an executable file that can be processed by a computer.
The auto resource logging system according to claim 1, wherein the terminal executes the execution file.
端末機と、前記端末機からソースコードを受信してロギングコードを埋め込むプリプロセッシングを行うビルドサーバとを備えたオートリソースロギングシステムのオートリソースロギング方法であって、
前記ビルドサーバは、
前記端末機で実行されるソフトウェアの性能評価を行うための、当該ソフトウェアに対応するソースコードの計測区間を記憶する第1ステップと、
前記ソースコード内で性能計測を行うためのロギングコードを記憶する第2ステップと、
前記第1ステップで記憶された計測区間を取得し、この取得した計測区間での性能評価のための計測によるログを出力する命令を行うロギングコードを、前記第2ステップで記憶されたロギングコードから取得し、この取得したロギングコードを、前記端末機から受信したソースコードに埋め込むプリプロセッシング処理を実行する第3ステップ
を実行することを特徴とするオートリソースロギング方法。
An auto resource logging method of an auto resource logging system comprising a terminal and a build server that receives source code from the terminal and performs preprocessing to embed a logging code,
The build server
A first step of storing a source code measurement section corresponding to the software for performing performance evaluation of software executed on the terminal;
A second step of storing a logging code for performing performance measurement in the source code;
From the logging code stored in the second step, the logging code for obtaining the measurement section stored in the first step and executing a command for outputting a log by measurement for performance evaluation in the acquired measurement section is obtained. An auto resource logging method comprising: performing a third step of executing a preprocessing process for acquiring and embedding the acquired logging code in the source code received from the terminal.
請求項7に記載のオートリソースロギング方法を、前記ビルドサーバとしてのコンピュータに実行させるためのプログラム。   A program for causing a computer as the build server to execute the auto resource logging method according to claim 7.
JP2015016976A 2015-01-30 2015-01-30 Auto resource logging system, auto resource logging method and program Active JP6247237B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015016976A JP6247237B2 (en) 2015-01-30 2015-01-30 Auto resource logging system, auto resource logging method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015016976A JP6247237B2 (en) 2015-01-30 2015-01-30 Auto resource logging system, auto resource logging method and program

Publications (2)

Publication Number Publication Date
JP2016143146A true JP2016143146A (en) 2016-08-08
JP6247237B2 JP6247237B2 (en) 2017-12-13

Family

ID=56568639

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015016976A Active JP6247237B2 (en) 2015-01-30 2015-01-30 Auto resource logging system, auto resource logging method and program

Country Status (1)

Country Link
JP (1) JP6247237B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180061590A (en) * 2016-11-30 2018-06-08 주식회사 플루이딕 Software build system and software build method using the system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04215144A (en) * 1990-12-13 1992-08-05 Nec Corp Execution time measuring system
JP2002108656A (en) * 2000-09-29 2002-04-12 Nec Corp Program operation verifying system
JP2008140162A (en) * 2006-12-01 2008-06-19 Hitachi Ltd Debug information collection method
JP2009015734A (en) * 2007-07-06 2009-01-22 Ntt Data Corp Program profiling device, program profiling method and program
JP2010061461A (en) * 2008-09-04 2010-03-18 Ricoh Co Ltd System for automatic evaluation of software performance

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04215144A (en) * 1990-12-13 1992-08-05 Nec Corp Execution time measuring system
JP2002108656A (en) * 2000-09-29 2002-04-12 Nec Corp Program operation verifying system
JP2008140162A (en) * 2006-12-01 2008-06-19 Hitachi Ltd Debug information collection method
JP2009015734A (en) * 2007-07-06 2009-01-22 Ntt Data Corp Program profiling device, program profiling method and program
JP2010061461A (en) * 2008-09-04 2010-03-18 Ricoh Co Ltd System for automatic evaluation of software performance

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180061590A (en) * 2016-11-30 2018-06-08 주식회사 플루이딕 Software build system and software build method using the system

Also Published As

Publication number Publication date
JP6247237B2 (en) 2017-12-13

Similar Documents

Publication Publication Date Title
WO2016177341A1 (en) Interface calling method and device, and terminal
US8752016B2 (en) Converting JavaScript into a device-independent representation
US11550599B2 (en) Method and apparatus for running applet
US9235433B2 (en) Speculative object representation
US20110145801A1 (en) Using appropriate level of code to be executed in runtime environment using metadata describing versions of resources being used by code
US20160147517A1 (en) Method and computer program product for disassembling a mixed machine code
CN111061464B (en) Analysis code generation method, device, equipment and storage medium
US8959502B2 (en) Processing table of content access overflow in an application
CN110659210A (en) Information acquisition method and device, electronic equipment and storage medium
CN109634569B (en) Method, device and equipment for realizing flow based on annotation and readable storage medium
US20120011490A1 (en) Development system
KR101689984B1 (en) Programmable controller, programmable controller system, and execute error information creation method
JP6247237B2 (en) Auto resource logging system, auto resource logging method and program
TW201324347A (en) System and method for managing commands of function module
US8769505B2 (en) Event information related to server request processing
US20230129934A1 (en) System and method for reference-aware application recreation in container deployment environments
KR101394225B1 (en) Profiling system for application developed by multi-language and profiling method using the same
EP2721494B1 (en) System and method to in-line script dependencies
CN110297639B (en) Method and apparatus for detecting code
US9262167B2 (en) Computer processor with instruction for execution based on available instruction sets
CN113342553A (en) Data acquisition method and device, electronic equipment and storage medium
CN113569184A (en) Configurable data calculation method, device, equipment and computer readable medium
CN108345461B (en) Application updating method and device and computer readable storage medium
JP4860564B2 (en) Program profiling apparatus, program profiling method, and program
US11720468B1 (en) Unwinding program call stacks for performance profiling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171031

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: 20171114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171116

R150 Certificate of patent or registration of utility model

Ref document number: 6247237

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150