JPH10301837A - カード・ヒープ中のアレイ・ノードの正確なガーベッジ収集を最適化する方法および装置 - Google Patents
カード・ヒープ中のアレイ・ノードの正確なガーベッジ収集を最適化する方法および装置Info
- Publication number
- JPH10301837A JPH10301837A JP10111848A JP11184898A JPH10301837A JP H10301837 A JPH10301837 A JP H10301837A JP 10111848 A JP10111848 A JP 10111848A JP 11184898 A JP11184898 A JP 11184898A JP H10301837 A JPH10301837 A JP H10301837A
- Authority
- JP
- Japan
- Prior art keywords
- pointer
- array
- parameterization
- card
- node
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/842,139 US5903900A (en) | 1997-04-23 | 1997-04-23 | Method and apparatus for optimizing exact garbage collection of array nodes in a carded heap |
| US08/842,139 | 1997-04-23 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH10301837A true JPH10301837A (ja) | 1998-11-13 |
| JPH10301837A5 JPH10301837A5 (enExample) | 2005-09-02 |
Family
ID=25286618
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10111848A Pending JPH10301837A (ja) | 1997-04-23 | 1998-04-22 | カード・ヒープ中のアレイ・ノードの正確なガーベッジ収集を最適化する方法および装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5903900A (enExample) |
| EP (1) | EP0874317B1 (enExample) |
| JP (1) | JPH10301837A (enExample) |
| DE (1) | DE69800909T2 (enExample) |
Families Citing this family (77)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6115782A (en) * | 1997-04-23 | 2000-09-05 | Sun Micosystems, Inc. | Method and apparatus for locating nodes in a carded heap using a card marking structure and a node advance value |
| US6105040A (en) * | 1997-06-30 | 2000-08-15 | Sun Microsystems, Inc. | Method and apparatus for managing stored objects |
| US6308185B1 (en) * | 1998-03-06 | 2001-10-23 | Sun Microsystems, Inc. | Methods and apparatus for generational dynamic management of computer memory |
| US6141738A (en) * | 1998-07-08 | 2000-10-31 | Nortel Networks Corporation | Address translation method and system having a forwarding table data structure |
| US6148309A (en) * | 1998-08-25 | 2000-11-14 | International Business Machines Corporation | Method for handling overflow of counters in comparison based actions |
| US6148310A (en) * | 1998-08-25 | 2000-11-14 | International Business Machines Corporation | Method for combining card marking with remembered sets for old area of a memory heap |
| US6173294B1 (en) * | 1998-08-25 | 2001-01-09 | International Business Machines Corporation | Method for combining card marking with remembered set for generational garbage collection with more than two generations |
| US6327701B2 (en) * | 1998-09-15 | 2001-12-04 | Sun Microsystems, Inc. | Method and apparatus for finding bugs related to garbage collection in a virtual machine |
| US6317756B1 (en) * | 1998-10-07 | 2001-11-13 | International Business Machines Corporation | On-the-fly garbage collector |
| US6279148B1 (en) * | 1998-10-13 | 2001-08-21 | Sun Microsystems, Inc. | Method and apparatus for supporting efficient programming in dynamic pointer-safe languages |
| US6275985B1 (en) | 1998-12-17 | 2001-08-14 | Sun Microsystems, Inc | Method and apparatus for developing an application that implements garbage collection efficiently by combining proxy objects with compiler support |
| GB2345355A (en) * | 1998-12-30 | 2000-07-05 | Ibm | Garbage collection in a Java virtual machine |
| US6401182B1 (en) * | 1999-02-10 | 2002-06-04 | International Business Machines Corporation | Method and apparatus for memory management |
| US6457019B1 (en) * | 1999-02-11 | 2002-09-24 | Oracle Corp. | Memory management within a run-time environment |
| US6249793B1 (en) | 1999-06-10 | 2001-06-19 | Sun Microsystems, Inc. | Mostly concurrent compaction in a garbage collection system |
| US6381738B1 (en) * | 1999-07-16 | 2002-04-30 | International Business Machines Corporation | Method for optimizing creation and destruction of objects in computer programs |
| US6434576B1 (en) | 1999-08-19 | 2002-08-13 | Sun Microsystems, Inc. | Popular-object handling in a train-algorithm-based garbage collector |
| US6415302B1 (en) | 1999-08-19 | 2002-07-02 | Sun Microsystems, Inc. | Train-algorithm-based garbage collector employing farthest-forward-car indicator |
| US6424977B1 (en) | 1999-08-19 | 2002-07-23 | Sun Microsystems, Inc. | Train-algorithm-based garbage collector employing reduced oversized-object threshold |
| US6449626B1 (en) | 1999-08-19 | 2002-09-10 | Sun Microsystems, Inc. | Reduced-cost remembered-set processing in a train-algorithm-based garbage collector |
| US6185581B1 (en) * | 1999-08-19 | 2001-02-06 | Sun Microsystems, Inc. | Train-algorithm-based garbage collector employing fixed-size remembered sets |
| US7096238B2 (en) | 1999-08-19 | 2006-08-22 | Sun Microsystems, Inc. | Dynamic feedback for determining collection-set size |
| US6434577B1 (en) | 1999-08-19 | 2002-08-13 | Sun Microsystems, Inc. | Scalable-remembered-set garbage collection |
| WO2001057656A2 (en) * | 2000-02-07 | 2001-08-09 | Insignia Solutions Plc | Reduced size object headers |
| US6529919B1 (en) | 2000-02-15 | 2003-03-04 | Sun Microsystems, Inc. | Incremental class unloading in a train-algorithm-based garbage collector |
| US6738875B1 (en) | 2000-07-31 | 2004-05-18 | Microsoft Corporation | Efficient write-watch mechanism useful for garbage collection in a computer system |
| US6598141B1 (en) | 2001-03-08 | 2003-07-22 | Microsoft Corporation | Manipulating interior pointers on a stack during garbage collection |
| US7203756B2 (en) * | 2001-04-27 | 2007-04-10 | International Business Machines Corporation | Mechanism to cache references to Java RMI remote objects implementing the unreferenced interface |
| US6928460B2 (en) * | 2002-07-01 | 2005-08-09 | Sun Microsystems, Inc. | Method and apparatus for performing generational garbage collection in a segmented heap |
| US6999979B2 (en) * | 2002-11-05 | 2006-02-14 | Sun Microsystems, Inc. | Efficient encoding of references into a collection set |
| US7035884B2 (en) * | 2002-11-05 | 2006-04-25 | Sun Microsystems, Inc. | Placement of allocation trains in the train algorithm |
| US7539713B2 (en) | 2002-11-05 | 2009-05-26 | Sun Microsystems, Inc. | Allocation of likely popular objects in the train algorithm |
| US7188129B2 (en) | 2002-11-15 | 2007-03-06 | Sun Microsystems, Inc. | Merging trains in a collector based on the train algorithm |
| US7209935B2 (en) * | 2002-11-27 | 2007-04-24 | Sun Microsystems, Inc. | Avoiding remembered-set maintenance overhead for memory segments known to be in a collection set |
| US20040111718A1 (en) * | 2002-12-04 | 2004-06-10 | Detlefs David L. | Block-offset table employing gaps in value set |
| US7143124B2 (en) * | 2002-12-06 | 2006-11-28 | Sun Microsystems, Inc. | Detection of dead regions during incremental collection |
| US7031990B2 (en) | 2002-12-06 | 2006-04-18 | Sun Microsystems, Inc. | Combining external and intragenerational reference-processing in a garbage collector based on the train algorithm |
| US7085790B2 (en) * | 2002-12-06 | 2006-08-01 | Sun Microsystems, Inc. | Advancing cars in trains managed by a collector based on the train algorithm |
| US7069280B2 (en) | 2002-12-06 | 2006-06-27 | Sun Microsystems, Inc. | Collection-tick mechanism for a collector based on the train algorithm |
| US7024437B2 (en) * | 2002-12-06 | 2006-04-04 | Sun Microsystems, Inc. | Better placement of objects reachable from special objects during collection based on the train algorithm |
| US7058781B2 (en) * | 2003-02-14 | 2006-06-06 | Sun Microsystems, Inc. | Parallel card table scanning and updating |
| US7043509B2 (en) * | 2003-02-19 | 2006-05-09 | Sun Microsystems, Inc. | Parallel non-contiguous allocation and card parsing |
| US7069281B2 (en) | 2003-02-24 | 2006-06-27 | Sun Microsystems, Inc. | Efficient collocation of evacuated objects in a copying garbage collector using variably filled local allocation buffers |
| US7146390B2 (en) | 2003-02-24 | 2006-12-05 | Sun Microsystems, Inc. | Staging the processing of remembered-set entries as part of collection based on the train algorithm |
| US7062519B2 (en) * | 2003-02-27 | 2006-06-13 | Sun Microsystems, Inc. | Incremental scanning of enormous objects to improve scheduling and pause-time behavior of garbage collection |
| US7096329B2 (en) * | 2003-02-27 | 2006-08-22 | Sun Microsystems, Inc. | Better placement of objects promoted into a generation managed by the train algorithm |
| US7730449B2 (en) * | 2003-03-19 | 2010-06-01 | Toshiba Corporation | Auto reference counting pointer for C++ objects with ability to re-cast and lookup from a free pointer |
| US20040186863A1 (en) * | 2003-03-21 | 2004-09-23 | Garthwaite Alexander T. | Elision of write barriers for stores whose values are in close proximity |
| US7089272B1 (en) | 2003-06-18 | 2006-08-08 | Sun Microsystems, Inc. | Specializing write-barriers for objects in a garbage collected heap |
| DE10329680A1 (de) * | 2003-07-01 | 2005-02-10 | Universität Stuttgart | Prozessorarchitektur für exakte Zeigeridentifizierung |
| US7149762B1 (en) | 2003-08-20 | 2006-12-12 | Sun Microsystems, Inc. | Handling futile collections in the train algorithm through selective extension of the collection set |
| US7404182B1 (en) | 2003-10-03 | 2008-07-22 | Sun Microsystems, Inc. | Deferring and combining write barriers for a garbage-collected heap |
| US7624137B2 (en) * | 2004-01-05 | 2009-11-24 | International Business Machines Corporation | Method and apparatus for scheduling and performing garbage collection in a real-time system with guaranteed space bounds |
| US7792880B2 (en) * | 2004-01-05 | 2010-09-07 | International Business Machines Corporation | Method and apparatus for efficient implementation of discontiguous objects |
| US7636745B1 (en) | 2004-03-12 | 2009-12-22 | Sun Microsystems, Inc. | Concurrent-marking-initiation heuristic |
| US8131955B2 (en) * | 2004-04-15 | 2012-03-06 | Microsoft Corporation | Ephemeral garbage collection using a tracking mechanism on a card table to determine marked bundles |
| US7620943B1 (en) | 2004-06-30 | 2009-11-17 | Sun Microsystems, Inc. | Using class properties to segregate objects in a generation managed by the train algorithm |
| US7676801B1 (en) | 2004-08-31 | 2010-03-09 | Sun Microsystems, Inc. | Scanning of evacuated objects in a generation managed by the train algorithm |
| US7321909B1 (en) | 2004-12-23 | 2008-01-22 | Sun Microsystems, Inc. | Method and apparatus for forwarding references to objects concurrently with space-incremental garbage collection |
| US7774741B2 (en) * | 2006-05-22 | 2010-08-10 | Microsoft Corporation | Automatically resource leak diagnosis and detecting process within the operating system |
| US7627621B2 (en) * | 2007-02-12 | 2009-12-01 | Sun Microsystems, Inc. | Method and system for minor garbage collection |
| US7870171B2 (en) * | 2007-02-12 | 2011-01-11 | Oracle America, Inc. | Method and system for garbage collection in a multitasking environment |
| KR101634118B1 (ko) * | 2010-03-22 | 2016-06-29 | 삼성전자주식회사 | 메모리 관리 장치 및 방법 |
| US9417935B2 (en) | 2012-05-01 | 2016-08-16 | Microsoft Technology Licensing, Llc | Many-core process scheduling to maximize cache usage |
| US8595743B2 (en) | 2012-05-01 | 2013-11-26 | Concurix Corporation | Network aware process scheduling |
| US8726255B2 (en) | 2012-05-01 | 2014-05-13 | Concurix Corporation | Recompiling with generic to specific replacement |
| US8650538B2 (en) | 2012-05-01 | 2014-02-11 | Concurix Corporation | Meta garbage collection for functional code |
| US8700838B2 (en) | 2012-06-19 | 2014-04-15 | Concurix Corporation | Allocating heaps in NUMA systems |
| US9047196B2 (en) | 2012-06-19 | 2015-06-02 | Concurix Corporation | Usage aware NUMA process scheduling |
| US9575813B2 (en) | 2012-07-17 | 2017-02-21 | Microsoft Technology Licensing, Llc | Pattern matching process scheduler with upstream optimization |
| US8707326B2 (en) | 2012-07-17 | 2014-04-22 | Concurix Corporation | Pattern matching process scheduler in message passing environment |
| US8793669B2 (en) | 2012-07-17 | 2014-07-29 | Concurix Corporation | Pattern extraction from executable code in message passing environments |
| US9043788B2 (en) | 2012-08-10 | 2015-05-26 | Concurix Corporation | Experiment manager for manycore systems |
| US8656134B2 (en) | 2012-11-08 | 2014-02-18 | Concurix Corporation | Optimized memory configuration deployed on executing code |
| US8607018B2 (en) | 2012-11-08 | 2013-12-10 | Concurix Corporation | Memory usage configuration based on observations |
| US8656135B2 (en) | 2012-11-08 | 2014-02-18 | Concurix Corporation | Optimized memory configuration deployed prior to execution |
| US20130227529A1 (en) | 2013-03-15 | 2013-08-29 | Concurix Corporation | Runtime Memory Settings Derived from Trace Data |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4922414A (en) * | 1982-12-17 | 1990-05-01 | Symbolics Inc. | Symbolic language data processing system |
| US4757438A (en) * | 1984-07-12 | 1988-07-12 | Texas Instruments Incorporated | Computer system enabling automatic memory management operations |
| US4775932A (en) * | 1984-07-31 | 1988-10-04 | Texas Instruments Incorporated | Computer memory system with parallel garbage collection independent from an associated user processor |
| US4920483A (en) * | 1985-11-15 | 1990-04-24 | Data General Corporation | A computer memory for accessing any word-sized group of contiguous bits |
| US5222221A (en) * | 1986-06-17 | 1993-06-22 | Yeda Research And Development Co., Ltd. | Method and apparatus for implementing a concurrent logic program |
| US4989134A (en) * | 1987-03-20 | 1991-01-29 | Hewlett-Packard Company | Method and apparatus for enhancing data storage efficiency |
| US5136706A (en) * | 1987-04-30 | 1992-08-04 | Texas Instruments Incorporated | Adaptive memory management system for collection of garbage in a digital computer |
| US4907151A (en) * | 1988-09-30 | 1990-03-06 | Digital Equipment Corporation | System and method for garbage collection with ambiguous roots |
| US5088036A (en) * | 1989-01-17 | 1992-02-11 | Digital Equipment Corporation | Real time, concurrent garbage collection system and method |
| US5321834A (en) * | 1989-11-28 | 1994-06-14 | Xerox Corporation | Method and system for reclaiming unreferenced computer memory space |
| JPH04506720A (ja) * | 1990-03-23 | 1992-11-19 | イーストマン・コダック・カンパニー | ディジタル・データ処理システムのための仮想メモリ管理及び割付け装置 |
| NL9001262A (nl) * | 1990-06-05 | 1992-01-02 | Oce Nederland Bv | Werkwijze voor het in een logisch georganiseerd systeem, van door digrafen te representeren groepen van met elkaar in relatie staande entiteiten, distribueren van status-informatie betreffende een digraaf en een inrichting voor het toepassen van een dergelijke werkwijze. |
| US5193180A (en) * | 1991-06-21 | 1993-03-09 | Pure Software Inc. | System for modifying relocatable object code files to monitor accesses to dynamically allocated memory |
| US5355483A (en) * | 1991-07-18 | 1994-10-11 | Next Computers | Asynchronous garbage collection |
| US5218698A (en) * | 1991-11-22 | 1993-06-08 | Aerojet-General Corporation | Garbage collection system for a symbolic digital processor |
| JP3628032B2 (ja) * | 1992-06-15 | 2005-03-09 | マイクロソフト コーポレーション | コンサーバティブ・スタックとジェネレイショナル・ヒープガーベージ・コレクション用コンピュータシステム及び方法 |
| DE69327089T2 (de) * | 1992-07-24 | 2000-04-13 | Microsoft Corp., Redmond | Rechnerverfahren und system zur zuordnung und zur freigabe von speichern. |
| US5560003A (en) * | 1992-12-21 | 1996-09-24 | Iowa State University Research Foundation, Inc. | System and hardware module for incremental real time garbage collection and memory management |
| US5367685A (en) * | 1992-12-22 | 1994-11-22 | Firstperson, Inc. | Method and apparatus for resolving data references in generated code |
| US5408650A (en) * | 1993-06-29 | 1995-04-18 | Digital Equipment Corporation | Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program |
| US5566321A (en) * | 1993-12-13 | 1996-10-15 | Cray Research, Inc. | Method of managing distributed memory within a massively parallel processing system |
-
1997
- 1997-04-23 US US08/842,139 patent/US5903900A/en not_active Expired - Lifetime
-
1998
- 1998-04-20 EP EP98303013A patent/EP0874317B1/en not_active Expired - Lifetime
- 1998-04-20 DE DE69800909T patent/DE69800909T2/de not_active Expired - Fee Related
- 1998-04-22 JP JP10111848A patent/JPH10301837A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP0874317A3 (en) | 1999-04-21 |
| US5903900A (en) | 1999-05-11 |
| DE69800909D1 (de) | 2001-07-19 |
| EP0874317B1 (en) | 2001-06-13 |
| EP0874317A2 (en) | 1998-10-28 |
| DE69800909T2 (de) | 2002-03-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6049810A (en) | Method and apparatus for implementing a write barrier of a garbage collected heap | |
| US5903900A (en) | Method and apparatus for optimizing exact garbage collection of array nodes in a carded heap | |
| US6115782A (en) | Method and apparatus for locating nodes in a carded heap using a card marking structure and a node advance value | |
| US6038572A (en) | Method and apparatus for localizing nodes in a garbage collected carded heap | |
| US5920876A (en) | Performing exact garbage collection using bitmaps that identify pointer values within objects | |
| EP0874318B1 (en) | A method and apparatus for locating object pointers used within exact garbage collection | |
| US5915255A (en) | Method and apparatus for referencing nodes using links | |
| US5911144A (en) | Method and apparatus for optimizing the assignment of hash values to nodes residing in a garbage collected heap | |
| US6192517B1 (en) | Method, apparatus, and product for improved garbage collection in a memory system through the removal of reference conflicts | |
| US6253215B1 (en) | Method, apparatus, and article of manufacture for facilitating resource management for applications having two types of program code | |
| US6381738B1 (en) | Method for optimizing creation and destruction of objects in computer programs | |
| US6021272A (en) | Transforming and manipulating program object code | |
| US6820101B2 (en) | Methods and apparatus for optimizing garbage collection using separate heaps of memory for storing local objects and non-local objects | |
| US6999980B2 (en) | Eliminating write barriers for young objects | |
| US7036118B1 (en) | System for executing computer programs on a limited-memory computing machine | |
| US9921959B2 (en) | Efficient reference classification and quick memory reuse in a system that supports concurrent garbage collection | |
| US11507503B1 (en) | Write barrier for remembered set maintenance in generational Z garbage collector | |
| US7181732B2 (en) | Method and apparatus for facilitating lazy type tagging for compiled activations | |
| US6094664A (en) | Method and apparatus for optimizing the null pointer exception in an object-oriented programming environment with statically typed variables | |
| US6810519B1 (en) | Achieving tight binding for dynamically loaded software modules via intermodule copying | |
| JP2004295889A (ja) | データ処理システム内での処理タスクの実行を制御する方法および装置 | |
| US6275985B1 (en) | Method and apparatus for developing an application that implements garbage collection efficiently by combining proxy objects with compiler support | |
| US11875193B2 (en) | Tracking frame states of call stack frames including colorless roots | |
| US11573794B2 (en) | Implementing state-based frame barriers to process colorless roots during concurrent execution | |
| US11513954B2 (en) | Consolidated and concurrent remapping and identification for colorless roots |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050225 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050225 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070912 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070918 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080304 |