JP5868429B2 - 領域に基づくガベージ・コレクタを用いてクラスを漸進的にアンロードするための方法、コンピュータ・プログラム製品、および装置 - Google Patents
領域に基づくガベージ・コレクタを用いてクラスを漸進的にアンロードするための方法、コンピュータ・プログラム製品、および装置 Download PDFInfo
- Publication number
- JP5868429B2 JP5868429B2 JP2013552082A JP2013552082A JP5868429B2 JP 5868429 B2 JP5868429 B2 JP 5868429B2 JP 2013552082 A JP2013552082 A JP 2013552082A JP 2013552082 A JP2013552082 A JP 2013552082A JP 5868429 B2 JP5868429 B2 JP 5868429B2
- Authority
- JP
- Japan
- Prior art keywords
- class
- region
- memory
- instance
- bit vector
- 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
- 238000000034 method Methods 0.000 title claims description 59
- 238000004590 computer program Methods 0.000 title claims description 13
- 230000008569 process Effects 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 235000019580 granularity Nutrition 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Refuse Collection And Transfer (AREA)
Description
Claims (9)
- 領域に基づくガベージ・コレクタを用いてクラスを漸進的にアンロードするための方法であって、
クラス集合に関する記憶集合(remembered set)を保守するステップであって、前記記憶集合は、前記クラス集合のインスタンスがメモリ内の1つまたは複数の領域に含まれるかどうか、およびメモリ内のどの領域に前記インスタンスが含まれるかを示す、ステップと、
メモリ内の前記領域のサブセットに対してインクリメンタル・ガベージ・コレクション・プロセスを実行するときに、前記記憶集合を調べて、前記クラス集合が前記サブセットの外の領域にインスタンスを含むかどうかを判定するステップと、
前記記憶集合が、前記クラス集合が前記サブセットの外の領域にインスタンスを含むことを示す場合に、前記クラス集合を「生きている(live)」ものとして特定するステップと、
前記インクリメンタル・ガベージ・コレクション・プロセスにおいて発見された前記サブセット内の生きているインスタンスに前記クラス集合が関連する場合に、該クラス集合を「生きている(live)」ものとして特定するステップと、
前記クラス集合が「生きている」と判定されない場合に、前記クラス集合をアンロードするステップと、
を含む、方法。 - 前記クラス集合が、クラス・ローダに関連するクラスの集合、クラスのグループ、および単一のクラスのうちの1つである請求項1に記載の方法。
- 前記記憶集合が、前記クラス集合に割り振られたビット・ベクトルを含み、前記ビット・ベクトルの各ビットが、メモリ内の領域に割り振られている請求項1に記載の方法。
- 各ビットの値が、前記クラス集合の少なくとも1つのインスタンスがメモリ内の対応する領域に含まれるかどうかを示す請求項3に記載の方法。
- 前記サブセットに対して前記インクリメンタル・ガベージ・コレクション・プロセスを実行する前に、前記サブセット内の領域に関する前記ビット・ベクトルのビットをリセットするステップをさらに含む請求項4に記載の方法。
- 前記サブセットに対して前記インクリメンタル・ガベージ・コレクション・プロセスを実行するときに、前記クラス集合のインスタンスが発見される前記サブセット内の領域に関する前記ビット・ベクトルのビットを設定するステップをさらに含む請求項5に記載の方法。
- 前記ビット・ベクトルのビットのいずれかが設定されている場合に前記クラス集合を「生きている」ものとして特定するステップをさらに含む請求項6に記載の方法。
- 領域に基づくガベージ・コレクタを用いてクラスを漸進的にアンロードするためのコンピュータ・プログラムであって、コンピュータに、請求項1乃至7のいずれか1項に記載の前記方法の全てのステップを実行させる前記コンピュータ・プログラム。
- 領域に基づくガベージ・コレクタを用いてクラスを漸進的にアンロードするための装置であって、請求項1乃至請求項7のいずれか1項に記載の前記方法の全てのステップを実行するように適合された手段を含む、前記装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/023,447 US8489653B2 (en) | 2011-02-08 | 2011-02-08 | Incremental class unloading in a region-based garbage collector |
US13/023,447 | 2011-02-08 | ||
PCT/CA2012/050065 WO2012106817A1 (en) | 2011-02-08 | 2012-02-06 | Incremental class unloading in a region-based garbage collector |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014504768A JP2014504768A (ja) | 2014-02-24 |
JP5868429B2 true JP5868429B2 (ja) | 2016-02-24 |
Family
ID=46601403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013552082A Active JP5868429B2 (ja) | 2011-02-08 | 2012-02-06 | 領域に基づくガベージ・コレクタを用いてクラスを漸進的にアンロードするための方法、コンピュータ・プログラム製品、および装置 |
Country Status (6)
Country | Link |
---|---|
US (3) | US8489653B2 (ja) |
JP (1) | JP5868429B2 (ja) |
CN (1) | CN103339616B (ja) |
DE (1) | DE112012000365T5 (ja) |
GB (1) | GB2501445B (ja) |
WO (1) | WO2012106817A1 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7934052B2 (en) | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9639463B1 (en) * | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US11249899B2 (en) * | 2018-09-19 | 2022-02-15 | Cisco Technology, Inc. | Filesystem management for cloud object storage |
US11573894B2 (en) * | 2020-10-29 | 2023-02-07 | Oracle International Corporation | Tracking garbage collection states of references |
US11513954B2 (en) | 2021-03-25 | 2022-11-29 | Oracle International Corporation | Consolidated and concurrent remapping and identification for colorless roots |
US11875193B2 (en) | 2021-03-25 | 2024-01-16 | Oracle International Corporation | Tracking frame states of call stack frames including colorless roots |
US11573794B2 (en) | 2021-03-25 | 2023-02-07 | Oracle International Corporation | Implementing state-based frame barriers to process colorless roots during concurrent execution |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10320263A (ja) * | 1997-05-22 | 1998-12-04 | Fujitsu Ltd | Gcアタッチメント装置及びプログラム記憶媒体 |
US6701334B1 (en) * | 1999-07-13 | 2004-03-02 | Sun Microsystems, Inc. | Methods and apparatus for implementing individual class loaders |
US6185581B1 (en) * | 1999-08-19 | 2001-02-06 | Sun Microsystems, Inc. | Train-algorithm-based garbage collector employing fixed-size remembered sets |
US6529919B1 (en) * | 2000-02-15 | 2003-03-04 | Sun Microsystems, Inc. | Incremental class unloading in a train-algorithm-based garbage collector |
US7340494B1 (en) * | 2004-03-12 | 2008-03-04 | Sun Microsystems, Inc. | Garbage-first garbage collection |
US7272695B1 (en) * | 2004-09-13 | 2007-09-18 | Sun Microsystems, Inc. | Hot-card caching to avoid excessive remembered-set updating |
US7499961B2 (en) | 2006-01-12 | 2009-03-03 | Sun Microsystems, Inc. | Method and apparatus for limiting the size and facilitating maintenance of remembered sets in a space incremental garbage collector |
CN100405304C (zh) * | 2006-07-27 | 2008-07-23 | 清华大学 | 基于存储区域网络的高速固态存储设备的实现方法 |
US20110264880A1 (en) * | 2010-04-23 | 2011-10-27 | Tatu Ylonen Oy Ltd | Object copying with re-copying concurrently written objects |
-
2011
- 2011-02-08 US US13/023,447 patent/US8489653B2/en not_active Expired - Fee Related
-
2012
- 2012-02-06 CN CN201280006988.1A patent/CN103339616B/zh active Active
- 2012-02-06 GB GB1314691.5A patent/GB2501445B/en active Active
- 2012-02-06 JP JP2013552082A patent/JP5868429B2/ja active Active
- 2012-02-06 DE DE112012000365T patent/DE112012000365T5/de not_active Ceased
- 2012-02-06 WO PCT/CA2012/050065 patent/WO2012106817A1/en active Application Filing
- 2012-03-28 US US13/431,973 patent/US8554807B2/en not_active Expired - Fee Related
-
2013
- 2013-06-14 US US13/917,925 patent/US9870317B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
GB2501445B (en) | 2014-06-04 |
US8489653B2 (en) | 2013-07-16 |
CN103339616A (zh) | 2013-10-02 |
WO2012106817A1 (en) | 2012-08-16 |
US20120203803A1 (en) | 2012-08-09 |
US20130282772A1 (en) | 2013-10-24 |
US8554807B2 (en) | 2013-10-08 |
CN103339616B (zh) | 2016-01-20 |
US9870317B2 (en) | 2018-01-16 |
GB201314691D0 (en) | 2013-10-02 |
US20120203804A1 (en) | 2012-08-09 |
GB2501445A (en) | 2013-10-23 |
DE112012000365T5 (de) | 2013-10-17 |
JP2014504768A (ja) | 2014-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5868429B2 (ja) | 領域に基づくガベージ・コレクタを用いてクラスを漸進的にアンロードするための方法、コンピュータ・プログラム製品、および装置 | |
JP4896384B2 (ja) | メモリを効率的に管理するための方法およびプログラム | |
US8453132B2 (en) | System and method for recompiling code based on locality domain and thread affinity in NUMA computer systems | |
US10572181B2 (en) | Multiple stage garbage collector | |
US20140380017A1 (en) | Memory management and method for allocation using free-list | |
US9740716B2 (en) | System and method for dynamically selecting a garbage collection algorithm based on the contents of heap regions | |
US8074025B2 (en) | Method and system for copying live entities of source blocks identified by source list for selected destination block to selected destination block of memory heap | |
US8769230B2 (en) | Parallel, single-pass compaction in a region-based garbage collector | |
EP3577565B1 (en) | Garbage collector | |
US8447793B2 (en) | Efficient remembered set for region-based garbage collectors | |
US8782306B2 (en) | Low-contention update buffer queuing for large systems | |
US10120796B2 (en) | Memory allocation for long-lived objects | |
CN112313631B (zh) | 闭环垃圾收集器 | |
KR20170122090A (ko) | 저장 장치의 메모리 컨트롤러가 수행하는 가비지 컬렉션 방법 및 메모리 컨트롤러 | |
US11188460B2 (en) | Arena-based memory management | |
CN109923527B (zh) | 可变类型建立器 | |
US8326886B2 (en) | Per-thread, per-instance data storage | |
WO2023177446A1 (en) | Reducing reference count updates for stack variables | |
US10754766B2 (en) | Indirect resource management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140905 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150818 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151117 |
|
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: 20151208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5868429 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |