JP2014513342A - メモリー管理のための同時マーク及び同時スイープによる保守的ガベージコレクション - Google Patents
メモリー管理のための同時マーク及び同時スイープによる保守的ガベージコレクション Download PDFInfo
- Publication number
- JP2014513342A JP2014513342A JP2014502588A JP2014502588A JP2014513342A JP 2014513342 A JP2014513342 A JP 2014513342A JP 2014502588 A JP2014502588 A JP 2014502588A JP 2014502588 A JP2014502588 A JP 2014502588A JP 2014513342 A JP2014513342 A JP 2014513342A
- Authority
- JP
- Japan
- Prior art keywords
- heap
- script
- component
- memory
- objects
- 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
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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/70—Details relating to dynamic memory management
- G06F2212/702—Conservative 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)
- Information Transfer Between Computers (AREA)
Abstract
【選択図】図1
Description
[0020] 背景において示されたように、ヒープ上の到達可能オブジェクトと到達不能オブジェクトとを識別する保守的ガベージコレクターのアルゴリズムを実装することが望ましいと言えるであろう。様々な実施態様において、ネイティブコードの互換性に基づいてメモリー管理が再設計される。一側面において、スクリプトオブジェクトは、あまり管理されていないオブジェクトであって、オブジェクトの間の参照カウントが削除されるようなメモリーの単なるネイティブな断片以上のものである。その上、保守的ガベージコレクションのアルゴリズムは実現されているが、ポインターである全てのものが知られているということは想定されていない。例えば共通言語ランタイム(CLR)のガベージコレクターでは、スタックは厳密に型指定される。しかしながら、ネイティブコード、例えばCのコード、及びスクリプトコードでは、ユーザーは何がスタック上にあるかを知ることはない。この点において、参照カウントモデルを利用することに代えて、オブジェクトが直接的に相互作用されることが企図される。
[0024] ごくわずかのインタラクティビティを有した情報の単調な提示からクライアント側における豊富なインタラクティビティを有したよりリッチなアプリケーション又はアプレットの体験へとウェブブラウズ体験が進化し始めるにつれて、いくつかの問題がわき上がってきた。より一般的には、ウェブブラウズ体験は、複合的な情報の表示、及び表示されたオブジェクトとのよりリッチなインタラクティビティへ進化してきた。この進化に伴う際立った挑戦は、本来はクライアント上のネイティブコードに基づく情報の単調な提示のために主として設計された旧来の文書オブジェクトモデル(DOM)を、ジャバスクリプトオブジェクト等のスクリプトコードを流れるように処理する体験に適応させることに基づいている。
[0049] 本明細書において説明された、保守的ガベージコレクションのアルゴリズムの範囲内でオブジェクトを同時にマーク及びスイープするための様々な実施態様は、任意のコンピューター又は他のクライアント若しくはサーバーデバイスに関連して実現され得るということを、当業者は認識することが可能である。当該任意のコンピューター又は他のクライアント若しくはサーバーデバイスは、コンピューターネットワークの一部分として、又は分散コンピューティング環境において配置されることが可能であり、また、任意の種類のデータストアに接続されることが可能である。この点について、本明細書において説明された様々な実施態様は、任意の数のメモリー又は記憶ユニット、並びに、任意の数の記憶ユニットにわたって行われる任意の数のアプリケーション及びプロセスを有している、任意のコンピューターシステム又は環境において実現されることが可能である。これには、限定ではないが、ネットワーク環境又は分散コンピューティング環境に配置され、リモート又はローカルの記憶装置を有している、サーバーコンピューター及びクライアントコンピューターを備えた環境が含まれる。
[0056] 言及されたように、本明細書において説明された様々な実施態様は、保守的ガベージコレクションのアルゴリズムの範囲内でオブジェクトを同時にマーク及びスイープするための基盤を実装することが望ましいであろう任意のデバイスに適合する。したがって、ハンドヘルド型、ポータブル型、及び他のコンピューティングデバイス、並びにあらゆる種類のコンピューティングオブジェクトが、本明細書において、即ち保守的ガベージコレクションのアルゴリズムをタグ付けされた整数によって実装することに関連する何らかの機能をデバイスが提供し得る任意の箇所において説明された、様々な実施態様に関する使用のために企図されるということが理解される。それ故に、図10において後述される以下の汎用リモートコンピューターはほんの一例であり、主題の開示に関する実施態様は、ネットワーク/バスの相互運用性及び対話を有する任意のクライアントによって実現されることができる。
Claims (15)
- スクリプトの実行中にオブジェクトのヒープを生成するステップと、
前記スクリプトの未実行部分に含まれているスクリプトオブジェクトを前記ヒープ上の対応する1組のメモリー位置まで追跡するステップと、
前記スクリプトの実行と同時に前記ヒープの少なくとも一部分をマークするステップであって、マークされたヒープは、前記スクリプトの未実行部分によって到達可能である到達可能オブジェクトと、更に、前記スクリプトの未実行部分によって到達不能である到達不能オブジェクトとを含む、ステップと、
前記到達不能オブジェクトに割り当てられたメモリーを、前記マークに基づいて前記スクリプトの実行と同時に解放するステップと、
を含む方法。 - 前記マークするステップは、前記到達可能オブジェクトをマークするステップを含む、請求項1に記載の方法。
- 前記マークするステップは、前記到達不能オブジェクトをマークするステップを含む、請求項1に記載の方法。
- 前記解放するステップは、前記到達可能オブジェクトを前記ヒープの最初の記憶位置にそれぞれ保持するステップを含む、請求項1に記載の方法。
- 前記保持するステップは、前記ヒープ内の固定された1組の境界線に従ってヒープオブジェクトの区切りを維持するステップを含む、請求項4に記載の方法。
- 前記スクリプトを実行するステップを更に含む、請求項1に記載の方法。
- 前記実行するステップは、ジャバスクリプトをコンパイルするステップを含む、請求項6に記載の方法。
- 前記実行するステップは、文書オブジェクトモデルを変更するステップを含む、請求項6に記載の方法。
- コンピューター実行可能コンポーネントが格納されたメモリーと、
前記メモリーに通信可能に結合され、前記コンピューター実行可能コンポーネントを実行するように構成されたプロセッサーと、を備え、
前記コンピューター実行可能コンポーネントは、
スクリプトの実行中にオブジェクトのヒープを生成するように構成されたヒープコンポーネントと、
前記スクリプトの未実行部分に含まれているスクリプトオブジェクトを前記ヒープ上の対応する1組のメモリー位置まで追跡するように構成された追跡コンポーネントと、
前記スクリプトの実行と同時に前記ヒープの少なくとも一部分をマークするように構成されたマークコンポーネントであって、マークされたヒープは、前記スクリプトの未実行部分によって到達可能である到達可能オブジェクトと、更に、前記スクリプトの未実行部分によって到達不能である到達不能オブジェクトとを含む、マークコンポーネントと、
前記マークされたヒープに従って、前記スクリプトの実行と同時に、前記到達不能オブジェクトに割り当てられたメモリーを解放するように構成された再利用コンポーネントと、を備える、
メモリー管理デバイス。 - 前記マークコンポーネントは、前記到達可能オブジェクト又は前記到達不能オブジェクトのうちの1つだけをマークするように構成される、請求項9に記載のメモリー管理デバイス。
- 前記再利用コンポーネントは、前記到達不能オブジェクトに割り当てられていた前記メモリーの全体部分の解放に先立って、前記到達不能オブジェクトに割り当てられていた前記メモリーの一部分を再利用するように構成される、請求項9に記載のメモリー管理デバイス。
- 前記再利用コンポーネントは、到達可能オブジェクトをヒープの最初の記憶位置にそれぞれ保持するように構成される、請求項9に記載のメモリー管理デバイス。
- 前記再利用コンポーネントは、前記ヒープ内の固定された1組の境界線に従ってヒープオブジェクトの区切りを維持するように構成される、請求項12に記載のメモリー管理デバイス。
- 前記スクリプトを実行するように構成された実行コンポーネントを更に備える、請求項9に記載のメモリー管理デバイス。
- 前記スクリプトの実行に基づいて文書オブジェクトモデルを変更するように構成されたコンポーネントを更に備える、請求項14に記載のメモリー管理デバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/074,226 US8527560B2 (en) | 2011-03-29 | 2011-03-29 | Conservative garbage collecting with concurrent marking and concurrent sweeping for memory management |
US13/074,226 | 2011-03-29 | ||
PCT/US2012/027795 WO2012134728A2 (en) | 2011-03-29 | 2012-03-06 | Conservative garbage collecting with concurrent marking and concurrent sweeping for memory management |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014513342A true JP2014513342A (ja) | 2014-05-29 |
Family
ID=46928698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014502588A Pending JP2014513342A (ja) | 2011-03-29 | 2012-03-06 | メモリー管理のための同時マーク及び同時スイープによる保守的ガベージコレクション |
Country Status (7)
Country | Link |
---|---|
US (1) | US8527560B2 (ja) |
EP (1) | EP2691860B1 (ja) |
JP (1) | JP2014513342A (ja) |
KR (1) | KR101961501B1 (ja) |
CN (1) | CN102736984B (ja) |
ES (1) | ES2872175T3 (ja) |
WO (1) | WO2012134728A2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10628306B2 (en) | 2017-02-01 | 2020-04-21 | Microsoft Technology Licensing, Llc | Garbage collector |
US10572181B2 (en) | 2017-02-01 | 2020-02-25 | Microsoft Technology Licensing, Llc | Multiple stage garbage collector |
CN107145451B (zh) * | 2017-05-09 | 2020-09-25 | 深圳市茁壮网络股份有限公司 | 一种JavaScript对象存储、回收方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04260948A (ja) * | 1991-01-18 | 1992-09-16 | Mitsubishi Electric Corp | メモリシステム |
JPH09269902A (ja) * | 1996-01-31 | 1997-10-14 | Toshiba Corp | 情報処理装置の資源管理装置、及び情報処理システムにおける資源管理方法 |
JP2000339214A (ja) * | 1999-05-28 | 2000-12-08 | Nec Corp | 実時間メモリ管理システム、及び実時間メモリ管理方法 |
WO2005001695A1 (ja) * | 2003-06-30 | 2005-01-06 | Matsushita Electric Industrial Co., Ltd. | ガーベジコレクションシステム |
US20100114997A1 (en) * | 2008-10-30 | 2010-05-06 | International Business Machines Corporation | Allocation cache premarking for snap-shot-at-the-beginning concurrent mark-and-sweep collector |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5088036A (en) * | 1989-01-17 | 1992-02-11 | Digital Equipment Corporation | Real time, concurrent garbage collection system and method |
US5355483A (en) * | 1991-07-18 | 1994-10-11 | Next Computers | Asynchronous garbage collection |
US6289360B1 (en) * | 1998-10-07 | 2001-09-11 | International Business Machines Corporation | Method and system for eliminating synchronization between sweep and allocate in a concurrent garbage collector |
GB9907278D0 (en) * | 1999-03-31 | 1999-05-26 | Philips Electronics Nv | Memory reclamation method and apparatus |
US6622226B1 (en) * | 2000-07-31 | 2003-09-16 | Microsoft Corporation | Method and system for using a mark-list for garbage collection |
US6502111B1 (en) * | 2000-07-31 | 2002-12-31 | Microsoft Corporation | Method and system for concurrent garbage collection |
WO2002023345A1 (en) | 2000-09-13 | 2002-03-21 | Geodesic Systems, Incorporated | Conservative garbage collectors that can be used with general memory allocators |
US7089272B1 (en) * | 2003-06-18 | 2006-08-08 | Sun Microsystems, Inc. | Specializing write-barriers for objects in a garbage collected heap |
US7321908B2 (en) * | 2003-07-23 | 2008-01-22 | International Business Machines Corporational | Mostly concurrent garbage collection |
US7197521B2 (en) * | 2003-11-21 | 2007-03-27 | Intel Corporation | Method and system performing concurrently mark-sweep garbage collection invoking garbage collection thread to track and mark live objects in heap block using bit vector |
US20050198088A1 (en) | 2004-03-03 | 2005-09-08 | Sreenivas Subramoney | Method and system for improving the concurrency and parallelism of mark-sweep-compact garbage collection |
US7636745B1 (en) * | 2004-03-12 | 2009-12-22 | Sun Microsystems, Inc. | Concurrent-marking-initiation heuristic |
US7340494B1 (en) * | 2004-03-12 | 2008-03-04 | Sun Microsystems, Inc. | Garbage-first garbage collection |
US7533228B1 (en) * | 2005-05-27 | 2009-05-12 | Sun Microsystems, Inc. | Two-pass sliding compaction |
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 |
CN101046755B (zh) * | 2006-03-28 | 2011-06-15 | 郭明南 | 一种计算机自动内存管理的系统及方法 |
US7480782B2 (en) * | 2006-06-14 | 2009-01-20 | Sun Microsystems, Inc. | Reference-updating using per-chunk referenced-address ranges in a compacting garbage collector |
WO2008009176A1 (en) * | 2006-07-14 | 2008-01-24 | Intel Corporation | Heap organization for a multitasking virtual machine |
US7840612B2 (en) * | 2006-10-23 | 2010-11-23 | Research In Motion Limited | Methods and apparatus for concurrently executing a garbage collection process during execution of a primary application program |
US7614003B2 (en) * | 2006-10-23 | 2009-11-03 | Adobe Systems Incorporated | Rendering hypertext markup language content |
US7890711B2 (en) * | 2007-04-18 | 2011-02-15 | Oracle America, Inc. | Methods, apparatus, and program products for improved finalization |
US7685182B2 (en) * | 2007-05-08 | 2010-03-23 | Microsoft Corporation | Interleaved garbage collections |
US7685185B2 (en) * | 2007-06-29 | 2010-03-23 | Microsoft Corporation | Move-in/move-out notification for partial replica synchronization |
US8504596B2 (en) * | 2007-07-25 | 2013-08-06 | Apple Inc. | Extended garbage collection |
WO2010033997A2 (en) | 2008-09-22 | 2010-03-25 | Fiji Systems, Llc | Hybrid fragmenting real time garbage collection |
-
2011
- 2011-03-29 US US13/074,226 patent/US8527560B2/en active Active
-
2012
- 2012-03-06 KR KR1020137025539A patent/KR101961501B1/ko active IP Right Grant
- 2012-03-06 ES ES12764313T patent/ES2872175T3/es active Active
- 2012-03-06 WO PCT/US2012/027795 patent/WO2012134728A2/en active Application Filing
- 2012-03-06 JP JP2014502588A patent/JP2014513342A/ja active Pending
- 2012-03-06 EP EP12764313.8A patent/EP2691860B1/en active Active
- 2012-03-28 CN CN201210086589.2A patent/CN102736984B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04260948A (ja) * | 1991-01-18 | 1992-09-16 | Mitsubishi Electric Corp | メモリシステム |
JPH09269902A (ja) * | 1996-01-31 | 1997-10-14 | Toshiba Corp | 情報処理装置の資源管理装置、及び情報処理システムにおける資源管理方法 |
JP2000339214A (ja) * | 1999-05-28 | 2000-12-08 | Nec Corp | 実時間メモリ管理システム、及び実時間メモリ管理方法 |
WO2005001695A1 (ja) * | 2003-06-30 | 2005-01-06 | Matsushita Electric Industrial Co., Ltd. | ガーベジコレクションシステム |
US20100114997A1 (en) * | 2008-10-30 | 2010-05-06 | International Business Machines Corporation | Allocation cache premarking for snap-shot-at-the-beginning concurrent mark-and-sweep collector |
Non-Patent Citations (2)
Title |
---|
湯浅 太一: "3.実時間ごみ集め", 情報処理, vol. 第35巻 第11号, JPN6016043382, 15 November 1994 (1994-11-15), JP, pages 1006 - 1013, ISSN: 0003438040 * |
鈴木 貢: "印付けと回収と純計算を並列に実施するごみ集め", 情報処理学会研究報告, vol. 第94巻 第79号, JPN6016043379, 16 September 1994 (1994-09-16), JP, pages 23 - 30, ISSN: 0003438039 * |
Also Published As
Publication number | Publication date |
---|---|
CN102736984A (zh) | 2012-10-17 |
WO2012134728A3 (en) | 2012-12-06 |
EP2691860B1 (en) | 2021-05-05 |
KR20140009422A (ko) | 2014-01-22 |
ES2872175T3 (es) | 2021-11-02 |
US8527560B2 (en) | 2013-09-03 |
US20120254265A1 (en) | 2012-10-04 |
CN102736984B (zh) | 2017-03-01 |
WO2012134728A2 (en) | 2012-10-04 |
EP2691860A2 (en) | 2014-02-05 |
KR101961501B1 (ko) | 2019-03-22 |
EP2691860A4 (en) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10628398B2 (en) | Conservative garbage collecting and tagged integers for memory management | |
JP5139987B2 (ja) | 拡張可能メタデータ | |
US9342274B2 (en) | Dynamic code generation and memory management for component object model data constructs | |
US20120151433A1 (en) | Reverse engineering user interface mockups from working software | |
US9646020B2 (en) | Integrated format conversion during disk upload | |
CN106681891A (zh) | 一种Java应用系统中调整日志级别的方法及装置 | |
CN104423961A (zh) | 一种生成测试脚本的方法及系统 | |
CN109033365B (zh) | 一种数据处理方法及相关设备 | |
JP2014513342A (ja) | メモリー管理のための同時マーク及び同時スイープによる保守的ガベージコレクション | |
CN111309432B (zh) | 一种故障演练方法、装置及系统 | |
US20190391907A1 (en) | System and method for automating functional testing | |
JP5031032B2 (ja) | プログラムコード変換に関してプロセスファイルシステムを管理する方法及び装置 | |
JP5525658B2 (ja) | 計算機、リソース使用量計算方法及びリソース使用量計算プログラム | |
US20120005260A1 (en) | Method for Optimizing Remote Object Implementations | |
CN116303810A (zh) | 数据处理方法、装置、介质和计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150306 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20150515 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160304 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161110 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170210 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170322 |