JP5281452B2 - メモリ管理方法、コンピュータ、及び、メモリ管理プログラム - Google Patents
メモリ管理方法、コンピュータ、及び、メモリ管理プログラム Download PDFInfo
- Publication number
- JP5281452B2 JP5281452B2 JP2009073646A JP2009073646A JP5281452B2 JP 5281452 B2 JP5281452 B2 JP 5281452B2 JP 2009073646 A JP2009073646 A JP 2009073646A JP 2009073646 A JP2009073646 A JP 2009073646A JP 5281452 B2 JP5281452 B2 JP 5281452B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- target
- management method
- heap memory
- 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.)
- Active
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Devices For Executing Special Programs (AREA)
Description
対象外メモリに配置されたデータに対して、当該対象外メモリ以外に配置されたデータからの参照があると判定したときでも、当該対象外メモリに配置された全データのうちの参照関係の起点データに対して、当該対象外メモリ以外に配置されたデータからの参照がないと判定した場合、当該対象外メモリを解放可能と判定することを特徴とする。
その他の手段については後記する。
Java仮想マシン105は、外部ヒープメモリ生成情報取得部106、外部ヒープメモリ生成部107、不要データ判定部108、外部ヒープメモリ解放判定部109、外部ヒープメモリ解放部110を備えている。
処理503でエラーがあった場合(Yes)は、処理507でエラー処理を行い、ファイルの読み込みなしで処理508に進む。
次に、処理802に従い、分割した領域を1つ選択するが、ここでは領域1(符号912−1)を選択したとする。処理803に進み、領域1内のデータAに対する領域1以外の領域のデータからの参照を調べる。結果として、データAは他領域のデータから全く参照されていないため、他データから参照されていることを示す印は付加されない。よって、処理804は実行されず、処理805、806に進み、データAには印がついていないので処理807に進む。この時点で、データAはどのデータからも参照されていないため、データAを他データへの参照、すなわちデータR3(符号904)への参照のない別データに置き換える。これで領域1の処理は終了し、領域2(符号912−2)と領域3(符号912−3)に対して、同様の処理を行う。
102…プロセッサ
103…メモリ
104…Javaプログラム
105…Java仮想マシン
106…外部ヒープメモリ生成情報取得部
107…外部ヒープメモリ生成部
108…不要データ判定部
109…外部ヒープメモリ解放判定部
110…外部ヒープメモリ解放部
111…Javaヒープメモリ
112…外部ヒープメモリ
113…外部記憶装置
Claims (14)
- コンピュータ内のプロセッサにより実行されるプログラムによって、ガベージコレクションの対象となる対象メモリと、ガベージコレクションの対象とならない対象外メモリと、の領域を確保可能なメモリの管理を行うメモリ管理方法であって、
前記対象外メモリに配置されたデータに対して、当該対象外メモリ以外に配置されたデータからの参照があると判定したときでも、
当該対象外メモリに配置された全データのうちの参照関係の起点データに対して、当該対象外メモリ以外に配置されたデータからの参照がないと判定した場合、
当該対象外メモリを解放可能と判定する
ことを特徴とするメモリ管理方法。 - 請求項1のメモリ管理方法において、前記対象外メモリに配置したデータの情報を、前記プログラムの起動オプションまたは外部入力ファイルを用いて取得する
ことを特徴とするメモリ管理方法。 - 請求項1のメモリ管理方法において、前記対象外メモリに関する解放可能か否かの判定を、前記ガベージコレクションの終了時に行う
ことを特徴とするメモリ管理方法。 - 請求項1のメモリ管理方法において、前記対象外メモリに関する解放可能か否かの判定を、前記プログラムの起動オプションまたは外部入力ファイルに記述されたメモリ使用量に関する閾値を実際の前記メモリの使用量が超えた場合に行う
ことを特徴とするメモリ管理方法。 - 請求項1のメモリ管理方法において、前記対象外メモリに関して、配置された全データのうちの参照関係の起点データに対して、当該対象外メモリ以外に配置されたデータからの参照がないと判定した場合、当該メモリを解放可能と判定するとき、
前記起点データを参照するデータが当該対象外メモリ以外に配置されていた場合、当該データの必要性を判定し、当該データを必要性がないと判定したとき、当該データから前記起点データへの参照をないものと見なし、当該対象外メモリを解放可能と判定する
ことを特徴とするメモリ管理方法。 - 請求項5のメモリ管理方法において、前記必要性の判定を、前記ガベージコレクションの終了時に行う
ことを特徴とするメモリ管理方法。 - 請求項5のメモリ管理方法において、前記必要性の判定を、前記プログラムの起動オプションまたは外部入力ファイルに記述されたメモリ使用量に関する閾値を実際の前記メモリの使用量が超えた場合に行う
ことを特徴とするメモリ管理方法。 - 請求項5のメモリ管理方法において、当該データの必要性を判定するとき、
前記対象メモリの領域を2つ以上の領域に分割し、分割領域ごとに、他の分割領域のデータからの参照について調べ、直接的もしくは間接的に参照される可能性があるデータ以外のデータを必要性がないと判定する
ことを特徴とするメモリ管理方法 。 - 請求項8のメモリ管理方法において、前記分割領域のうち、前記対象外メモリに配置されたデータを参照するデータが配置されている領域を、前記必要性を調べる領域として選択する
ことを特徴とするメモリ管理方法。 - 請求項8のメモリ管理方法において、前記対象メモリの領域を2つ以上の領域に分割する際の分割領域のサイズを、前記プログラムの起動オプションまたは外部入力ファイルに記述している
ことを特徴とするメモリ管理方法。 - 請求項8のメモリ管理方法において、前記対象メモリの領域を2つ以上の領域に分割した後、相互参照関係にある2つのデータが異なる分割領域に存在する場合に、少なくともいずれかのデータを移動することで、当該2つのデータが同一の分割領域にあるようにする
ことを特徴とするメモリ管理方法。 - 請求項1のメモリ管理方法であって、前記プログラムの起動オプションまたは外部入力ファイルの情報を読み込み、その結果を用いて前記対象外メモリの領域を生成する
ことを特徴とするメモリ管理方法。 - ガベージコレクションの対象となる対象メモリと、ガベージコレクションの対象とならない対象外メモリと、の領域を確保可能なメモリと、
前記対象外メモリに配置されたデータに対して、当該対象外メモリ以外に配置されたデータからの参照があると判定したときでも、
当該対象外メモリに配置された全データのうちの参照関係の起点データに対して、当該対象外メモリ以外に配置されたデータからの参照がないと判定した場合、
当該対象外メモリを解放可能と判定するプロセッサと、
を備えることを特徴とするコンピュータ。 - コンピュータ内のプロセッサに、ガベージコレクションの対象となる対象メモリと、ガベージコレクションの対象とならない対象外メモリと、の領域を確保可能なメモリの管理を行うメモリ管理方法を実行させるためのメモリ管理プログラムであって、
前記対象外メモリに配置されたデータに対して、当該対象外メモリ以外に配置されたデータからの参照があると判定したときでも、
当該対象外メモリに配置された全データのうちの参照関係の起点データに対して、当該対象外メモリ以外に配置されたデータからの参照がないと判定した場合、
当該対象外メモリを解放可能と判定する処理を、前記プロセッサに実行させるためのメモリ管理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009073646A JP5281452B2 (ja) | 2009-03-25 | 2009-03-25 | メモリ管理方法、コンピュータ、及び、メモリ管理プログラム |
US12/607,622 US8898404B2 (en) | 2009-03-25 | 2009-10-28 | Memory management method and computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009073646A JP5281452B2 (ja) | 2009-03-25 | 2009-03-25 | メモリ管理方法、コンピュータ、及び、メモリ管理プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2010225033A JP2010225033A (ja) | 2010-10-07 |
JP2010225033A5 JP2010225033A5 (ja) | 2011-09-29 |
JP5281452B2 true JP5281452B2 (ja) | 2013-09-04 |
Family
ID=42785564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009073646A Active JP5281452B2 (ja) | 2009-03-25 | 2009-03-25 | メモリ管理方法、コンピュータ、及び、メモリ管理プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8898404B2 (ja) |
JP (1) | JP5281452B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5391422B2 (ja) | 2009-09-01 | 2014-01-15 | 株式会社日立製作所 | メモリ管理方法、計算機システム及びプログラム |
JP5618796B2 (ja) | 2010-12-02 | 2014-11-05 | 株式会社日立製作所 | 計算機、計算機の制御方法及びプログラム |
JP5509164B2 (ja) * | 2011-08-18 | 2014-06-04 | 株式会社日立製作所 | 計算機、管理方法及びプログラム |
US20140337597A1 (en) * | 2012-03-02 | 2014-11-13 | Hitachi, Ltd. | Computer, program, and memory management method |
US11579855B2 (en) * | 2017-12-15 | 2023-02-14 | Microsoft Technology Licensing Llc | Reduced memory consumption of compiler-transformed asynchronous methods |
US10884641B2 (en) | 2019-04-16 | 2021-01-05 | Paypal, Inc. | Low latency gateway for an asynchronous orchestration engine using direct memory |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4989132A (en) * | 1988-10-24 | 1991-01-29 | Eastman Kodak Company | Object-oriented, logic, and database programming tool with garbage collection |
US6081665A (en) * | 1997-12-19 | 2000-06-27 | Newmonics Inc. | Method for efficient soft real-time execution of portable byte code computer programs |
US7340494B1 (en) * | 2004-03-12 | 2008-03-04 | Sun Microsystems, Inc. | Garbage-first garbage collection |
US7962707B2 (en) * | 2005-07-06 | 2011-06-14 | Honeywell International Inc. | Apparatus and method for deterministic garbage collection of a heap memory |
JP5064134B2 (ja) | 2007-08-03 | 2012-10-31 | 株式会社日立製作所 | メモリ管理方法およびその方法を用いるコンピュータ |
-
2009
- 2009-03-25 JP JP2009073646A patent/JP5281452B2/ja active Active
- 2009-10-28 US US12/607,622 patent/US8898404B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8898404B2 (en) | 2014-11-25 |
US20100250629A1 (en) | 2010-09-30 |
JP2010225033A (ja) | 2010-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Würthinger et al. | Dynamic code evolution for Java | |
JP5064134B2 (ja) | メモリ管理方法およびその方法を用いるコンピュータ | |
JP5281452B2 (ja) | メモリ管理方法、コンピュータ、及び、メモリ管理プログラム | |
JP4917138B2 (ja) | オブジェクト最適配置装置、オブジェクト最適配置方法、及びオブジェクト最適配置プログラム | |
JP5618796B2 (ja) | 計算機、計算機の制御方法及びプログラム | |
US8443178B2 (en) | Operating system image shrinking apparatus and method and computer readable tangible medium storing a program for operating system image shrinking | |
Würthinger et al. | Unrestricted and safe dynamic code evolution for Java | |
US8397045B2 (en) | Memory management device, memory management method, and memory management program | |
EP3577565B1 (en) | Garbage collector | |
US20150128147A1 (en) | Modified jvm with multi-tenant application domains and memory management | |
JP5380695B2 (ja) | メモリ管理方法、計算機システム及びメモリ管理プログラム | |
US20080040407A1 (en) | Identification of a cause of an allocation failure in a java virtual machine | |
Fulton et al. | Compilation techniques for real-time Java programs | |
Lengauer et al. | Where has all my memory gone? determining memory characteristics of product variants using virtual-machine-level monitoring | |
JP5564540B2 (ja) | メモリ管理方法、コンピュータ及びプログラム | |
JP5199975B2 (ja) | メモリ管理方法、メモリ管理プログラム、及び、情報処理装置 | |
JP5756549B2 (ja) | 記憶領域管理方法、計算機システム及びプログラム | |
WO2011104889A1 (ja) | 計算機システム、メモリ管理方法及びメモリ管理プログラム | |
Stilkerich et al. | A practical getaway: Applications of escape analysis in embedded real-time systems | |
US11106522B1 (en) | Process memory resurrection: running code in-process after death | |
Fluet et al. | Implementation and performance evaluation of a safe runtime system in Cyclone | |
US20230236835A1 (en) | Cooperative garbage collection barrier elision | |
Geffken et al. | Side effect monitoring for Java using bytecode rewriting | |
Sarcar | Memory Management | |
Sasada | Gradual write-barrier insertion into a Ruby interpreter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110811 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110811 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130418 |
|
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: 20130514 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130524 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5281452 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |