JP2005215816A - ハードウェアモニタを用いた性能プロファイリング方法 - Google Patents
ハードウェアモニタを用いた性能プロファイリング方法 Download PDFInfo
- Publication number
- JP2005215816A JP2005215816A JP2004019175A JP2004019175A JP2005215816A JP 2005215816 A JP2005215816 A JP 2005215816A JP 2004019175 A JP2004019175 A JP 2004019175A JP 2004019175 A JP2004019175 A JP 2004019175A JP 2005215816 A JP2005215816 A JP 2005215816A
- Authority
- JP
- Japan
- Prior art keywords
- function
- performance profiling
- performance
- interrupt
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
従来技術においては、アプリケーションプログラムの性能プロファイリングを実施する場合は、当該アプリケーションプログラムの中で性能プロファイリングを実施したい部分(関数あるいはルーチン)の前後に、性能プロファイリング開始呼び出し(201)、性能プロファイリング終了呼び出し(203)および性能プロファイリング関数prof(210)をそれぞれ必要な組合わせ分付加したアプリケーションプログラムを準備する必要があった。
【解決手段】
本発明では、情報処理装置内の命令プロセッサに組み込まれている、ハードウェアモニタと呼ばれるCPU性能プロファイリングのための論理、およびその論理で提供されるある一定の閾値を超える回数の測定イベントが発生した際に割込みを発生する機能と、アプリケーションプログラムの性能プロファイリングを実施するための割込み処理ハンドラを用いる事で、上述の課題を解決するものである。
【選択図】 図1
Description
図6において200は情報処理装置上でアプリケーションプログラムが配置されるプログラムメモリ領域を示している。200上にはアプリケーションプログラムを構成する関数の一つである関数func_a(202)およびfunc_b(205)がそれぞれ配置されている。またアプリケーションプログラムを構成する関数とは別に、性能プロファイリング用の関数210が同様に200上に配置されている。さらに、関数func_a(202)およびfunc_b(205)の前後にはそれぞれprof(210)を呼び出すための性能プロファイリング開始呼び出し(201,204)および性能プロファイリング終了呼び出し(203,206)が付加され配置されている。
本発明は、既存のアプリケーションプログラムに対して性能プロファイリングを目的としたアプリケーションプログラムの修正、再コンパイルおよび再起動を行うこと無く、性能プロファイリングを実施するための方法を提供することを目的とする。
100は情報処理装置上でアプリケーションプログラムが配置されるプログラムメモリ領域を示している。100上にはアプリケーションプログラムを構成する関数の一つである関数func_a(101)およびfunc_b(102)がそれぞれ配置されている。またアプリケーションプログラムとは独立した性能プロファイリング用割込みハンドラ120が100上に別途配置されている。さらに、ハードウェアモニタ(110)と呼ばれる性能プロファイリング専用の論理ユニットが情報処理装置内のCPUに内蔵されている。
120内では先ず割込み元アドレスを取得する(151)。これは一般のオペレーティングシステムが、割込み処理完了時に元の実行中のアドレスに処理を復旧するために保持しておくアドレスのことである。
図1において、例えばハードウェアモニタ(110)に対して検出するイベント130の対象として「命令実行消費サイクル数」を、そして140の割込みを起動するカウントの閾値112として「100回」を指定したとする。
101:性能プロファイリング対象関数func_a
102:性能プロファイリング対象関数func_b
110:ハードウェアモニタ
111:イベント発生回数カウンタ
112:閾値保持レジスタ
113:比較器
120:性能プロファイル用割込みハンドラ
121:性能プロファイル情報保存領域
130:測定対象イベント検出信号
140:割込み信号
151:性能プロファイル用割込みハンドラ中での処理
152:性能プロファイル用割込みハンドラ中での処理
153:性能プロファイル用割込みハンドラ中での処理
154:性能プロファイル用割込みハンドラ中での処理
160:関数名・ルーチン名始点終点アドレス一覧表
170:性能プロファイリング結果一覧表
200:プログラムメモリ領域
201:性能プロファイリング開始呼び出し
202:性能プロファイリング対象関数func_a
203:性能プロファイリング終了呼び出し
204:性能プロファイリング開始呼び出し
205:性能プロファイリング対象関数func_b
206:性能プロファイリング終了呼び出し
210:性能プロファイリング関数prof
211:性能プロファイル情報保存領域
220:性能プロファイリング開始
221:性能プロファイリング終了
251:性能プロファイル用ルーチン中での処理
252:性能プロファイル用ルーチン中での処理
261:性能プロファイル用ルーチン中での処理
262:性能プロファイル用ルーチン中での処理
263:性能プロファイル用ルーチン中での処理
264:性能プロファイル用ルーチン中での処理
270:性能プロファイリング結果一覧表
Claims (1)
- 情報処理装置のソフトウェアの性能プロファイリング方法について、アプリケーションプログラムを構成する個々の関数あるいはルーチンの実行時間を計測し比較することでどの関数あるいはルーチンが実行時間を消費しているかを判定するプロファイリング方法において、
情報処理装置内の命令プロセッサに組み込まれているハードウェアモニタと呼ばれるプロセッサ性能プロファイリングのための論理で、該論理により提供されるある一定の閾値を超える回数の測定イベントが発生した際に割込みを発生させる手段と、該割込みが発生した際に起動される割込み処理手段と、を用い、
該割込みが発生した際に起動される割込み処理手段において、アプリケーションプログラム内のどの関数あるいはルーチンで該割込みが発生したかを割込み発生時点での実行アドレスより求め、個々の関数あるいはルーチンでの該割込み発生回数を数えることでアプリケーションプログラムの性能プロファイリング情報を蓄積し、個々の関数あるいはルーチンでの該割込み発生回数を比較することで、どの関数あるいはルーチンでより多くの実行時間を消費しているかを判定することにより、
該アプリケーションプログラムに対してプログラムの追加・変更、再コンパイルあるいは再起動を行う事無く性能プロファイリング情報を採取することを特徴とするソフトウェアの性能プロファイリング方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004019175A JP2005215816A (ja) | 2004-01-28 | 2004-01-28 | ハードウェアモニタを用いた性能プロファイリング方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004019175A JP2005215816A (ja) | 2004-01-28 | 2004-01-28 | ハードウェアモニタを用いた性能プロファイリング方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005215816A true JP2005215816A (ja) | 2005-08-11 |
Family
ID=34903469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004019175A Pending JP2005215816A (ja) | 2004-01-28 | 2004-01-28 | ハードウェアモニタを用いた性能プロファイリング方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005215816A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008210011A (ja) * | 2007-02-23 | 2008-09-11 | Fujitsu Ltd | プロファイリング装置およびプロファイリングプログラム |
JP2009075812A (ja) * | 2007-09-20 | 2009-04-09 | Fujitsu Microelectronics Ltd | プロファイリング方法及びプログラム |
EP2230602A1 (en) | 2009-03-18 | 2010-09-22 | Fujitsu Limited | Processing apparatus and method for acquiring log information |
JP2011039903A (ja) * | 2009-08-17 | 2011-02-24 | Fujitsu Ltd | プロセス状態検知プログラム、情報処理装置、プロセス状態検知方法 |
JP2014164379A (ja) * | 2013-02-22 | 2014-09-08 | International Business Maschines Corporation | 実フットプリント算出方法、該算出方法を用いたインラインするメソッドの決定方法、装置及びプログラム |
JP2016224811A (ja) * | 2015-06-02 | 2016-12-28 | 富士通株式会社 | 情報処理装置、実行情報記録プログラムおよび実行情報記録方法 |
WO2017022016A1 (ja) * | 2015-07-31 | 2017-02-09 | 株式会社東芝 | プログラム情報生成システム、方法、及びプログラム |
US9619361B2 (en) | 2013-03-18 | 2017-04-11 | Fujitsu Limited | Performance profiling apparatus and performance profiling method |
-
2004
- 2004-01-28 JP JP2004019175A patent/JP2005215816A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008210011A (ja) * | 2007-02-23 | 2008-09-11 | Fujitsu Ltd | プロファイリング装置およびプロファイリングプログラム |
JP2009075812A (ja) * | 2007-09-20 | 2009-04-09 | Fujitsu Microelectronics Ltd | プロファイリング方法及びプログラム |
EP2230602A1 (en) | 2009-03-18 | 2010-09-22 | Fujitsu Limited | Processing apparatus and method for acquiring log information |
US8731688B2 (en) | 2009-03-18 | 2014-05-20 | Fujitsu Limited | Processing apparatus and method for acquiring log information |
JP2011039903A (ja) * | 2009-08-17 | 2011-02-24 | Fujitsu Ltd | プロセス状態検知プログラム、情報処理装置、プロセス状態検知方法 |
JP2014164379A (ja) * | 2013-02-22 | 2014-09-08 | International Business Maschines Corporation | 実フットプリント算出方法、該算出方法を用いたインラインするメソッドの決定方法、装置及びプログラム |
US9619361B2 (en) | 2013-03-18 | 2017-04-11 | Fujitsu Limited | Performance profiling apparatus and performance profiling method |
JP2016224811A (ja) * | 2015-06-02 | 2016-12-28 | 富士通株式会社 | 情報処理装置、実行情報記録プログラムおよび実行情報記録方法 |
WO2017022016A1 (ja) * | 2015-07-31 | 2017-02-09 | 株式会社東芝 | プログラム情報生成システム、方法、及びプログラム |
JPWO2017022016A1 (ja) * | 2015-07-31 | 2017-09-21 | 株式会社東芝 | プログラム情報生成システム、方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2749528B2 (ja) | エラー解析用のトレーサシステム | |
US7426731B2 (en) | Determining processor usage by a thread | |
EP0652518B1 (en) | Operating system based performance monitoring of programs | |
US9081629B2 (en) | Excluding counts on software threads in a state | |
US20060059486A1 (en) | Call stack capture in an interrupt driven architecture | |
JP5353227B2 (ja) | 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。 | |
KR102028663B1 (ko) | 에러 검출 방법 및 장치 | |
EP3835944B1 (en) | Apparatus and method for source code optimisation | |
US9971603B2 (en) | Causing an interrupt based on event count | |
US9575766B2 (en) | Causing an interrupt based on event count | |
JP2002342114A (ja) | トレースデータ採取可能なプロセッサ | |
EP2735970B1 (en) | Dynamic library profiling method | |
JP2005215816A (ja) | ハードウェアモニタを用いた性能プロファイリング方法 | |
US20040168005A1 (en) | Methods for interrupting a program and for obtaining program execution acquisition | |
CN107423206B (zh) | 一种衡量系统管理中断时间的方法及装置 | |
KR20120003088A (ko) | 결정적 프로그레스 인덱스를 이용한 스레드 프로그레스 트래킹 방법 및 장치 | |
JP4066838B2 (ja) | 共有リソースの競合検出器および共有リソースの競合検出方法 | |
CN114003498A (zh) | 软件异常检测方法、装置和电子设备 | |
US10387152B2 (en) | Selecting branch instruction execution paths based on previous branch path performance | |
JP2009217385A (ja) | プロセッサ及びマルチプロセッサ | |
US11847041B2 (en) | System and method for probe injection for code coverage | |
US10387190B2 (en) | System and method of executing a plurality of threads using thread switching on execution time-out using instruction re-write | |
KR20230013124A (ko) | 프로세싱 회로부에 의해 프로세싱된 샘플링된 동작들의 프로파일링 | |
JPH04256036A (ja) | プログラム解析システム | |
Uhrig | Tracing static fields of embedded parallel Java applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060424 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061130 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091104 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091228 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100126 |