JP2015088068A - Information processing device, method for analyzing information processing device, and program for analyzing information processing device - Google Patents

Information processing device, method for analyzing information processing device, and program for analyzing information processing device Download PDF

Info

Publication number
JP2015088068A
JP2015088068A JP2013227686A JP2013227686A JP2015088068A JP 2015088068 A JP2015088068 A JP 2015088068A JP 2013227686 A JP2013227686 A JP 2013227686A JP 2013227686 A JP2013227686 A JP 2013227686A JP 2015088068 A JP2015088068 A JP 2015088068A
Authority
JP
Japan
Prior art keywords
function
time
information
unit
cpu
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
JP2013227686A
Other languages
Japanese (ja)
Other versions
JP6131829B2 (en
Inventor
聡 平井
Satoshi Hirai
聡 平井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013227686A priority Critical patent/JP6131829B2/en
Publication of JP2015088068A publication Critical patent/JP2015088068A/en
Application granted granted Critical
Publication of JP6131829B2 publication Critical patent/JP6131829B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide an information processing device or the like capable of identifying, with high accuracy, a function that constitutes the cause of idling.SOLUTION: The information processing device comprises: an arithmetic processing unit for executing a program; a function information collection unit for collecting, at prescribed intervals, function information which is the information indicating the function under execution, and storing, in a storage unit, the function information and a sampling time of day which is the time of day at which the function information was collected; a transition acquisition unit for acquiring, when the arithmetic unit transitions to an idle state, a transition time of day and storing the acquired time of day in the storage unit; an extraction unit for extracting a difference between the transition time of day stored in the storage unit and a sampling time of day, among the sampling times of day stored in the storage unit, that immediately precedes the transition time of day, and the function information corresponding to the sampling time of day; and an identification unit for identifying a function that constitutes the cause of idling on the basis of the distribution of differences corresponding to each function information extracted by the extraction unit.

Description

本発明は、情報処理装置、情報処理装置の解析方法および情報処理装置の解析プログラムに関する。   The present invention relates to an information processing apparatus, an information processing apparatus analysis method, and an information processing apparatus analysis program.

プログラムを実行した情報処理装置から実行中の処理内容を示す情報などを収集し、収集した情報について集計処理を行なって得た集計結果に基づいて、実行した当該プログラムの動作の確認を行なう、いわゆるプログラムの性能分析が従来行なわれている(例えば、特許文献1参照)。   Collecting information indicating the processing contents being executed from the information processing apparatus that has executed the program, and confirming the operation of the executed program based on the aggregation result obtained by performing aggregation processing on the collected information. Conventionally, performance analysis of programs has been performed (see, for example, Patent Document 1).

特開2011−164839号公報JP 2011-164839 A

しかしながら、従来のプロファイラによる解析では、実行時間に占めるアイドル時間の割合が高くなっているという事象しか把握できなかった。このため、従来の技術においては、プログラムの実行がなされないため、性能への影響を与えるアイドル状態を作り出すアイドル原因となる関数を的確に特定できないという問題があった。   However, the analysis by the conventional profiler can only grasp the phenomenon that the ratio of the idle time to the execution time is high. For this reason, in the conventional technique, since the program is not executed, there is a problem that the function that causes the idle that creates the idle state that affects the performance cannot be accurately specified.

一つの側面では、本発明はより精度良くアイドル原因となる関数を特定することが可能となる情報処理装置等を提供することを目的とする。   In one aspect, an object of the present invention is to provide an information processing apparatus or the like that can specify a function that causes idle more accurately.

本願に開示する情報処理装置は、プログラムを実行する演算処理部と、実行中の関数を示す情報である関数情報を所定間隔で採取するとともに、前記関数情報と前記関数情報とを採取した時刻であるサンプリング時刻を記憶部に記憶する関数情報採取部と、前記演算処理部がアイドル状態に移行した場合、移行時刻を取得して前記記憶部に記憶する移行取得部と、前記記憶部に記憶した移行時刻と、前記記憶部に記憶したサンプリング時刻のうち前記移行時刻直前のサンプリング時刻との差分、及び、前記サンプリング時刻に対応する関数情報を抽出する抽出部と、該抽出部が抽出した各関数情報に対応する差分の分布に基づき、アイドル原因となる関数を特定する特定部とを備える。   The information processing device disclosed in the present application collects function information, which is information indicating a function being executed, and an arithmetic processing unit that executes a program at predetermined intervals, and at the time when the function information and the function information are collected. A function information collection unit that stores a certain sampling time in a storage unit, a transition acquisition unit that acquires a transition time and stores it in the storage unit when the arithmetic processing unit shifts to an idle state, and a memory that is stored in the storage unit The difference between the transition time and the sampling time immediately before the transition time among the sampling times stored in the storage unit, and an extraction unit that extracts function information corresponding to the sampling time, and each function extracted by the extraction unit And a specifying unit that specifies a function that causes idle, based on a distribution of differences corresponding to the information.

一つの側面では、より精度良くアイドル原因となる関数を特定することが可能となる。   In one aspect, it is possible to specify a function that causes idle more accurately.

情報処理装置のハードウェア群を示すブロック図である。It is a block diagram which shows the hardware group of information processing apparatus. サンプリング処理のイメージを示す説明図である。It is explanatory drawing which shows the image of a sampling process. サンプリングテーブルのレコードレイアウトを示す説明図である。It is explanatory drawing which shows the record layout of a sampling table. 移行時刻テーブルのレコードレイアウトを示す説明図である。It is explanatory drawing which shows the record layout of a transition time table. 差分テーブルのレコードレイアウトを示す説明図である。It is explanatory drawing which shows the record layout of a difference table. 統計テーブルのレコードレイアウトを示す説明図である。It is explanatory drawing which shows the record layout of a statistics table. サンプリングテーブルの生成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the production | generation process of a sampling table. 移行時刻の取得処理手順を示すフローチャートである。It is a flowchart which shows the acquisition processing procedure of a transition time. 差分及び関数の取得処理手順を示すフローチャートである。It is a flowchart which shows the acquisition process procedure of a difference and a function. アイドル原因となる可能性の高い関数の抽出処理手順を示すフローチャートである。It is a flowchart which shows the extraction process procedure of a function with high possibility of causing an idle. サンプリング結果を示す説明図である。It is explanatory drawing which shows a sampling result. 統計テーブルに記憶されたデータの変化を示すグラフである。It is a graph which shows the change of the data memorized by the statistics table. 実施の形態2に係る関数の特定処理手順を示すフローチャートである。10 is a flowchart illustrating a function specifying process procedure according to the second embodiment. 実施の形態2に係る関数の特定処理手順を示すフローチャートである。10 is a flowchart illustrating a function specifying process procedure according to the second embodiment. 実施の形態3に係るコンピュータのハードウェア群を示すブロック図である。FIG. 10 is a block diagram illustrating a hardware group of a computer according to a third embodiment. サンプリング処理のイメージを示す説明図である。It is explanatory drawing which shows the image of a sampling process. 終了時刻テーブルのレコードレイアウトを示す説明図である。It is explanatory drawing which shows the record layout of an end time table. 終了差分テーブルのレコードレイアウトを示す説明図である。It is explanatory drawing which shows the record layout of an end difference table. 移行統計テーブルのレコードレイアウトを示す説明図である。It is explanatory drawing which shows the record layout of a transfer statistics table. 終了統計テーブルのレコードレイアウトを示す説明図である。It is explanatory drawing which shows the record layout of an end statistics table. 実施の形態2に係る統計テーブルのレコードレイアウトを示す説明図である。It is explanatory drawing which shows the record layout of the statistics table which concerns on Embodiment 2. FIG. 終了時刻の取得処理手順を示すフローチャートである。It is a flowchart which shows the acquisition process procedure of end time. 終了時刻に係る差分及び関数の抽出処理手順を示すフローチャートである。It is a flowchart which shows the difference and function extraction process procedure which concern on end time. アイドル原因となる可能性の高い関数の抽出処理手順を示すフローチャートである。It is a flowchart which shows the extraction process procedure of a function with high possibility of causing an idle. 重み付け処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of a weighting process. 上述した形態のコンピュータの動作を示す機能ブロック図である。It is a functional block diagram which shows operation | movement of the computer of the form mentioned above. 実施の形態5に係るコンピュータのハードウェア群を示すブロック図である。FIG. 16 is a block diagram illustrating a hardware group of a computer according to a fifth embodiment.

実施の形態1
以下実施の形態を、図面を参照して説明する。図1は情報処理装置1のハードウェア群を示すブロック図である。情報処理装置1は解析対象となるパーソナルコンピュータ、サーバコンピュータ、携帯電話機、ゲーム機、ブックリーダまたはPDA(Personal Digital Assistant)等である。以下では情報処理装置1をコンピュータ1と読み替えて説明する。コンピュータ1は制御部としてのCPU(Central Processing Unit)11、RAM(Random Access Memory)12、入力部13、表示部14、時計部18、記憶部15、及び通信部16等を含む。CPU11は、バス17を介してハードウェア各部と接続されている。CPU11は記憶部15に記憶された制御プログラム15Pに従いハードウェア各部を制御する。RAM12は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM12は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
Embodiment 1
Hereinafter, embodiments will be described with reference to the drawings. FIG. 1 is a block diagram illustrating a hardware group of the information processing apparatus 1. The information processing apparatus 1 is a personal computer, server computer, mobile phone, game machine, book reader, PDA (Personal Digital Assistant) or the like to be analyzed. Hereinafter, the information processing apparatus 1 will be described as being replaced with the computer 1. The computer 1 includes a central processing unit (CPU) 11 as a control unit, a random access memory (RAM) 12, an input unit 13, a display unit 14, a clock unit 18, a storage unit 15, a communication unit 16, and the like. The CPU 11 is connected to each part of the hardware via the bus 17. The CPU 11 controls each part of the hardware according to the control program 15P stored in the storage unit 15. The RAM 12 is, for example, SRAM (Static RAM), DRAM (Dynamic RAM), flash memory, or the like. The RAM 12 also functions as a storage unit, and temporarily stores various data generated when the CPU 11 executes various programs.

入力部13はマウス、キーボードまたはタッチパネル等の入力デバイスであり、受け付けた操作情報をCPU11へ出力する。表示部14は液晶ディスプレイまたは有機ELディスプレイ等であり、CPU11の指示に従い各種情報を表示する。通信部16は通信モジュールであり、通信網を介して他のコンピュータ(図示せず)との間で情報の送受信を行う。   The input unit 13 is an input device such as a mouse, a keyboard, or a touch panel, and outputs received operation information to the CPU 11. The display unit 14 is a liquid crystal display, an organic EL display, or the like, and displays various information according to instructions from the CPU 11. The communication unit 16 is a communication module and transmits / receives information to / from another computer (not shown) via a communication network.

時計部18は時刻の情報をCPU11へ出力する。記憶部15はハードディスクまたは大容量メモリであり、制御プログラム15P、OS(Operating System)151、ユーザプログラム153、サンプリングテーブル154、移行時刻テーブル155、差分テーブル156及び統計テーブル157等を記憶している。CPU11は、RAM12にユーザプログラム153をロードする。CPU11は、OS151の一機能であるプロファイラ152により予め定めた間隔で割り込みを発生させる。プロファイラ152は、割り込みによる定期的なサンプリング処理により、プロセスを特定するための識別情報(以下、PIDという)、実行命令アドレス及び割り込んだ際の時刻(以下、サンプリング時刻という)を取得する。   The clock unit 18 outputs time information to the CPU 11. The storage unit 15 is a hard disk or a large-capacity memory, and stores a control program 15P, an OS (Operating System) 151, a user program 153, a sampling table 154, a transition time table 155, a difference table 156, a statistics table 157, and the like. The CPU 11 loads the user program 153 into the RAM 12. The CPU 11 generates interrupts at predetermined intervals by the profiler 152 which is a function of the OS 151. The profiler 152 acquires identification information for identifying a process (hereinafter referred to as PID), an execution instruction address, and an interrupt time (hereinafter referred to as sampling time) by periodic sampling processing by interruption.

実行命令アドレスはOS151及びユーザプログラム153から読み出されたサンプリング対象の関数が記憶されているRAM12上のアドレスである。なお、本実施形態ではプロファイラ152はOS151の一機能として説明するが、OS151とは別の独立したプログラムであっても良い。   The execution instruction address is an address on the RAM 12 where the sampling target function read from the OS 151 and the user program 153 is stored. In the present embodiment, the profiler 152 is described as a function of the OS 151, but may be an independent program different from the OS 151.

図2はサンプリング処理のイメージを示す説明図である。横軸は時間であり、時間の経過と共に、CPU11によりユーザプログラム153から関数(以下、ユーザ関数という)が次々と呼び出され、実行されている状態を示している。OS151は、CPU11をアイドル状態にするアイドル関数を呼び出す。図2に示すようにユーザ関数とアイドル関数とがCPU11により逐次呼び出され、各種処理が実行されることとなる。ここで、アイドル状態の占める割合が多ければ多い程、CPU11の使用率は低減することとなる。   FIG. 2 is an explanatory diagram showing an image of sampling processing. The horizontal axis represents time, and shows a state in which functions (hereinafter referred to as user functions) are successively called from the user program 153 by the CPU 11 as time passes, and are being executed. The OS 151 calls an idle function for setting the CPU 11 in an idle state. As shown in FIG. 2, the user function and the idle function are sequentially called by the CPU 11 and various processes are executed. Here, the greater the proportion of the idle state, the lower the usage rate of the CPU 11.

図2の下向き矢印は、プロファイラ152によるサンプリング処理のタイミングを示すものである。CPU11はプロファイラ152の割り込みハンドラにより、記憶部15に記憶された予め定められた時間間隔でPID、実行命令アドレス、及び、サンプリング時刻を取得する。なお、サンプリング間隔については、ユーザが入力部13等から変更することができる。   A downward arrow in FIG. 2 indicates the timing of the sampling process by the profiler 152. The CPU 11 obtains the PID, the execution instruction address, and the sampling time at predetermined time intervals stored in the storage unit 15 by the interrupt handler of the profiler 152. Note that the sampling interval can be changed by the user from the input unit 13 or the like.

図3はサンプリングテーブル154のレコードレイアウトを示す説明図である。サンプリングテーブル154はPIDフィールド、実行命令アドレスフィールド、サンプリング時刻フィールド、プロセス名フィールド、及び関数名フィールドを含む。PIDフィールドには、OS151及びユーザプログラム153から呼び出されたユーザ関数及びアイドル関数に係るプロセスを特定するためのPIDが記憶されている。実行命令アドレスフィールドには、サンプリング対象の関数が記憶されているRAM12上のアドレスがPIDに対応付けて記憶されている。   FIG. 3 is an explanatory diagram showing a record layout of the sampling table 154. The sampling table 154 includes a PID field, an execution instruction address field, a sampling time field, a process name field, and a function name field. The PID field stores PIDs for specifying processes related to user functions and idle functions called from the OS 151 and the user program 153. In the execution instruction address field, an address on the RAM 12 where the sampling target function is stored is stored in association with the PID.

サンプリング時刻フィールドには、プロファイラ152によりサンプリングを行った際の時刻が実行命令アドレスに対応付けて記憶されている。プロセス名フィールドにはPID等に対応付けてサンプリング時に実行しているプロセスの名称が記憶されている。関数名フィールドには、サンプリング時刻に対応付けて、サンプリング時のOS151またはユーザプログラム153の関数名が記憶されている。CPU11は、プロファイラ152により定期的に取得したPID、実行命令アドレス及びサンプリング時刻をサンプリングテーブル154に記憶する。   In the sampling time field, the time when the profiler 152 performs sampling is stored in association with the execution instruction address. In the process name field, the name of the process executed at the time of sampling is stored in association with the PID or the like. In the function name field, the function name of the OS 151 or the user program 153 at the time of sampling is stored in association with the sampling time. The CPU 11 stores the PID, execution instruction address, and sampling time periodically acquired by the profiler 152 in the sampling table 154.

CPU11は、OS151からPID及び実行命令アドレスに対応するプロセス名及び関数名を取得する。CPU11は、取得したプロセス名及び関数名を実行命令アドレス等に対応付けてサンプリングテーブル154に記憶する。CPU11は、ユーザプログラム153のバイナリデータから、ユーザプログラム153のPID及び実行命令アドレスに対応するプロセス名及び関数名を取得する。CPU11は、取得したプロセス名及び関数名を実行命令アドレス等に対応付けてサンプリングテーブル154に記憶する。図3の例では第1回目のサンプリング時にはユーザ関数である「func_c」が実行されており、第2回目及び第3回目のサンプリング時に「poll_idle」で示すアイドル関数が実行されていることが理解できる。   The CPU 11 acquires a process name and a function name corresponding to the PID and the execution instruction address from the OS 151. The CPU 11 stores the acquired process name and function name in the sampling table 154 in association with the execution instruction address or the like. The CPU 11 acquires the process name and function name corresponding to the PID and execution instruction address of the user program 153 from the binary data of the user program 153. The CPU 11 stores the acquired process name and function name in the sampling table 154 in association with the execution instruction address or the like. In the example of FIG. 3, it can be understood that the user function “func_c” is executed during the first sampling, and the idle function indicated by “poll_idle” is executed during the second and third samplings. .

図2に戻り説明を続ける。図2の上向き矢印はアイドル状態への移行タイミングを示す。CPU11は、デバッグ機能、または、OS151のイベント登録機能を利用し、ユーザ関数からアイドル関数への切り替えを検出した場合、プロファイラ152を呼び出し、アイドル状態へ移行した時刻(以下、移行時刻という)を取得する。なお、OS151のイベント登録機能は、例えばLinux(登録商標)のKprobesまたはSystemap等を用いればよい。具体的にはCPU11はユーザ関数からアイドル関数への移行をイベントとして登録しておき、登録したイベントを検出した場合に、移行時刻を取得するようにすればよい。またCPU11のデバッグ機能に関しては、例えばIntel社の「Intel(登録商標)64 and IA-32 Architectures Software Developer’s Manual Volume 3B:System Programming Guide, Part 2」に記載の方法を用いればよい。例えばCPU11は、ユーザ関数またはアイドル関数の特定の実行命令アドレスを記憶しておき、当該記憶した実行命令アドレスを検出した場合に、アイドル状態へ移行したと判断しても良い。以下では、デバッグ機能を用いる例を挙げて説明する。CPU11は、サンプリング処理と共にアイドル状態への移行に伴う移行時刻の取得を行う。   Returning to FIG. The upward arrow in FIG. 2 indicates the transition timing to the idle state. When the CPU 11 uses the debug function or the event registration function of the OS 151 and detects the switching from the user function to the idle function, the CPU 11 calls the profiler 152 and obtains the time of transition to the idle state (hereinafter referred to as transition time). To do. The event registration function of the OS 151 may use, for example, Linux (registered trademark) Kprobes or Systemap. Specifically, the CPU 11 may register the transition from the user function to the idle function as an event, and acquire the transition time when the registered event is detected. As for the debugging function of the CPU 11, for example, a method described in “Intel (registered trademark) 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide, Part 2” by Intel may be used. For example, the CPU 11 may store a specific execution instruction address of the user function or the idle function, and may determine that the state has shifted to the idle state when the stored execution instruction address is detected. Hereinafter, an example using the debug function will be described. The CPU 11 acquires the transition time associated with the transition to the idle state together with the sampling process.

図4は移行時刻テーブル155のレコードレイアウトを示す説明図である。CPU11は、移行時刻を取得した場合、移行時刻テーブル155に逐次移行時刻を記憶する。図5は差分テーブル156のレコードレイアウトを示す説明図である。差分テーブル156は、PIDフィールド、プロセス名フィールド、関数名フィールド及び差分フィールド等を含む。CPU11は、サンプリングテーブル154及び移行時刻テーブル155の記憶内容に基づき、差分テーブル156を生成する。CPU11は、サンプリングテーブル154及び移行時刻テーブル155を参照し、移行時刻の直前のサンプリング時刻を抽出する。CPU11は、サンプリングテーブル154を参照し、抽出したサンプリング時刻に対応するPID、プロセス名、関数名を抽出する。   FIG. 4 is an explanatory diagram showing a record layout of the transition time table 155. When acquiring the transition time, the CPU 11 sequentially stores the transition time in the transition time table 155. FIG. 5 is an explanatory diagram showing a record layout of the difference table 156. The difference table 156 includes a PID field, a process name field, a function name field, a difference field, and the like. The CPU 11 generates a difference table 156 based on the stored contents of the sampling table 154 and the transition time table 155. The CPU 11 refers to the sampling table 154 and the transition time table 155 to extract the sampling time immediately before the transition time. The CPU 11 refers to the sampling table 154 and extracts the PID, process name, and function name corresponding to the extracted sampling time.

CPU11は、差分テーブル156に抽出したPID、プロセス名及び関数名を記憶する。CPU11は、移行時刻と直前のサンプリング時刻との差分を求め、差分フィールドに記憶する。なお、差分フィールドには参考のためかっこ内に、実時間を単位μsとして記載している。   The CPU 11 stores the extracted PID, process name, and function name in the difference table 156. The CPU 11 calculates the difference between the transition time and the immediately preceding sampling time and stores it in the difference field. In the difference field, the real time is indicated in parentheses in parentheses for reference.

図6は統計テーブル157のレコードレイアウトを示す説明図である。CPU11は、各関数の差分分布を、予め記憶部15に記憶した差分の時間帯に基づき分類する。図6の例では、時間帯を5μsとしている。具体的には5μs未満、5μs以上10μs未満、10μs以上15μs未満等と5μs毎に分類する。なお、時間帯はあくまで一例でありこれに限るものではない。また時間帯については、ユーザが入力部13等から変更することができる。   FIG. 6 is an explanatory diagram showing a record layout of the statistics table 157. The CPU 11 classifies the difference distribution of each function based on the difference time zone stored in advance in the storage unit 15. In the example of FIG. 6, the time zone is 5 μs. Specifically, it is classified every 5 μs, such as less than 5 μs, 5 μs or more, less than 10 μs, 10 μs or more, and less than 15 μs. The time zone is merely an example and is not limited to this. Further, the user can change the time zone from the input unit 13 or the like.

CPU11は、差分テーブル156を参照し、関数名及び差分に基づき、関数毎に時間帯に属する差分の数を計数する。図6の例では「func_a」で示す関数aは、5μs未満の差分の個数が2015であり、5μs以上10μs未満の個数は2であることが理解できる。また「func_b」で示す関数bは、5μs未満の差分の個数が186であり、5μs以上10μs未満の個数は1861であることが理解できる。同様に「func_c」で示す関数cは、5μs未満の差分の個数が144であり、5μs以上10μs未満の個数は1822であることが理解できる。   The CPU 11 refers to the difference table 156 and counts the number of differences belonging to the time zone for each function based on the function name and the difference. In the example of FIG. 6, it can be understood that the number of differences less than 5 μs is 2015 in the function a indicated by “func_a”, and the number of differences between 5 μs and less than 10 μs is 2. In addition, it can be understood that the function b indicated by “func_b” has 186 differences of less than 5 μs, and 1861 has a difference of 5 μs or more and less than 10 μs. Similarly, in the function c indicated by “func_c”, it can be understood that the number of differences less than 5 μs is 144, and the number of differences between 5 μs and less than 10 μs is 1822.

CPU11は、時間帯が最も短い時間帯に分類された数の最も大きい関数を特定する。図6の例では時間帯が最も短い5μsに分類された数が、2015個と最も大きい関数aが、アイドル原因となる関数であるとして特定される。以上のハードウェア群において、各種ソフトウェア処理を、フローチャートを用いて説明する。   The CPU 11 specifies the function with the largest number classified into the time zone with the shortest time zone. In the example of FIG. 6, the function a having the largest number classified into 5 μs with the shortest time zone, which is 2015, is specified as the function causing the idle. In the above hardware group, various software processes will be described with reference to flowcharts.

図7はサンプリングテーブル154の生成処理の手順を示すフローチャートである。CPU11は、RAM12を参照し、プロファイラ152により所定時間間隔で実行中のPID、実行命令アドレス及びサンプリング時刻を取得する(ステップS71)。CPU11は、取得したPID、実行命令アドレス及びサンプリング時刻をサンプリングテーブル154に記憶する(ステップS72)。CPU11は、OS151から、PID及び実行命令アドレスに対応するプロセス名及び関数名を取得する(ステップS73)。   FIG. 7 is a flowchart showing a procedure for generating the sampling table 154. The CPU 11 refers to the RAM 12 and acquires the PID, the execution instruction address, and the sampling time that are being executed at predetermined time intervals by the profiler 152 (step S71). The CPU 11 stores the acquired PID, execution instruction address, and sampling time in the sampling table 154 (step S72). The CPU 11 acquires a process name and a function name corresponding to the PID and the execution instruction address from the OS 151 (step S73).

CPU11は、ユーザプログラム153から、PID及び実行命令アドレスに対応するプロセス名及び関数名を取得する(ステップS74)。CPU11は、ステップS73及びS74で取得したプロセス名及び関数名を、PID及び実行命令アドレスに対応付けて、サンプリングテーブル154に記憶する(ステップS75)。なお、CPU11は、実行命令アドレスがOS151領域の場合は、OS151からプロセス名及び関数名を取得し、ユーザプログラム領域の場合は、OS151及びユーザプログラム情報(プログラムバイナリまたはOS151がプログラムロード時に作成するシンボル情報等)からプロセス名及び関数名を取得しても良い。なお、これら2つの取得処理は一つの処理として行えば良い。また制御プログラム15Pは、プロファイラ152と一体となって動作する。ここで、プロファイラ152がOS151に組込まれている場合、制御プログラム15PもOS151に組み込まれるか、または、アドオンモジュールという形で提供することにより、OS151にロードされ、実行される。プロファイラ152が独立したプログラムである場合、制御プログラム15Pを包含して提供する、または、協調して動作するプログラムとして提供する。   The CPU 11 acquires a process name and a function name corresponding to the PID and the execution instruction address from the user program 153 (step S74). The CPU 11 stores the process name and function name acquired in steps S73 and S74 in the sampling table 154 in association with the PID and the execution instruction address (step S75). When the execution instruction address is the OS 151 area, the CPU 11 acquires the process name and function name from the OS 151. When the execution instruction address is the user program area, the CPU 11 and the OS 151 and user program information (a symbol created by the program binary or the OS 151 when the program is loaded) The process name and function name may be acquired from the information. Note that these two acquisition processes may be performed as one process. Further, the control program 15P operates integrally with the profiler 152. Here, when the profiler 152 is incorporated in the OS 151, the control program 15P is also incorporated in the OS 151 or provided in the form of an add-on module, and is loaded into the OS 151 and executed. When the profiler 152 is an independent program, the profiler 152 is provided including the control program 15P or provided as a program operating in cooperation.

図8は移行時刻の取得処理手順を示すフローチャートである。CPU11は、デバッグ機能によりアイドル状態への移行を検出したか否かを判断する(ステップS81)。CPU11は、アイドル状態への移行を検出していないと判断した場合(ステップS81でNO)、アイドル状態を検出するまで待機する。CPU11は、アイドル状態への移行を検出した場合(ステップS81でYES)、ステップS82へ移行する。CPU11は、プロファイラ152により移行時刻を取得する(ステップS82)。CPU11は、取得した移行時刻を移行時刻テーブル155に記憶する(ステップS83)。   FIG. 8 is a flowchart showing a procedure for acquiring the transition time. The CPU 11 determines whether or not the transition to the idle state is detected by the debug function (step S81). If the CPU 11 determines that the transition to the idle state has not been detected (NO in step S81), the CPU 11 waits until the idle state is detected. If the CPU 11 detects the transition to the idle state (YES in step S81), the CPU 11 proceeds to step S82. The CPU 11 acquires the transition time by the profiler 152 (step S82). The CPU 11 stores the acquired transition time in the transition time table 155 (step S83).

図9は差分及び関数の取得処理手順を示すフローチャートである。CPU11は、移行時刻テーブル155を参照し、移行時刻を抽出(ステップS91)。CPU11は、サンプリングテーブル154を参照し、移行時刻直前のサンプリング時刻を抽出(ステップS92)。CPU11は、ステップS91で抽出した移行時刻から、ステップS92で抽出したサンプリング時刻を減じることで差分を算出する(ステップS93)。CPU11は、サンプリング時刻に対応するPID、プロセス名及び関数名を、サンプリングテーブル154から読み出す(ステップS94)。   FIG. 9 is a flowchart showing a difference and function acquisition processing procedure. The CPU 11 refers to the transition time table 155 and extracts the transition time (step S91). The CPU 11 refers to the sampling table 154 and extracts the sampling time immediately before the transition time (step S92). The CPU 11 calculates the difference by subtracting the sampling time extracted in step S92 from the transition time extracted in step S91 (step S93). The CPU 11 reads the PID, process name, and function name corresponding to the sampling time from the sampling table 154 (step S94).

CPU11は、ステップS93で算出した差分と、ステップS94で読み出したPID、プロセス名及び関数名とを対応付けて、差分テーブル156に記憶する(ステップS95)。CPU11は、移行時刻テーブル155に記憶した全ての移行時刻について上述した処理を終了したか否かを判断する(ステップS96)。CPU11は、終了していないと判断した場合(ステップS96でNO)、処理をステップS97へ移行させる。CPU11は、移行時刻テーブル155を参照し、時系列で次の移行時刻を読み出す(ステップS97)。その後CPU11は処理をステップS92に戻す。これにより、関数名及び差分が蓄積されることとなる。CPU11は、全ての移行時刻について処理を終了したと判断した場合(ステップS96でYES)、処理を終了する。   The CPU 11 associates the difference calculated in step S93 with the PID, process name, and function name read in step S94, and stores them in the difference table 156 (step S95). The CPU 11 determines whether or not the above-described processing has been completed for all the transition times stored in the transition time table 155 (step S96). If the CPU 11 determines that the process has not ended (NO in step S96), the process proceeds to step S97. The CPU 11 refers to the transition time table 155 and reads the next transition time in time series (step S97). Thereafter, the CPU 11 returns the process to step S92. As a result, the function name and the difference are accumulated. CPU11 complete | finishes a process, when it is judged that the process was complete | finished about all the transition times (it is YES at step S96).

図10はアイドル原因となる可能性の高い関数の抽出処理手順を示すフローチャートである。CPU11は、関数を差分テーブル156から読み出す(ステップS101)。CPU11は、関数に対応する差分を差分テーブル156から読み出す(ステップS102)。CPU11は、記憶部15から複数の時系列で連続する複数の時間帯を読み出す。CPU11は、読み出した各時間帯に属する差分の数を計数する(ステップS103)。CPU11は、関数及び時間帯に対応付けて、計数した数を統計テーブル157に記憶する(ステップS104)。これにより一の関数について、各時間帯に属する差分の数を把握することができる。   FIG. 10 is a flowchart showing a procedure for extracting a function that is likely to cause idle. CPU11 reads a function from the difference table 156 (step S101). The CPU 11 reads the difference corresponding to the function from the difference table 156 (step S102). The CPU 11 reads a plurality of time zones continuous in a plurality of time series from the storage unit 15. The CPU 11 counts the number of differences belonging to each read time zone (step S103). The CPU 11 stores the counted number in the statistical table 157 in association with the function and the time zone (step S104). Thus, the number of differences belonging to each time zone can be grasped for one function.

CPU11は、全ての関数について処理を終了したか否かを判断する(ステップS105)。CPU11は、処理を終了していないと判断した場合(ステップS105でNO)、未処理の関数を差分テーブル156から読み出す(ステップS106)。その後、CPU11は、処理をステップS102に戻す。CPU11は、全ての関数について処理を終了したと判断した場合(ステップS105でYES)、ステップS107へ移行する。以上の処理を繰り返すことにより、全ての関数の、差分分布を取得できる。   The CPU 11 determines whether the processing has been completed for all functions (step S105). If the CPU 11 determines that the process has not ended (NO in step S105), the CPU 11 reads an unprocessed function from the difference table 156 (step S106). Thereafter, the CPU 11 returns the process to step S102. If the CPU 11 determines that the processing has been completed for all functions (YES in step S105), the CPU 11 proceeds to step S107. By repeating the above processing, difference distributions of all functions can be acquired.

CPU11は、統計テーブル157を参照し、差分が最も短い時間帯に分類された数が最も多い関数を抽出する(ステップS107)。CPU11は、抽出した関数を表示部14へ出力する(ステップS108)。なお、抽出した関数の出力先は表示部14に限るものではない。図示しないマイクから音声出力するほか、図示しない他のコンピュータへインターネット等の通信網を介して出力するようにしても良い。   The CPU 11 refers to the statistical table 157 and extracts the function having the largest number classified into the time zone with the shortest difference (step S107). The CPU 11 outputs the extracted function to the display unit 14 (step S108). Note that the output destination of the extracted function is not limited to the display unit 14. In addition to outputting sound from a microphone (not shown), the sound may be output to another computer (not shown) via a communication network such as the Internet.

続いて効果を確認すべく実験を行った。図11はサンプリング結果を示す説明図である。ユーザプログラム153は関数A、関数B及び関数Cの3つであり、50μsの周期でサンプリング処理を行った。なお、関数Aがアイドル原因となる関数である。図11Aはアイドル関数、関数A〜C毎に対するサンプリング数の比率を示す。アイドル関数として抽出された割合は76.4%であり、関数Aは4.2%、関数Bは10.9%、関数Cは8.6%であった。アイドル状態にある割合が高いことが分かるほか、関数Bの占める割合も大きいことが分かる。   Subsequently, an experiment was conducted to confirm the effect. FIG. 11 is an explanatory diagram showing a sampling result. There are three user programs 153, function A, function B, and function C, and sampling processing was performed at a period of 50 μs. Note that the function A is a function that causes idling. FIG. 11A shows the ratio of the number of samplings with respect to each of the idle function and functions A to C. The ratio extracted as an idle function was 76.4%, the function A was 4.2%, the function B was 10.9%, and the function C was 8.6%. It can be seen that the proportion in the idle state is high and the proportion occupied by the function B is also large.

続いて移行時刻直前にサンプリングした関数の数について調査した。図11Bは関数A〜Cに対する移行時刻直前のサンプリング数及び比率を示す。関数Aのサンプリング数は4138であり、比率は17.6%、関数Bのサンプリング数は10867であり、比率は46.2%、関数Cのサンプリング数は8534であり、比率は36.3%であった。アイドル状態に移行する直前にサンプリングにより得られた関数の計数値だけに依拠して判断した場合、関数Bがアイドル原因に係る関数であると誤認識してしまう。   Subsequently, the number of functions sampled immediately before the transition time was investigated. FIG. 11B shows the sampling number and ratio immediately before the transition time for the functions A to C. The sampling number of the function A was 4138, the ratio was 17.6%, the sampling number of the function B was 10867, the ratio was 46.2%, the sampling number of the function C was 8534, and the ratio was 36.3%. If the determination is made based only on the count value of the function obtained by sampling immediately before shifting to the idle state, the function B is erroneously recognized as a function related to the cause of idle.

図12は統計テーブル157に記憶されたデータの変化を示すグラフである。図12に示すように本実施形態に係る手法では差分の最も短い時間帯が、最も多い関数は関数Aであることが顕著に表れている。一方、関数B及び関数Cは相対的に差分が長い時間帯に集中している。以上のことから本実施形態に係る手法ではアイドル原因となる関数を、関数Aと精度良く特定することが可能となる。   FIG. 12 is a graph showing changes in data stored in the statistical table 157. As shown in FIG. 12, in the method according to the present embodiment, it is noticeable that the function A is the function having the largest time zone with the shortest difference. On the other hand, the functions B and C are concentrated in a time zone in which the difference is relatively long. From the above, in the method according to the present embodiment, it is possible to accurately identify the function that causes idling as the function A.

実施の形態2
実施の形態2は、アイドル原因となる関数を複数の時間帯の数に基づき決定する形態に関する。実施の形態1では差分の最も短い時間帯、図6の例では5μs未満の数が最大の関数を特定したが、これに限るものではない。各時間帯に重みを設定し、重みに応じて各時間帯の数を補正しても良い。また、最も短い時間帯の数が、関数間で大差ない場合、次に短い時間帯の数に基づき関数を特定しても良い。以下詳細を説明する。
Embodiment 2
The second embodiment relates to a mode in which a function that causes idle is determined based on the number of a plurality of time zones. In the first embodiment, the time zone having the shortest difference is specified, and in the example of FIG. 6, the function having the maximum number of less than 5 μs is specified. However, the present invention is not limited to this. A weight may be set for each time slot, and the number of each time slot may be corrected according to the weight. Further, when the number of the shortest time zones is not greatly different between the functions, the function may be specified based on the number of the next shortest time zones. Details will be described below.

図13及び図14は実施の形態2に係る関数の特定処理手順を示すフローチャートである。CPU11は、統計テーブル157を参照し、最も短い時間帯に分類された数が最も多い関数(以下、第1関数という)を抽出する(ステップS131)。CPU11は、最も短い時間帯に分類された数が次に多い関数(以下、第2関数という)を抽出する(ステップS132)。CPU11は、ステップS131で抽出した第1関数の数から、ステップS132で抽出した第2関数の数を減算する(ステップS133)。CPU11は、記憶部15に予め記憶した閾値を読み出す(ステップS134)。   13 and 14 are flowcharts showing the function specifying process procedure according to the second embodiment. The CPU 11 refers to the statistical table 157 and extracts the function having the largest number classified in the shortest time zone (hereinafter referred to as the first function) (step S131). The CPU 11 extracts the function having the next largest number classified into the shortest time zone (hereinafter referred to as the second function) (step S132). The CPU 11 subtracts the number of second functions extracted in step S132 from the number of first functions extracted in step S131 (step S133). The CPU 11 reads a threshold value stored in advance in the storage unit 15 (step S134).

CPU11は、ステップS133で算出した減算値は閾値を超えるか否かを判断する(ステップS135)。CPU11は、減算値は閾値を超えると判断した場合(ステップS135でYES)、処理をステップS139へ移行させる。CPU11は、第1関数を、アイドル原因と推定される関数として、出力する(ステップS139)。CPU11は、減算値は閾値を超えないと判断した場合(ステップS135でNO)、ステップS136へ処理を移行させる。CPU11は、第1関数について、次に短い時間帯に分類された数を抽出する(ステップS136)。   The CPU 11 determines whether or not the subtraction value calculated in step S133 exceeds a threshold value (step S135). If the CPU 11 determines that the subtraction value exceeds the threshold value (YES in step S135), the process proceeds to step S139. The CPU 11 outputs the first function as a function estimated to be the cause of idle (step S139). When the CPU 11 determines that the subtraction value does not exceed the threshold value (NO in step S135), the CPU 11 shifts the processing to step S136. CPU11 extracts the number classified into the next short time slot about the 1st function (Step S136).

CPU11は、第2関数について、次に短い時間帯に分類された数を抽出する(ステップS137)。CPU11は、ステップS136で抽出した数と、ステップS137で抽出した数とを比較し、抽出した数の多い関数を、アイドル原因と推定される関数として、出力する(ステップS138)。これにより、判別しがたい特性を有する関数についても、より精度良くアイドル原因となる関数を特定することが可能となる。   CPU11 extracts the number classified into the next short time slot about the 2nd function (Step S137). The CPU 11 compares the number extracted in step S136 with the number extracted in step S137, and outputs a function with many extracted numbers as a function estimated to be the cause of idle (step S138). This makes it possible to specify a function that causes idle more accurately with respect to a function having characteristics that are difficult to discriminate.

本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。   The second embodiment is as described above, and the other parts are the same as those of the first embodiment. Therefore, the corresponding parts are denoted by the same reference numerals, and detailed description thereof is omitted.

実施の形態3
実施の形態3は、アイドル関数からユーザ関数へ移行する際の終了時刻を利用する形態に関する。図15は実施の形態3に係るコンピュータ1のハードウェア群を示すブロック図である。記憶部15にはさらに終了時刻テーブル158、終了差分テーブル159、移行統計テーブル1510、及び終了統計テーブル1511が設けられている。図16はサンプリング処理のイメージを示す説明図である。実施の形態1の処理に加え、CPU11は、実施の形態1と同じくデバッグ機能、または、OS151のイベント登録機能を利用し、アイドル関数からユーザ関数への切り替えを検出した場合、プロファイラ152を呼び出し、アイドル状態からユーザ関数の実行へ復帰した時刻(以下、終了時刻という)を取得する。なお、実施の形態2においてもデバッグ機能を用いる例を挙げて説明する。図16の終了時刻は、上向き点線矢印で示されている。CPU11は、終了時刻検出直後のサンプリング時刻との差分を算出する。CPU11は、終了時刻に基づき算出した差分をも考慮して、アイドル原因となる関数を特定する。
Embodiment 3
The third embodiment relates to a mode of using an end time when shifting from an idle function to a user function. FIG. 15 is a block diagram illustrating a hardware group of the computer 1 according to the third embodiment. The storage unit 15 further includes an end time table 158, an end difference table 159, a migration statistics table 1510, and an end statistics table 1511. FIG. 16 is an explanatory diagram showing an image of sampling processing. In addition to the processing of the first embodiment, the CPU 11 uses the debugging function or the event registration function of the OS 151 as in the first embodiment to call the profiler 152 when detecting the switching from the idle function to the user function, The time when the user function is returned from the idle state (hereinafter referred to as the end time) is acquired. In the second embodiment, an example using the debug function will be described. The end time in FIG. 16 is indicated by an upward dotted arrow. The CPU 11 calculates a difference from the sampling time immediately after the end time is detected. The CPU 11 specifies a function that causes idling in consideration of the difference calculated based on the end time.

図17は終了時刻テーブル158のレコードレイアウトを示す説明図である。CPU11は、デバッグ機能を利用し、アイドル関数からユーザ関数への切り替えを検出した場合、プロファイラ152を呼び出し、アイドル状態からユーザ関数の実行へ復帰した時刻を取得する。CPU11は、終了時刻を取得する度に、取得した終了時刻を終了時刻テーブル158に記憶する。   FIG. 17 is an explanatory diagram showing a record layout of the end time table 158. When the CPU 11 detects the switching from the idle function to the user function using the debug function, the CPU 11 calls the profiler 152 and obtains the time when the user function is returned from the idle state. Each time the CPU 11 acquires the end time, the CPU 11 stores the acquired end time in the end time table 158.

図18は終了差分テーブル159のレコードレイアウトを示す説明図である。終了差分テーブル159は、PIDフィールド、プロセス名フィールド、関数名フィールド及び差分フィールド等を含む。CPU11は、サンプリングテーブル154及び終了時刻テーブル158の記憶内容に基づき、終了差分テーブル159を生成する。CPU11は、サンプリングテーブル154及び終了時刻テーブル158を参照し、終了時刻の直後のサンプリング時刻を抽出する。CPU11は、サンプリングテーブル154を参照し、抽出したサンプリング時刻に対応するPID、プロセス名、関数名を抽出する。   FIG. 18 is an explanatory diagram showing a record layout of the end difference table 159. The end difference table 159 includes a PID field, a process name field, a function name field, a difference field, and the like. The CPU 11 generates an end difference table 159 based on the stored contents of the sampling table 154 and the end time table 158. The CPU 11 refers to the sampling table 154 and the end time table 158 to extract the sampling time immediately after the end time. The CPU 11 refers to the sampling table 154 and extracts the PID, process name, and function name corresponding to the extracted sampling time.

CPU11は、終了差分テーブル159に抽出したPID、プロセス名及び関数名を記憶する。CPU11は、終了時刻と直後のサンプリング時刻との差分を求め、差分フィールドに記憶する。なお、差分フィールドには参考のためかっこ内に、実時間を単位μsとして記載している。   The CPU 11 stores the extracted PID, process name, and function name in the end difference table 159. The CPU 11 obtains a difference between the end time and the immediately following sampling time and stores it in the difference field. In the difference field, the real time is indicated in parentheses in parentheses for reference.

図19は移行統計テーブル1510のレコードレイアウトを示す説明図である。移行統計テーブル1510の記憶内容は、実施の形態1で述べた統計テーブル157と同様であるので詳細な説明は省略する。図20は終了統計テーブル1511のレコードレイアウトを示す説明図である。CPU11は、図18に示す終了差分テーブル159を参照し、各関数の差分分布を、予め記憶部15に記憶した差分の時間帯に基づき分類する。この時間帯は、図19に示す移行統計テーブル1510と同じ時間帯とすればよい。   FIG. 19 is an explanatory diagram showing a record layout of the migration statistics table 1510. Since the stored contents of the migration statistics table 1510 are the same as the statistics table 157 described in the first embodiment, detailed description thereof is omitted. FIG. 20 is an explanatory diagram showing a record layout of the end statistics table 1511. The CPU 11 refers to the end difference table 159 shown in FIG. 18 and classifies the difference distribution of each function based on the difference time zone stored in advance in the storage unit 15. This time zone may be the same time zone as the migration statistics table 1510 shown in FIG.

CPU11は、終了差分テーブル159を参照し、関数名及び差分に基づき、関数毎に時間帯に属する差分の数を計数する。図20の例では「func_a」で示す関数aは、5μs未満の差分の個数が2013であり、5μs以上10μs未満の個数は4であることが理解できる。また「func_b」で示す関数bは、5μS未満の差分の個数が184であり、5μs以上10μs未満の個数は1865であることが理解できる。同様に「func_c」で示す関数cは、5μs未満の差分の個数が139であり、5μs以上10μs未満の個数は1827であることが理解できる。   The CPU 11 refers to the end difference table 159 and counts the number of differences belonging to the time zone for each function based on the function name and the difference. In the example of FIG. 20, it can be understood that the function a indicated by “func_a” has 2013 the number of differences of less than 5 μs and 4 the number of 5 μs or more and less than 10 μs. In addition, in the function b indicated by “func_b”, it can be understood that the number of differences less than 5 μS is 184, and the number of differences between 5 μs and less than 10 μs is 1865. Similarly, in the function c indicated by “func_c”, it can be understood that the number of differences less than 5 μs is 139 and the number of differences between 5 μs and less than 10 μs is 1827.

図21は実施の形態2に係る統計テーブル157のレコードレイアウトを示す説明図である。統計テーブル157は図19に示す移行統計テーブル1510と、終了統計テーブル1511とを合算したものである。CPU11は、移行統計テーブル1510及び終了統計テーブル1511を参照し、関数毎に、各時間帯の移行時刻に基づき算出される差分の数と、終了時刻に基づき算出される差分の数との合計値を算出する。CPU11は、合計値を関数及び時間帯に対応付けて統計テーブル157に記憶する。図21の例では「func_a」で示す関数aは、5μs未満の差分の個数が4028であり、5μs以上10μs未満の個数は6であることが理解できる。また「func_b」で示す関数bは、5μs未満の差分の個数が370であり、5μs以上10μs未満の個数は3726であることが理解できる。同様に「func_c」で示す関数cは、5μs未満の差分の個数が283であり、5μs以上10μs未満の個数は3649であることが理解できる。   FIG. 21 is an explanatory diagram showing a record layout of the statistics table 157 according to the second embodiment. The statistics table 157 is a total of the migration statistics table 1510 and the end statistics table 1511 shown in FIG. The CPU 11 refers to the transition statistics table 1510 and the end statistics table 1511, and for each function, the total value of the number of differences calculated based on the transition time of each time zone and the number of differences calculated based on the end time Is calculated. The CPU 11 stores the total value in the statistics table 157 in association with the function and the time zone. In the example of FIG. 21, it can be understood that the number of differences less than 5 μs is 4028 and the number of functions a greater than 5 μs is less than 10 μs in the function a indicated by “func_a”. Further, it can be understood that the function b indicated by “func_b” has 370 the number of differences of less than 5 μs and 3726 the number of 5 μs or more and less than 10 μs. Similarly, in the function c indicated by “func_c”, it can be understood that the number of differences less than 5 μs is 283, and the number of differences between 5 μs and less than 10 μs is 3649.

図22は終了時刻の取得処理手順を示すフローチャートである。CPU11は、デバッグ機能によりアイドル状態からユーザプログラム153の実行への復帰を検出したか否かを判断する(ステップS221)。CPU11は、復帰を検出していないと判断した場合(ステップS221でNO)、復帰を検出するまで待機する。CPU11は、復帰を検出した場合(ステップS221でYES)、ステップS222へ移行する。CPU11は、プロファイラ152により終了時刻を取得する(ステップS222)。CPU11は、取得した終了時刻を終了時刻テーブル158に記憶する(ステップS223)。   FIG. 22 is a flowchart showing an end time acquisition processing procedure. The CPU 11 determines whether or not a return from the idle state to the execution of the user program 153 is detected by the debug function (step S221). If the CPU 11 determines that no return has been detected (NO in step S221), the CPU 11 waits until a return is detected. When the CPU 11 detects return (YES in step S221), the CPU 11 proceeds to step S222. The CPU 11 obtains the end time using the profiler 152 (step S222). The CPU 11 stores the acquired end time in the end time table 158 (step S223).

図23は終了時刻に係る差分及び関数の抽出処理手順を示すフローチャートである。CPU11は、終了時刻テーブル158を参照し、終了時刻を抽出(ステップS231)。CPU11は、サンプリングテーブル154を参照し、終了時刻直後のサンプリング時刻を抽出(ステップS232)。CPU11は、ステップS232で抽出したサンプリング時刻から、ステップS231で抽出した終了時刻を減じることで差分を算出する(ステップS233)。CPU11は、サンプリング時刻に対応するPID、プロセス名及び関数名を、サンプリングテーブル154から読み出す(ステップS234)。   FIG. 23 is a flowchart showing a difference and function extraction process procedure related to the end time. The CPU 11 refers to the end time table 158 and extracts the end time (step S231). The CPU 11 refers to the sampling table 154 and extracts the sampling time immediately after the end time (step S232). The CPU 11 calculates the difference by subtracting the end time extracted in step S231 from the sampling time extracted in step S232 (step S233). The CPU 11 reads the PID, process name, and function name corresponding to the sampling time from the sampling table 154 (step S234).

CPU11は、ステップS233で算出した差分と、ステップS234で読み出したPID、プロセス名及び関数名とを対応付けて、終了差分テーブル159に記憶する(ステップS235)。CPU11は、終了時刻テーブル158に記憶した全ての終了時刻について上述した処理を終了したか否かを判断する(ステップS236)。CPU11は、終了していないと判断した場合(ステップS236でNO)、処理をステップS237へ移行させる。CPU11は、終了時刻テーブル158を参照し、時系列で次の終了時刻を読み出す(ステップS237)。その後CPU11は処理をステップS232に戻す。これにより、関数名及び差分が蓄積されることとなる。CPU11は、全ての終了時刻について処理を終了したと判断した場合(ステップS236でYES)、処理を終了する。   The CPU 11 associates the difference calculated in step S233 with the PID, process name, and function name read in step S234 and stores them in the end difference table 159 (step S235). The CPU 11 determines whether or not the above-described processing has been completed for all the end times stored in the end time table 158 (step S236). If the CPU 11 determines that the process has not ended (NO in step S236), the process proceeds to step S237. The CPU 11 reads the next end time in time series with reference to the end time table 158 (step S237). Thereafter, the CPU 11 returns the process to step S232. As a result, the function name and the difference are accumulated. If the CPU 11 determines that the process has been completed for all end times (YES in step S236), the process ends.

図24はアイドル原因となる可能性の高い関数の抽出処理手順を示すフローチャートである。CPU11は、関数を終了差分テーブル159から読み出す(ステップS241)。CPU11は、関数に対応する差分を終了差分テーブル159から読み出す(ステップS242)。CPU11は、記憶部15から複数の時系列で連続する複数の時間帯を読み出す。CPU11は、読み出した各時間帯に属する差分の数を計数する(ステップS243)。CPU11は、関数及び時間帯に対応付けて、計数した数を終了統計テーブル1511に記憶する(ステップS244)。   FIG. 24 is a flowchart showing a procedure for extracting a function having a high possibility of causing idling. The CPU 11 reads the function from the end difference table 159 (step S241). The CPU 11 reads the difference corresponding to the function from the end difference table 159 (step S242). The CPU 11 reads a plurality of time zones continuous in a plurality of time series from the storage unit 15. The CPU 11 counts the number of differences belonging to each read time zone (step S243). The CPU 11 stores the counted number in the end statistics table 1511 in association with the function and the time zone (step S244).

CPU11は、全ての関数について処理を終了したか否かを判断する(ステップS245)。CPU11は、処理を終了していないと判断した場合(ステップS245でNO)、未処理の関数を終了差分テーブル159から読み出す(ステップS246)。その後、CPU11は、処理をステップS242に戻す。CPU11は、全ての関数について処理を終了したと判断した場合(ステップS245でYES)、ステップS247へ移行する。以上の処理を繰り返すことにより、全ての関数の、差分分布を取得できる。   The CPU 11 determines whether or not processing has been completed for all functions (step S245). If the CPU 11 determines that the process has not ended (NO in step S245), the CPU 11 reads an unprocessed function from the end difference table 159 (step S246). Thereafter, the CPU 11 returns the process to step S242. If the CPU 11 determines that the processing has been completed for all functions (YES in step S245), the CPU 11 proceeds to step S247. By repeating the above processing, difference distributions of all functions can be acquired.

CPU11は、図10で述べた処理により生成した統計テーブル157を移行統計テーブル1510として読み出し、さらに、ステップS241〜S246の処理で生成した終了統計テーブル1511を読み出す(ステップS247)。CPU11は、移行統計テーブル1510及び終了統計テーブル1511を参照し、各関数の時間帯の合計値を算出し、統計テーブル157を生成する(ステップS248)。   The CPU 11 reads the statistical table 157 generated by the processing described in FIG. 10 as the migration statistical table 1510, and further reads the end statistical table 1511 generated by the processing of steps S241 to S246 (step S247). The CPU 11 refers to the migration statistics table 1510 and the end statistics table 1511, calculates the total value of the time zones of each function, and generates the statistics table 157 (step S248).

CPU11は、統計テーブル157を参照し、差分が最も短い時間帯に分類された数が最も多い関数を抽出する(ステップS249)。CPU11は、抽出した関数を表示部14へ出力する(ステップS2410)。このように、アイドル状態からプログラム関数の実行に復帰する回数の多い関数をも考慮するため、より精度良くアイドル原因となる関数を特定することが可能となる。   The CPU 11 refers to the statistical table 157 and extracts the function having the largest number classified into the time zone with the shortest difference (step S249). The CPU 11 outputs the extracted function to the display unit 14 (step S2410). As described above, since a function having a large number of times of returning from the idle state to the execution of the program function is also taken into consideration, it becomes possible to specify the function causing the idle more accurately.

本実施の形態3は以上の如きであり、その他は実施の形態1及び2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。   The third embodiment is as described above, and the others are the same as in the first and second embodiments. Therefore, the corresponding parts are denoted by the same reference numerals, and detailed description thereof is omitted.

実施の形態4
実施の形態4は移行統計テーブル1510または終了統計テーブル1511の数に重み付け処理を行う形態に関する。図25は重み付け処理の手順を示すフローチャートである。CPU11は、移行統計テーブル1510を参照し、最も短い時間帯に分類された各関数の数を読み出す(ステップS251)。CPU11は、終了統計テーブル1511を参照し、最も短い時間帯に分類された各関数の数を読み出す(ステップS252)。CPU11は、記憶部15に予め記憶した重みとしての係数を読み出す(ステップS253)。CPU11は、終了統計テーブル1511についてステップS252にて読み出した各関数の数に、係数を乗じ、各関数の数を補正する(ステップS254)。
Embodiment 4
The fourth embodiment relates to a mode in which weighting processing is performed on the number of the migration statistics table 1510 or the end statistics table 1511. FIG. 25 is a flowchart showing the procedure of the weighting process. The CPU 11 refers to the migration statistics table 1510 and reads the number of each function classified in the shortest time zone (step S251). The CPU 11 refers to the end statistics table 1511 and reads the number of each function classified in the shortest time zone (step S252). CPU11 reads the coefficient as a weight previously memorize | stored in the memory | storage part 15 (step S253). The CPU 11 corrects the number of functions by multiplying the number of each function read in step S252 in the end statistics table 1511 by a coefficient (step S254).

この係数は例えば1より小さい数(例えば0.8)、または、1より大きい数(例えば1.2)とすればよい。なお、本実施形態では終了統計テーブル1511の数に係数を乗じたが、ステップS251で読み出した移行統計テーブル1510の数に係数を乗じても良い。また双方に異なる値を乗じても良い。CPU11は、ステップS251にて移行統計テーブル1510について読み出した各関数の数と、ステップS254にて補正した補正後の各関数の数とを加算する(ステップS255)。CPU11は、加算値が最も大きい関数を、アイドル原因となる関数として出力する(ステップS256)。なお、本実施形態では、最も短い時間帯に分類された各関数の数に重み付け処理を行ったがこれに限るものではない。他の時間帯に分類された各関数の数にも重み付け処理を行っても良い。そして、CPU11は、移行統計テーブル1510と補正後の終了統計テーブル1511の全ての時間帯に分類された数を加算する。その後、CPU11は、実施の形態2で述べた如く、最も短い時間帯の数と、次に短い時間帯の数とに基づき、アイドル原因となる関数を特定するようにしても良い。以上のとおり、関数の特性に応じて重み付け処理を行うことで、より精度良くアイドル要因となる関数を特定することが可能となる。   For example, the coefficient may be a number smaller than 1 (for example, 0.8) or a number larger than 1 (for example, 1.2). In this embodiment, the number of end statistics tables 1511 is multiplied by a coefficient. However, the number of migration statistics tables 1510 read in step S251 may be multiplied by a coefficient. Alternatively, both may be multiplied by different values. The CPU 11 adds the number of functions read for the transition statistics table 1510 in step S251 and the number of corrected functions corrected in step S254 (step S255). The CPU 11 outputs the function having the largest added value as a function that causes idle (step S256). In the present embodiment, the number of functions classified in the shortest time zone is weighted, but the present invention is not limited to this. A weighting process may be performed on the number of functions classified in other time zones. Then, the CPU 11 adds the numbers classified in all the time zones of the migration statistics table 1510 and the corrected end statistics table 1511. Thereafter, as described in the second embodiment, the CPU 11 may specify a function that causes an idle based on the number of the shortest time zones and the number of the next shortest time zones. As described above, by performing the weighting process according to the characteristics of the function, it is possible to specify the function that becomes the idle factor with higher accuracy.

本実施の形態4は以上の如きであり、その他は実施の形態1から3と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。   The fourth embodiment is as described above, and the others are the same as those of the first to third embodiments. Therefore, the corresponding parts are denoted by the same reference numerals and detailed description thereof is omitted.

実施の形態5
図26は上述した形態のコンピュータ1の動作を示す機能ブロック図である。CPU11が制御プログラム15Pを実行することにより、コンピュータ1は以下のように動作する。関数情報採取部261は、実行中の関数を示す情報である関数情報を所定間隔で採取するとともに、前記関数情報と前記関数情報とを採取した時刻であるサンプリング時刻を記憶部15に記憶する。移行取得部262は、CPU11がアイドル状態に移行した場合、移行時刻を取得して前記記憶部15に記憶する。抽出部263は、前記記憶部15に記憶した移行時刻と、前記記憶部15に記憶したサンプリング時刻のうち前記移行時刻直前のサンプリング時刻との差分、及び、前記サンプリング時刻に対応する関数情報を抽出する。特定部264は、抽出部263が抽出した各関数情報に対応する差分の分布に基づき、アイドル原因となる関数を特定する。分類部265は、複数の差分の時間帯別に、各関数の差分を分類する。関数特定部267は、差分が短い時間帯に分類された数に基づき、前記アイドル原因となる関数を特定する。
Embodiment 5
FIG. 26 is a functional block diagram showing the operation of the computer 1 of the above-described form. When the CPU 11 executes the control program 15P, the computer 1 operates as follows. The function information collection unit 261 collects function information, which is information indicating a function being executed, at predetermined intervals, and stores a sampling time, which is a time when the function information and the function information are collected, in the storage unit 15. When the CPU 11 shifts to the idle state, the shift acquisition unit 262 acquires the shift time and stores it in the storage unit 15. The extraction unit 263 extracts the difference between the transition time stored in the storage unit 15 and the sampling time immediately before the transition time among the sampling times stored in the storage unit 15, and the function information corresponding to the sampling time To do. The specifying unit 264 specifies a function that causes an idle based on the distribution of differences corresponding to each function information extracted by the extracting unit 263. The classification unit 265 classifies the difference of each function according to a plurality of difference time zones. The function specifying unit 267 specifies the function that causes the idle based on the number classified into the time zone with a short difference.

図27は実施の形態5に係るコンピュータ1のハードウェア群を示すブロック図である。コンピュータ1を動作させるためのプログラムは、ディスクドライブ等の読み取り部10AにCD-ROM、DVD(Digital Versatile Disc)ディスク、メモリーカード、またはUSB(Universal Serial Bus)メモリ等の可搬型記録媒体1Aを読み取らせて記憶部15に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ1Bをコンピュータ1内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網を介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。   FIG. 27 is a block diagram illustrating a hardware group of the computer 1 according to the fifth embodiment. A program for operating the computer 1 reads a portable recording medium 1A such as a CD-ROM, a DVD (Digital Versatile Disc) disk, a memory card, or a USB (Universal Serial Bus) memory into a reading unit 10A such as a disk drive. It may be stored in the storage unit 15. Further, a semiconductor memory 1B such as a flash memory storing the program may be mounted in the computer 1. Further, the program can be downloaded from another server computer (not shown) connected via a communication network such as the Internet. The contents will be described below.

図27に示すコンピュータ1は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体1Aまたは半導体メモリ1Bから読み取り、或いは、通信網を介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム15Pとしてインストールされ、RAM12にロードして実行される。これにより、上述したコンピュータ1として機能する。   The computer 1 shown in FIG. 27 reads a program for executing the above-described various software processes from the portable recording medium 1A or the semiconductor memory 1B or downloads it from another server computer (not shown) via a communication network. . The program is installed as the control program 15P, loaded into the RAM 12, and executed. Thereby, it functions as the computer 1 described above.

本実施の形態5は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。   The fifth embodiment is as described above, and the other parts are the same as those of the first embodiment. Therefore, corresponding parts are denoted by the same reference numerals, and detailed description thereof is omitted.

以上の実施の形態1から5を含む実施形態に関し、さらに以下の付記を開示する。   With respect to the embodiments including the first to fifth embodiments, the following additional notes are disclosed.

(付記1)
プログラムを実行する演算処理部と、
実行中の関数を示す情報である関数情報を所定間隔で採取するとともに、前記関数情報と前記関数情報とを採取した時刻であるサンプリング時刻を記憶部に記憶する関数情報採取部と、
前記演算処理部がアイドル状態に移行した場合、移行時刻を取得して前記記憶部に記憶する移行取得部と、
前記記憶部に記憶した移行時刻と、前記記憶部に記憶したサンプリング時刻のうち前記移行時刻直前のサンプリング時刻との差分、及び、前記サンプリング時刻に対応する関数情報を抽出する抽出部と、
該抽出部が抽出した各関数情報に対応する差分の分布に基づき、アイドル原因となる関数を特定する特定部と
を備える情報処理装置。
(Appendix 1)
An arithmetic processing unit for executing a program;
A function information collection unit that collects function information that is information indicating a function being executed at a predetermined interval, and stores a sampling time that is a time at which the function information and the function information are collected;
When the arithmetic processing unit transitions to an idle state, a transition acquisition unit that acquires a transition time and stores it in the storage unit;
A difference between the transition time stored in the storage unit and the sampling time immediately before the transition time among the sampling times stored in the storage unit, and an extraction unit that extracts function information corresponding to the sampling time;
An information processing apparatus comprising: a specifying unit that specifies a function that causes an idle based on a distribution of differences corresponding to each function information extracted by the extraction unit.

(付記2)
前記特定部は、
複数の差分の時間帯別に、各関数の差分を分類する分類部と、
差分が短い時間帯に分類された数に基づき、前記アイドル原因となる関数を特定する関数特定部と
を備える付記1に記載の情報処理装置。
(Appendix 2)
The specific part is:
A classification unit that classifies the difference of each function according to a plurality of difference time zones;
The information processing apparatus according to appendix 1, further comprising: a function specifying unit that specifies a function that causes the idle based on a number classified into a time zone in which the difference is short.

(付記3)
前記関数特定部は、
最も短い時間帯に分類された数が最も大きい関数を、前記アイドル原因となる関数として特定する
付記2に記載の情報処理装置。
(Appendix 3)
The function specifying unit is
The information processing apparatus according to claim 2, wherein a function having the largest number classified into the shortest time zone is specified as the function causing the idle.

(付記4)
アイドル状態が終了した場合に、終了時刻を取得する終了取得部と、
終了時刻と該終了時刻直後のサンプリング時刻との差分、及び、前記サンプリング時刻に対応する関数を抽出する終了抽出部とを備え、
前記特定部は、
前記抽出部及び前記終了抽出部により抽出した各関数の差分分布に基づき、アイドル原因となる関数を特定する
付記1に記載の情報処理装置。
(Appendix 4)
An end acquisition unit that acquires an end time when the idle state ends;
A difference between the end time and the sampling time immediately after the end time, and an end extraction unit that extracts a function corresponding to the sampling time,
The specific part is:
The information processing apparatus according to claim 1, wherein a function that causes idle is identified based on a difference distribution of each function extracted by the extraction unit and the end extraction unit.

(付記5)
前記特定部は、
複数の差分の時間帯別に、前記抽出部及び前記終了抽出部により抽出した各関数の差分を分類する複数分類部と、
差分が短い時間帯に分類された数の大きい関数を特定する複数特定部と
を備える付記4に記載の情報処理装置。
(Appendix 5)
The specific part is:
A plurality of classification units for classifying the difference of each function extracted by the extraction unit and the end extraction unit according to a plurality of difference time zones;
The information processing apparatus according to appendix 4, further comprising: a plurality of specifying units that specify a large number of functions classified into a time zone with a short difference.

(付記6)
前記抽出部により抽出した各関数の時間帯別に分類された数、または、前記終了抽出部により抽出した各関数の時間帯別に分類された数に対し重み付け処理する重量部を備え、
前記複数特定部は、
前記重量部により重み付け処理された後に、差分が短い時間帯に分類された数の大きい関数を特定する
付記4に記載の情報処理装置。
(Appendix 6)
A weight part for weighting the number classified by time zone of each function extracted by the extraction unit, or the number classified by time zone of each function extracted by the end extraction unit,
The plurality of specific parts are:
The information processing apparatus according to claim 4, wherein after the weighting process is performed by the weight part, a large number of functions classified into a time zone having a short difference are specified.

(付記7)
前記複数特定部は、
前記重量部により重み付け処理された後に、差分が最も短い時間帯に分類された数の最も大きい関数を特定する
付記6に記載の情報処理装置。
(Appendix 7)
The plurality of specific parts are:
The information processing apparatus according to claim 6, wherein after the weighting process is performed by the weight part, the function having the largest number classified into the time zone having the shortest difference is identified.

(付記8)
プログラムを実行する演算処理部と、記憶部とを有する情報処理装置の解析方法において、
前記情報処理装置が、
実行中の関数を示す情報である関数情報を所定間隔で採取するとともに、前記関数情報と前記関数情報とを採取した時刻であるサンプリング時刻を前記記憶部に記憶し、
前記演算処理部がアイドル状態に移行した場合、移行時刻を取得して前記記憶部に記憶し、
前記記憶部に記憶した移行時刻と、前記記憶部に記憶したサンプリング時刻のうち前記移行時刻直前のサンプリング時刻との差分、及び、前記サンプリング時刻に対応する関数情報を抽出する抽出部と、
抽出された各関数情報に対応する差分の分布に基づき、アイドル原因となる関数を特定する情報処理装置の解析方法。
(Appendix 8)
In an analysis method of an information processing apparatus having an arithmetic processing unit that executes a program and a storage unit,
The information processing apparatus is
Collecting function information that is information indicating a function being executed at a predetermined interval, and storing a sampling time that is a time when the function information and the function information are collected in the storage unit,
When the arithmetic processing unit shifts to the idle state, obtain the transition time and store in the storage unit,
A difference between the transition time stored in the storage unit and the sampling time immediately before the transition time among the sampling times stored in the storage unit, and an extraction unit that extracts function information corresponding to the sampling time;
An information processing apparatus analysis method for identifying a function that causes an idle based on a distribution of differences corresponding to each extracted function information.

(付記9)
プログラムを実行する演算処理部と、記憶部とを有する情報処理装置の解析プログラムにおいて、
前記情報処理装置に、
実行中の関数を示す情報である関数情報を所定間隔で採取させるとともに、前記関数情報と前記関数情報とを採取した時刻であるサンプリング時刻を前記記憶部に記憶させ、
前記演算処理部がアイドル状態に移行した場合、移行時刻を取得して前記記憶部に記憶させ、
前記記憶部に記憶した移行時刻と、前記記憶部に記憶したサンプリング時刻のうち前記移行時刻直前のサンプリング時刻との差分、及び、前記サンプリング時刻に対応する関数情報を抽出させ、
抽出された各関数情報に対応する差分の分布に基づき、アイドル原因となる関数を特定させる情報処理装置の解析プログラム。
(Appendix 9)
In an analysis program for an information processing apparatus having an arithmetic processing unit that executes a program and a storage unit,
In the information processing apparatus,
The function information which is information indicating the function being executed is collected at predetermined intervals, and the sampling time which is the time when the function information and the function information are collected is stored in the storage unit,
When the arithmetic processing unit shifts to an idle state, the transition time is acquired and stored in the storage unit,
The difference between the transition time stored in the storage unit and the sampling time immediately before the transition time among the sampling times stored in the storage unit, and the function information corresponding to the sampling time are extracted,
An analysis program for an information processing apparatus that identifies a function that causes an idle based on a distribution of differences corresponding to each extracted function information.

1 情報処理装置
1A 可搬型記録媒体
1B 半導体メモリ
10A 読み取り部
11 CPU
12 RAM
13 入力部
14 表示部
15 記憶部
15P 制御プログラム
16 通信部
18 時計部
151 OS
152 プロファイラ
153 ユーザプログラム
154 サンプリングテーブル
155 移行時刻テーブル
156 差分テーブル
157 統計テーブル
158 終了時刻テーブル
159 終了差分テーブル
1510 移行統計テーブル
1511 終了統計テーブル
261 関数情報採取部
262 移行取得部
263 抽出部
264 特定部
265 分類部
267 関数特定部
DESCRIPTION OF SYMBOLS 1 Information processing apparatus 1A Portable recording medium 1B Semiconductor memory 10A Reading part 11 CPU
12 RAM
13 Input unit 14 Display unit 15 Storage unit 15P Control program 16 Communication unit 18 Clock unit 151 OS
152 Profiler 153 User program 154 Sampling table 155 Transition time table 156 Difference table 157 Statistics table 158 End time table 159 End difference table 1510 Transition statistics table 1511 End statistics table 261 Function information collection unit 262 Migration acquisition unit 263 Extraction unit 264 Identification unit 265 Classification part 267 Function identification part

Claims (5)

プログラムを実行する演算処理部と、
実行中の関数を示す情報である関数情報を所定間隔で採取するとともに、前記関数情報と前記関数情報とを採取した時刻であるサンプリング時刻を記憶部に記憶する関数情報採取部と、
前記演算処理部がアイドル状態に移行した場合、移行時刻を取得して前記記憶部に記憶する移行取得部と、
前記記憶部に記憶した移行時刻と、前記記憶部に記憶したサンプリング時刻のうち前記移行時刻直前のサンプリング時刻との差分、及び、前記サンプリング時刻に対応する関数情報を抽出する抽出部と、
該抽出部が抽出した各関数情報に対応する差分の分布に基づき、アイドル原因となる関数を特定する特定部と
を備える情報処理装置。
An arithmetic processing unit for executing a program;
A function information collection unit that collects function information that is information indicating a function being executed at a predetermined interval, and stores a sampling time that is a time at which the function information and the function information are collected;
When the arithmetic processing unit transitions to an idle state, a transition acquisition unit that acquires a transition time and stores it in the storage unit;
A difference between the transition time stored in the storage unit and the sampling time immediately before the transition time among the sampling times stored in the storage unit, and an extraction unit that extracts function information corresponding to the sampling time;
An information processing apparatus comprising: a specifying unit that specifies a function that causes an idle based on a distribution of differences corresponding to each function information extracted by the extraction unit.
前記特定部は、
複数の差分の時間帯別に、各関数の差分を分類する分類部と、
差分が短い時間帯に分類された数に基づき、前記アイドル原因となる関数を特定する関数特定部と
を備える請求項1に記載の情報処理装置。
The specific part is:
A classification unit that classifies the difference of each function according to a plurality of difference time zones;
The information processing apparatus according to claim 1, further comprising: a function specifying unit that specifies a function that causes the idle based on a number classified into a time zone in which the difference is short.
前記関数特定部は、
最も短い時間帯に分類された数が最も大きい関数を、前記アイドル原因となる関数として特定する
請求項2に記載の情報処理装置。
The function specifying unit is
The information processing apparatus according to claim 2, wherein a function having the largest number classified into the shortest time zone is specified as the function causing the idle.
プログラムを実行する演算処理部と、記憶部とを有する情報処理装置の解析方法において、
前記情報処理装置が、
実行中の関数を示す情報である関数情報を所定間隔で採取するとともに、前記関数情報と前記関数情報とを採取した時刻であるサンプリング時刻を前記記憶部に記憶し、
前記演算処理部がアイドル状態に移行した場合、移行時刻を取得して前記記憶部に記憶し、
前記記憶部に記憶した移行時刻と、前記記憶部に記憶したサンプリング時刻のうち前記移行時刻直前のサンプリング時刻との差分、及び、前記サンプリング時刻に対応する関数情報を抽出する抽出部と、
抽出された各関数情報に対応する差分の分布に基づき、アイドル原因となる関数を特定する情報処理装置の解析方法。
In an analysis method of an information processing apparatus having an arithmetic processing unit that executes a program and a storage unit,
The information processing apparatus is
Collecting function information that is information indicating a function being executed at a predetermined interval, and storing a sampling time that is a time when the function information and the function information are collected in the storage unit,
When the arithmetic processing unit shifts to the idle state, obtain the transition time and store in the storage unit,
A difference between the transition time stored in the storage unit and the sampling time immediately before the transition time among the sampling times stored in the storage unit, and an extraction unit that extracts function information corresponding to the sampling time;
An information processing apparatus analysis method for identifying a function that causes an idle based on a distribution of differences corresponding to each extracted function information.
プログラムを実行する演算処理部と、記憶部とを有する情報処理装置の解析プログラムにおいて、
前記情報処理装置に、
実行中の関数を示す情報である関数情報を所定間隔で採取させるとともに、前記関数情報と前記関数情報とを採取した時刻であるサンプリング時刻を前記記憶部に記憶させ、
前記演算処理部がアイドル状態に移行した場合、移行時刻を取得して前記記憶部に記憶させ、
前記記憶部に記憶した移行時刻と、前記記憶部に記憶したサンプリング時刻のうち前記移行時刻直前のサンプリング時刻との差分、及び、前記サンプリング時刻に対応する関数情報を抽出させ、
抽出された各関数情報に対応する差分の分布に基づき、アイドル原因となる関数を特定させる情報処理装置の解析プログラム。
In an analysis program for an information processing apparatus having an arithmetic processing unit that executes a program and a storage unit,
In the information processing apparatus,
The function information which is information indicating the function being executed is collected at predetermined intervals, and the sampling time which is the time when the function information and the function information are collected is stored in the storage unit,
When the arithmetic processing unit shifts to an idle state, the transition time is acquired and stored in the storage unit,
The difference between the transition time stored in the storage unit and the sampling time immediately before the transition time among the sampling times stored in the storage unit, and the function information corresponding to the sampling time are extracted,
An analysis program for an information processing apparatus that identifies a function that causes an idle based on a distribution of differences corresponding to each extracted function information.
JP2013227686A 2013-10-31 2013-10-31 Information processing apparatus, information processing apparatus analysis method, and information processing apparatus analysis program Expired - Fee Related JP6131829B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013227686A JP6131829B2 (en) 2013-10-31 2013-10-31 Information processing apparatus, information processing apparatus analysis method, and information processing apparatus analysis program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013227686A JP6131829B2 (en) 2013-10-31 2013-10-31 Information processing apparatus, information processing apparatus analysis method, and information processing apparatus analysis program

Publications (2)

Publication Number Publication Date
JP2015088068A true JP2015088068A (en) 2015-05-07
JP6131829B2 JP6131829B2 (en) 2017-05-24

Family

ID=53050756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013227686A Expired - Fee Related JP6131829B2 (en) 2013-10-31 2013-10-31 Information processing apparatus, information processing apparatus analysis method, and information processing apparatus analysis program

Country Status (1)

Country Link
JP (1) JP6131829B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0659944A (en) * 1992-08-06 1994-03-04 Fujitsu Ltd Device for evaluating performance of parallel processing
JP2007133604A (en) * 2005-11-09 2007-05-31 Fujitsu Ten Ltd Computer system, operational state determination program and operational state determination method
JP2007213205A (en) * 2006-02-08 2007-08-23 Fujitsu Ltd System analysis program, device, and method
JP2011164839A (en) * 2010-02-08 2011-08-25 Fujitsu Ltd Counting method, counting program, and counting device
JP2014228889A (en) * 2013-05-17 2014-12-08 富士通株式会社 Performance information collection program, information processing device, and performance information collection method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0659944A (en) * 1992-08-06 1994-03-04 Fujitsu Ltd Device for evaluating performance of parallel processing
JP2007133604A (en) * 2005-11-09 2007-05-31 Fujitsu Ten Ltd Computer system, operational state determination program and operational state determination method
JP2007213205A (en) * 2006-02-08 2007-08-23 Fujitsu Ltd System analysis program, device, and method
JP2011164839A (en) * 2010-02-08 2011-08-25 Fujitsu Ltd Counting method, counting program, and counting device
JP2014228889A (en) * 2013-05-17 2014-12-08 富士通株式会社 Performance information collection program, information processing device, and performance information collection method

Also Published As

Publication number Publication date
JP6131829B2 (en) 2017-05-24

Similar Documents

Publication Publication Date Title
WO2019128426A1 (en) Method for training model and information recommendation system
US10216558B1 (en) Predicting drive failures
CN105608199B (en) Extension method and device for standard questions in intelligent question-answering system
CN109167816B (en) Information pushing method, device, equipment and storage medium
JP6260130B2 (en) Job delay detection method, information processing apparatus, and program
CN110019668A (en) A kind of text searching method and device
TW201303620A (en) Generation of topic-based language models for an app search engine
WO2017000743A1 (en) Method and device for software recommendation
KR20190128246A (en) Searching methods and apparatus and non-transitory computer-readable storage media
CN102622238A (en) Method and device for interface layout of mobile devices
CN113543117B (en) Prediction method and device for number portability user and computing equipment
CN109144715B (en) Resource optimization and update method, server and equipment
TW202038217A (en) Data tag generation method and apparatus, model training method and apparatus, and event identification method and apparatus
CN108604142B (en) Touch screen device operation method and touch screen device
JP2011145996A (en) Reviewer evaluation apparatus, reviewer evaluation method and program
CN112966964A (en) Product matching method, device, equipment and storage medium based on design requirements
CN117234859A (en) Performance event monitoring method, device, equipment and storage medium
JP6131829B2 (en) Information processing apparatus, information processing apparatus analysis method, and information processing apparatus analysis program
JP5292247B2 (en) Content tag collection method, content tag collection program, content tag collection system, and content search system
CN108804917B (en) File detection method and device, electronic equipment and storage medium
JP6390085B2 (en) Program, information processing apparatus, and information processing method
JP6048119B2 (en) Abnormal cause estimation program, abnormal cause estimation apparatus, and abnormal cause estimation method
US20220051077A1 (en) System and method for selecting components in designing machine learning models
JP5361090B2 (en) Topic word acquisition apparatus, method, and program
CN110059272B (en) Page feature recognition method and device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170314

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170403

R150 Certificate of patent or registration of utility model

Ref document number: 6131829

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees