JP5278901B2 - 頻繁に発生するイベントを推定する方法 - Google Patents
頻繁に発生するイベントを推定する方法 Download PDFInfo
- Publication number
- JP5278901B2 JP5278901B2 JP2008273732A JP2008273732A JP5278901B2 JP 5278901 B2 JP5278901 B2 JP 5278901B2 JP 2008273732 A JP2008273732 A JP 2008273732A JP 2008273732 A JP2008273732 A JP 2008273732A JP 5278901 B2 JP5278901 B2 JP 5278901B2
- Authority
- JP
- Japan
- Prior art keywords
- events
- event
- grouping
- objects
- class
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
手順1:イベントを、メソッドやベーシックブロック等の特定の命令アドレスの範囲ごとにグループ分けする。
手順2:グループごとにイベントの統計処理を行い、一定の閾値以上の頻度で発生するイベント(以下、頻出イベントと表記)を抽出する。
手順3:手順2で抽出された頻出イベント同士は短時間に連続して発生しているものとして特定される。
手順4:イベント又はオブジェクトの組み合わせを推定する方法だけからでは、複数のイベントが偶然に同じ範囲で発生している場合を誤って見つけてしまう場合があるため、このような誤判定を減らすために、さらにオブジェクト間の参照関係の情報を使用する。
手順5:イベント又はオブジェクトの組み合わせの推定において、命令アドレスの範囲に加えてヒープの種類によりグループ分けを実施し、これにより実際にオブジェクト配置の最適化等が可能な組み合わせだけに制限して推定する。ヒープの種類としては、例えば新世代領域(nursery)と旧世代領域(tenure)との区別等を用い得る。
S100:パフォーマンスモニタを使用してイベントの起こった命令アドレスの情報、及び必要な場合にはイベントの詳細についての付加情報についてサンプルを集める。
S110:イベントを、メソッドやベーシックブロック等の特定の命令アドレスの範囲ごとにグループ分けする。
S120:グループごとにイベントの統計処理を行い、一定の閾値以上の頻度で発生するイベント(頻出イベント)を抽出する。
S130:抽出された頻出イベントは短時間に連続して発生しているイベントとして特定される。
S200:パフォーマンスモニタを使用してキャッシュミスの起こった命令アドレス及びその際にアクセスしようとした参照先のオブジェクト及びフィールドについてのサンプルを集める。
S210:キャッシュミスイベントを特定の命令アドレスの範囲(例えば、メソッド)ごとにグループ分けする。
S220:グループごとにイベントの統計処理を行い、一定の閾値以上のキャッシュミスを起こすフィールド(以下、頻出フィールドと表記)及びオブジェクトのクラス(以下、頻出クラスと表記)を抽出する。
S230:複数の頻出クラスがある場合には、それらのオブジェクトの組み合わせは連続してキャッシュミスを起こすものであると特定される。同様に、頻出フィールドを複数含むクラスがある場合には、これらのフィールドは連続してキャッシュミスを起こすものであると特定される。
S310:キャッシュミスイベントを特定の命令アドレスの範囲(例えばメソッドやベーシックブロック)ごとにグループ分けする。
S320:グループごとにイベントの統計処理を行い、その範囲内で一定の閾値以上の回数のキャッシュミスを起こすクラス(以下、頻出クラスと表記)を抽出する。
S330:キャッシュミスを起こしたオブジェクトの内、頻出クラスのインスタンスであるものについて、そこから参照されているオブジェクトを調べ、頻出クラスのオブジェクトが存在した場合には、参照元クラスと参照先クラスの組み合わせごとに出現した回数を記録する。
S340:ここで生成した参照元クラスと参照先クラスの組み合わせの内、出現回数がある閾値を越えたものは、短時間で連続してアクセスされるオブジェクトであると特定される。
本発明に係る方法を用い、キャッシュミスを連続で起こす複数オブジェクトの組み合わせを推定する例を示す。例えば、パフォーマンスモニタでのキャッシュミスのサンプリング結果が、次の表のようになった場合について説明する。
本発明に係る方法を用い、キャッシュミスを連続で起こす複数フィールドを推定する場合について説明する。例えば、パフォーマンスモニタでのキャッシュミスのサンプリング結果が、次の表のようになったとする。
図4は、本発明の一実施形態に係る、頻出イベント推定装置のハードウェア構成を示す図である。図4においては、頻出イベント推定装置を情報処理装置1000とし、そのハードウェア構成を例示する。以下は、コンピュータを典型とする情報処理装置として全般的な構成を説明するが、その環境に応じて必要最小限な構成を選択できることはいうまでもない。
Claims (10)
- 時間において離散的なイベントサンプルに基づいて時間的に連続して発生するイベントを特定する方法であって、
前記イベントを特定の命令アドレスの範囲ごとにグループ分けするステップと、
前記グループ分けしたグループごとに所定の閾値以上の頻度で発生するイベントを抽出するステップと、
同一グループ内において抽出されたイベント同士を時間的に連続して発生するイベントとして分類するステップと、
を含む方法。 - 前記離散的なイベントサンプルは、パフォーマンスモニタを用いるイベントサンプルである、請求項1に記載の方法。
- 前記グループ分けするステップは、さらに前記イベントをメソッド又はベーシックブロックと関連付けられる特定の命令アドレスの範囲ごとにグループ分けする、請求項1又は2に記載の方法。
- さらに、前記イベントが発生した命令アドレス、アクセスしようとした参照先のオブジェクト及びフィールドを特定するステップと、
前記イベントを特定の命令アドレスの範囲ごとにグループ分けするステップと、
前記グループ分けしたグループごとに所定の閾値以上の頻度で前記イベントが発生する前記フィールド及び前記オブジェクトのクラスを抽出するステップと、
同一グループ内において抽出された前記オブジェクトのクラスが複数存在するならば、前記オブジェクトの組み合わせを、連続して前記イベントを発生する組み合わせとして分類するステップと、
を含む、請求項1から3のいずれか一項に記載の方法。 - 前記イベントを発生する組み合わせとして分類するステップは、さらに、ヒープの種類に基づくグループ分けを用い、オブジェクト配置の最適化が可能な組み合わせのみを分類する、請求項4に記載の方法。
- 前記連続して前記イベントを発生する組み合わせとして分類された前記オブジェクトを、メモリ内で同じキャッシュラインに入るように配置するステップを含む、請求項4又は5に記載の方法。
- 前記所定の閾値以上の頻度で前記イベントが発生する前記フィールドを複数含むクラスのオブジェクトが、異なるキャッシュラインに配置されないよう制限するステップを含む、請求項4から6のいずれか一項に記載の方法。
- コンピュータを用いて、請求項1から7に記載のいずれかの方法のステップを実行させるためのコンピュータ・プログラム。
- 時間において離散的なイベントサンプルに基づいて時間的に連続して発生するイベントを特定するシステムであって、
前記イベントを特定の命令アドレスの範囲ごとにグループ分けするグループ分け手段と、
前記グループ分けしたグループごとに所定の閾値以上の頻度で発生するイベントを抽出する抽出手段と、
同一グループ内において抽出されたイベント同士を時間的に連続して発生するイベントとして分類する分類手段と、
を含むシステム。 - パフォーマンスモニタを用いて時間において離散的なイベントサンプルに基づいて時間的に連続して発生するイベントを特定する方法であって、
前記イベントをメソッド又はベーシックブロックと関連付けられる特定の命令アドレスの範囲ごとにグループ分けするステップと、
前記グループ分けしたグループごとに所定の閾値以上の頻度で発生するイベントを抽出するステップと、
同一グループ内において抽出されたイベント同士を時間的に連続して発生するイベントとして分類するステップと、
前記イベントが発生した命令アドレス、アクセスしようとした参照先のオブジェクト及びフィールドを特定するステップと、
前記グループ分けしたグループごとに所定の閾値以上の頻度で前記イベントが発生する前記フィールド及び前記オブジェクトのクラスを抽出するステップと、
同一グループ内において抽出された前記オブジェクトのクラスが複数存在するならば、前記オブジェクトの組み合わせを、連続して前記イベントを発生する組み合わせとして分類するステップと、
を含む方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008273732A JP5278901B2 (ja) | 2008-10-24 | 2008-10-24 | 頻繁に発生するイベントを推定する方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008273732A JP5278901B2 (ja) | 2008-10-24 | 2008-10-24 | 頻繁に発生するイベントを推定する方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010102525A JP2010102525A (ja) | 2010-05-06 |
JP5278901B2 true JP5278901B2 (ja) | 2013-09-04 |
Family
ID=42293119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008273732A Expired - Fee Related JP5278901B2 (ja) | 2008-10-24 | 2008-10-24 | 頻繁に発生するイベントを推定する方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5278901B2 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480862B1 (en) * | 1999-04-23 | 2002-11-12 | International Business Machines Corporation | Relation-based ordering of objects in an object heap |
JP3698949B2 (ja) * | 2000-03-28 | 2005-09-21 | Necマイクロシステム株式会社 | 命令キャッシュへの関数割付最適化装置、関数割付最適化方法及び関数割付最適化手順を記録した記録媒体 |
US7490117B2 (en) * | 2003-12-31 | 2009-02-10 | Intel Corporation | Dynamic performance monitoring-based approach to memory management |
JP4899511B2 (ja) * | 2006-02-08 | 2012-03-21 | 富士通株式会社 | システム分析プログラム、システム分析装置、およびシステム分析方法 |
JP4284332B2 (ja) * | 2006-04-21 | 2009-06-24 | 株式会社東芝 | パフォーマンスモニタ装置、データ収集方法及びそのプログラム |
-
2008
- 2008-10-24 JP JP2008273732A patent/JP5278901B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010102525A (ja) | 2010-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8032869B2 (en) | Profiling method and computer product | |
US8793672B2 (en) | Optimizing program by reusing execution result of subclass test function | |
JP5523872B2 (ja) | プログラムの動的分析方法及びその装置 | |
US10558569B2 (en) | Cache controller for non-volatile memory | |
US7698690B2 (en) | Identifying code that wastes time performing redundant computation | |
US8990792B2 (en) | Method for constructing dynamic call graph of application | |
US20080148241A1 (en) | Method and apparatus for profiling heap objects | |
US8122439B2 (en) | Method and computer program product for dynamically and precisely discovering deliquent memory operations | |
JP6447348B2 (ja) | ダンプデータ管理プログラム、ダンプデータ管理方法、およびダンプデータ管理装置 | |
JP2013033412A (ja) | メモリ管理方法、プログラム及びシステム | |
US20090083716A1 (en) | Profiling method and program | |
US9250939B2 (en) | Information processing device, profile target determining program, and method | |
US9996447B2 (en) | Automated identification of redundant method calls | |
US20110239197A1 (en) | Instance-based field affinity optimization | |
EP3001312B1 (en) | Method, device and computer program product for detecting data dependencies within a program | |
JP5278901B2 (ja) | 頻繁に発生するイベントを推定する方法 | |
US8261245B2 (en) | Method and system for associating profiler data with a reference clock | |
US11010158B2 (en) | Determining the availability of memory optimizations by analyzing a running binary | |
US10241884B2 (en) | Information processing apparatus and method for collecting performance data | |
KR101577771B1 (ko) | 애플리케이션의 동적 콜 그래프 생성 방법 | |
US20230333987A1 (en) | Computer-readable recording medium, information processing method, and information processing device | |
JP7564447B2 (ja) | 異常要因判定方法および異常要因判定プログラム | |
JP5682109B2 (ja) | カバレッジ情報生成プログラム、カバレッジ情報生成装置およびカバレッジ情報生成方法 | |
JP2014056539A (ja) | プローブ挿入装置及びプローブ挿入方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110816 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130405 |
|
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: 20130423 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20130424 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130514 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |