JP5618796B2 - 計算機、計算機の制御方法及びプログラム - Google Patents
計算機、計算機の制御方法及びプログラム Download PDFInfo
- Publication number
- JP5618796B2 JP5618796B2 JP2010268951A JP2010268951A JP5618796B2 JP 5618796 B2 JP5618796 B2 JP 5618796B2 JP 2010268951 A JP2010268951 A JP 2010268951A JP 2010268951 A JP2010268951 A JP 2010268951A JP 5618796 B2 JP5618796 B2 JP 5618796B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- time
- program
- storage area
- computer
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
- G06F12/0276—Generational garbage collection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Memory System (AREA)
Description
所定の契機で時間情報を更新し、オブジェクトの生成時に、前記オブジェクトを生成するプログラムの情報と、該オブジェクト生成時の前記時間情報とを取得し、これを関連付けて記憶装置に記録し、前記記憶領域に格納されたオブジェクトのうち後のプログラムの実行に不要なオブジェクトを検出し、該検出時の前記時間情報を取得し、前記生成時の時間情報と、前記検出時の時間情報との差分を前記プログラムの情報と関連付けて、前記記録装置に記録することを特徴とする。
図1に、本発明を適用した第1実施形態である計算機システム100の構成を示す。計算機システム100は、CPU1、主記憶装置としてのメモリ2及び補助記憶装置3を備えたサーバ装置等の汎用の計算機装置から構成される。また、ネットワーク等を介して外部記憶装置4を備えている。入出力装置5は、ユーザの操作により種々のデータや閾値等を入力したりする装置である。表示装置6は、計算機システム100で利用する種々の表や処理結果等を表示可能なモニタ装置である。
特に、動的にオブジェクトの寿命を管理できるようにすることで、当該寿命情報を用いて、特定のオブジェクトを削除したり、GC対象外のメモリ領域に移動させたりといった種々のメモリ管理技術に応用することで、それら種々のメモリ管理技術の処理効率及び利便性を更に向上させる効果が期待できる。
上述した第1実施形態では、プログラム実行部12が生成したオブジェクトの生成点における情報が、生成点表24及びオブジェクト生成表23に既に登録済みである場合、登録しないように構成している(図6:S182参照)。この構成は、オブジェクト寿命解析部19が行う、同じ生成点で生成されるオブジェクトの寿命解析を1回にでき、解析処理時間を短縮できるという効果がある。
次に、本発明の第2実施形態について説明する。第1実施形態及びその変形例では、擬似経過時間22の更新を、ガーベッジコレクタ13のGC発生を契機として更新するように構成した。これに対し第2実施形態は、擬似経過時間22の更新契機を、オブジェクト配置部14Bが、Javaヒープ21からオブジェクトを確保するための一定サイズの領域を確保したタイミングとすることを特徴の一つとするものである。
次に、本発明を適用した第3実施形態である計算機システム300について説明する。
2 メモリ
3 補助記憶装置
4 外部記憶装置
5 入出力装置
10 JavaVM
12 プログラム実行部
13 ガーベッジコレクタ
14A、14B、14C オブジェクト配置部
15 外部オブジェクト配置部
16 外部メモリ管理部
17 外部メモリ解放部
19 オブジェクト寿命解析部
20A、20C Javaプログラム
21 Javaヒープ
22 擬似経過時間
23 オブジェククト生成表
24 生成点表
25 寿命情報表
26 領域確保情報
27 外部メモリ領域
28 外部メモリ管理表
Claims (14)
- プログラムの実行により生成されたオブジェクトを配置する記憶領域と、前記プログラムの実行及び前記記憶領域の解放を行う制御部と有する計算機であって、
前記制御部は、
所定の契機で時間情報を更新し、
オブジェクトの生成時に、前記オブジェクトを生成するプログラムの情報と、該オブジェクト生成時の前記時間情報とを取得し、これを関連付けて記憶装置に記録し、
前記記憶領域に格納されたオブジェクトのうち後のプログラムの実行に不要なオブジェクトを検出し、該検出時の前記時間情報を取得し、
前記生成時の時間情報と、前記検出時の時間情報との差分を前記プログラムの情報と関連付けて、前記記憶装置に記録し、
オブジェクトの生成時に取得した前記オブジェクトを生成するプログラムの情報及び該オブジェクト生成時の前記時間情報が既に記録されている場合、該記録されているオブジェクトの情報に関連付けられた前記差分を取得し、
前記差分が所定の閾値を超える場合、前記不要なオブジェクトの検出の対象とならない他の記憶領域を前記差分の範囲に対応づけて確保し、前記オブジェクトを前記他の記憶領域に配置することを特徴とする計算機。 - 請求項1に記載の計算機であって、
前記制御部は、
前記不要なオブジェクトの検出を実行したとき前記時間情報を更新することを特徴とする計算機。 - 請求項1に記載の計算機であって、
前記制御部は、
前記記憶領域に格納されたオブジェクトの容量が容量閾値を超えたとき前記時間情報を更新することを特徴とする計算機。 - 請求項3に記載の計算機であって、
前記制御部は、
前記記憶領域に格納されたオブジェクトの累積容量が前記容量閾値を超えたとき前記時間情報を更新し、前記累積容量をリセットすることを特徴とする計算機。 - 請求項3又は4に記載の計算機であって、
前記制御部は、
ユーザが操作可能な入力装置を介して入力された値に基づいて前記容量閾値を設定することを特徴とする計算機。 - 請求項1〜5の何れか一項に記載の計算機であって、
前記プログラムの情報は、前記オブジェクトを生成するメソッドに関する情報を少なくとも含むことを特徴とする計算機。 - 請求項6に記載の計算機であって、
前記メソッドに関する情報は、メソッド名及び行番号を含むことを特徴とする計算機。 - 請求項1〜7の何れか一項に記載の計算機であって、
前記制御部は、
前記記憶領域に格納されたオブジェクトが他のオブジェクトを参照していない若しくは他のオブジェクトから参照されていないとき、前記オブジェクトを不要オブジェクトとして検出することを特徴とする計算機。 - 請求項8に記載の計算機であって、
前記制御部は、
前記差分、前記他の記憶領域を確保したときの前記時間情報及び前記他の記憶領域を特定する情報を関連付けて記憶し、
前記他の記憶領域を確保するとき、前記オブジェクトの差分及び前記時間情報が記憶されていない場合、前記不要なオブジェクトの検出の対象とならない他の記憶領域を確保することを特徴とする計算機。 - 請求項9に記載の計算機であって、
前記制御部は、
前記他の記憶領域を確保するとき、前記オブジェクトの差分及び前記時間情報が記憶されている場合、該オブジェクトの差分及び前記時間情報に関連付けられた前記他の記憶領域を特定する情報に基づいて、前記不要なオブジェクトの検出の対象とならない他の記憶領域に、前記オブジェクトを配置することを特徴とする計算機。 - 請求項9〜10の何れか一項に記載の計算機であって、
前記制御部は、
ユーザが操作可能な入力装置を介して入力された値に基づいて前記所定の閾値を設定することを特徴とする計算機。 - 請求項9〜11の何れか一項に記載の計算機であって、
前記制御部は、
前記他の記憶領域に格納されたオブジェクトが後のプログラムの実行に不要なオブジェクトである否かを判定し、不要なオブジェクトであると判定する場合、該不要なオブジェクトが配置された他の記憶領域を解放することを特徴とする計算機。 - プログラムの実行により生成されたオブジェクトを配置する記憶領域と、前記プログラムの実行及び前記記憶領域の解放を行う制御部と有する計算機の制御方法であって、
前記制御部が、
所定の契機で時間情報を更新し、
オブジェクトの生成時に、前記オブジェクトを生成するプログラムの情報と、該オブジェクト生成時の前記時間情報とを取得し、これを関連付けて記録し、
前記記憶領域に格納されたオブジェクトのうち後のプログラムの実行に不要なオブジェクトを検出し、該検出時の前記時間情報を取得し、
前記生成時の時間情報と、前記検出時の時間情報との差分を前記プログラムの情報と関連付けて記録し、
オブジェクトの生成時に取得した前記オブジェクトを生成するプログラムの情報及び該オブジェクト生成時の前記時間情報が既に記録されている場合、該記録されているオブジェクトの情報に関連付けられた前記差分を取得し、
前記差分が所定の閾値を超える場合、前記不要なオブジェクトの検出の対象とならない他の記憶領域を前記差分の範囲に対応づけて確保し、前記オブジェクトを前記他の記憶領域に配置することを含む計算機の制御方法。 - プログラムの実行により生成されたオブジェクトを配置する記憶領域と、前記プログラムの実行及び前記記憶領域の解放を行う制御部と有する計算機に、
所定の契機で時間情報を更新する機能と、
オブジェクトの生成時に、前記オブジェクトを生成するプログラムの情報と、該オブジェクト生成時の前記時間情報とを取得し、これを関連付けて記録する機能と、
前記記憶領域に格納されたオブジェクトのうち後のプログラムの実行に不要なオブジェクトを検出し、該検出時の前記時間情報を取得する機能と、
前記生成時の時間情報と、前記検出時の時間情報との差分を前記プログラムの情報と関連付けて記録し、
オブジェクトの生成時に取得した前記オブジェクトを生成するプログラムの情報及び該オブジェクト生成時の前記時間情報が既に記録されている場合、該記録されているオブジェクトの情報に関連付けられた前記差分を取得し、
前記差分が所定の閾値を超える場合、前記不要なオブジェクトの検出の対象とならない他の記憶領域を前記差分の範囲に対応づけて確保し、前記オブジェクトを前記他の記憶領域に配置する機能とを実現させることを特徴とするプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010268951A JP5618796B2 (ja) | 2010-12-02 | 2010-12-02 | 計算機、計算機の制御方法及びプログラム |
US13/880,198 US9189393B2 (en) | 2010-12-02 | 2011-11-25 | Computer, control method of computer, and recording medium |
PCT/JP2011/006557 WO2012073460A1 (ja) | 2010-12-02 | 2011-11-25 | 計算機、計算機の制御方法及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010268951A JP5618796B2 (ja) | 2010-12-02 | 2010-12-02 | 計算機、計算機の制御方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012118834A JP2012118834A (ja) | 2012-06-21 |
JP5618796B2 true JP5618796B2 (ja) | 2014-11-05 |
Family
ID=46171434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010268951A Expired - Fee Related JP5618796B2 (ja) | 2010-12-02 | 2010-12-02 | 計算機、計算機の制御方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9189393B2 (ja) |
JP (1) | JP5618796B2 (ja) |
WO (1) | WO2012073460A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949295B2 (en) | 2006-09-21 | 2015-02-03 | Vmware, Inc. | Cooperative memory resource management via application-level balloon |
US8583875B1 (en) | 2010-07-13 | 2013-11-12 | Vmware, Inc. | Efficient readable ballooning of guest memory by backing balloon pages with a shared page |
US9852054B2 (en) | 2012-04-30 | 2017-12-26 | Vmware, Inc. | Elastic caching for Java virtual machines |
US10152409B2 (en) | 2012-04-30 | 2018-12-11 | Vmware, Inc. | Hybrid in-heap out-of-heap ballooning for java virtual machines |
US9015203B2 (en) * | 2012-05-31 | 2015-04-21 | Vmware, Inc. | Balloon object feedback for Java Virtual Machines |
US9940228B2 (en) | 2012-06-14 | 2018-04-10 | Vmware, Inc. | Proactive memory reclamation for java virtual machines |
WO2014171002A1 (ja) * | 2013-04-19 | 2014-10-23 | 株式会社日立製作所 | メモリ管理方法、計算機及び記録媒体 |
US9448928B2 (en) * | 2013-04-26 | 2016-09-20 | Oracle International Corporation | System and method for two-tier adaptive heap management in a virtual machine environment |
KR20150106778A (ko) | 2014-03-12 | 2015-09-22 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 제어 방법 |
US10949342B2 (en) * | 2015-01-09 | 2021-03-16 | Hewlett Packard Enterprise Development Lp | Persistent memory garbage collection |
US11061572B2 (en) | 2016-04-22 | 2021-07-13 | Advanced Micro Devices, Inc. | Memory object tagged memory monitoring method and system |
US12081629B1 (en) * | 2021-12-10 | 2024-09-03 | Amazon Technologies, Inc. | Machine learning pipeline management for automated software deployment |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3027845B2 (ja) * | 1997-11-21 | 2000-04-04 | オムロン株式会社 | プログラム制御装置および方法 |
US6799191B2 (en) * | 2000-05-16 | 2004-09-28 | Sun Microsystems, Inc. | Object sampling technique for runtime observations of representative instances thereof |
JP4512402B2 (ja) | 2004-04-12 | 2010-07-28 | 株式会社日立製作所 | メモリリークの原因箇所検出方法、及びその実行プログラム |
US7313661B1 (en) * | 2005-03-18 | 2007-12-25 | Sun Microsystems, Inc. | Tool for identifying causes of memory leaks |
JP2007004413A (ja) | 2005-06-23 | 2007-01-11 | Hitachi Ltd | メモリリークの検出方法 |
JP5064134B2 (ja) | 2007-08-03 | 2012-10-31 | 株式会社日立製作所 | メモリ管理方法およびその方法を用いるコンピュータ |
JP4555879B2 (ja) | 2008-08-11 | 2010-10-06 | 株式会社日立製作所 | メモリ管理方法、メモリ管理プログラム、および、メモリ管理装置 |
JP5281452B2 (ja) | 2009-03-25 | 2013-09-04 | 株式会社日立製作所 | メモリ管理方法、コンピュータ、及び、メモリ管理プログラム |
JP5391422B2 (ja) | 2009-09-01 | 2014-01-15 | 株式会社日立製作所 | メモリ管理方法、計算機システム及びプログラム |
-
2010
- 2010-12-02 JP JP2010268951A patent/JP5618796B2/ja not_active Expired - Fee Related
-
2011
- 2011-11-25 US US13/880,198 patent/US9189393B2/en not_active Expired - Fee Related
- 2011-11-25 WO PCT/JP2011/006557 patent/WO2012073460A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US9189393B2 (en) | 2015-11-17 |
WO2012073460A1 (ja) | 2012-06-07 |
JP2012118834A (ja) | 2012-06-21 |
US20130290382A1 (en) | 2013-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5618796B2 (ja) | 計算機、計算機の制御方法及びプログラム | |
US8255658B2 (en) | Memory management method and computer using the same | |
US8661450B2 (en) | Deadlock detection for parallel programs | |
KR20080071135A (ko) | 소프트웨어 트랜잭션 메모리 블록들을 포함하는 프로그램의컴파일을 위한 방법 | |
TW201224749A (en) | Last branch record indicators for transactional memory | |
JP2010079508A (ja) | プロファイリング方法およびプロファイリングプログラム | |
Eizenberg et al. | Remix: Online detection and repair of cache contention for the jvm | |
JP2012084150A (ja) | 2パス自動アプリケーション計測 | |
KR102161192B1 (ko) | 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치 | |
Jayasena et al. | Detection of false sharing using machine learning | |
JP5031470B2 (ja) | メモリ管理方法、情報処理装置及びメモリ管理プログラム | |
US8397045B2 (en) | Memory management device, memory management method, and memory management program | |
JP5896952B2 (ja) | メモリを管理する方法、装置およびコンピュータ・プログラム | |
US7991808B2 (en) | Per thread garbage collection | |
CN107003897B (zh) | 监控事务处理资源的利用率 | |
JP5281452B2 (ja) | メモリ管理方法、コンピュータ、及び、メモリ管理プログラム | |
Christiaens et al. | TRaDe: Data race detection for Java | |
KR101634118B1 (ko) | 메모리 관리 장치 및 방법 | |
JP2004295889A (ja) | データ処理システム内での処理タスクの実行を制御する方法および装置 | |
Wicaksono et al. | Detecting false sharing in openmp applications using the darwin framework | |
JP5199975B2 (ja) | メモリ管理方法、メモリ管理プログラム、及び、情報処理装置 | |
US20140164708A1 (en) | Spill data management | |
WO2011104889A1 (ja) | 計算機システム、メモリ管理方法及びメモリ管理プログラム | |
Jendrosch et al. | Pc based escape analysis in the java virtual machine | |
Wu et al. | A Deserialization Architecture for GC Languages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20120521 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140218 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140310 |
|
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: 20140819 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140916 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5618796 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |