TWI438633B - 記憶體管理之垃圾收集方法、其電腦程式產品,及其裝置 - Google Patents

記憶體管理之垃圾收集方法、其電腦程式產品,及其裝置 Download PDF

Info

Publication number
TWI438633B
TWI438633B TW097141142A TW97141142A TWI438633B TW I438633 B TWI438633 B TW I438633B TW 097141142 A TW097141142 A TW 097141142A TW 97141142 A TW97141142 A TW 97141142A TW I438633 B TWI438633 B TW I438633B
Authority
TW
Taiwan
Prior art keywords
memory
software application
unit
allocation space
data
Prior art date
Application number
TW097141142A
Other languages
English (en)
Other versions
TW200935229A (en
Inventor
Anthony Howard Phillips
Andrew Dean Wharmby
Original Assignee
Ibm
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of TW200935229A publication Critical patent/TW200935229A/zh
Application granted granted Critical
Publication of TWI438633B publication Critical patent/TWI438633B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting

Description

記憶體管理之垃圾收集方法、其電腦程式產品,及其裝置
本發明係關於執行中之軟體應用程式的記憶體管理,具體而言,係關於垃圾收集程序中的殘存記憶體。
執行環境(runtime environments)下記憶體管理的設計,通常係為了軟體工程師的方便。因此,如Java(Java係昇陽微系統公司的註冊商標)的執行環境包含具有垃圾收集器的堆積記憶體。垃圾收集器係自動辨識並自記憶體內丟棄無效資料(如物件),以釋放儲存空間的執行工具。垃圾收集係現代電腦系統之效率所享有的奢侈品,使軟體工程師不再需要以程式化的方式丟棄每個無效物件。
現代的垃圾收集演算法,係根據弱生假說(weak generational hypothesis),即大部份被分配的物件係“短存”的(即物件建立後,在相對較短的時間內即可被丟棄)。為了使用此假說,物件會被分配在稱為“新代(nursery)”的記憶體堆積區。此新代比主要堆積區更常收集垃圾,其儲存較舊(年老)的物件,且一般係由稱為分配空間與殘存空間的二個區域組合而成。隨著物件被複製到連續記憶體中,新代會自動壓縮。複製垃圾收集演算法係負責將存活物件,自新代分配空間複製到同時進行壓縮的殘存記憶體(survivor memory)。殘存記憶體係新代堆積可組態大小的一部份。舉例而言,殘存記憶體最多可佔分配給新代之總記憶體的50%。
圖1a係在電腦系統中執行之軟體應用程式202的示意圖。每個軟體應用程式具有由記憶體管理器204所提供的相關堆積記憶體(heap memory)206。堆積記憶體206佔用一位址範圍,其可為記憶體管理器204將實體記憶體所映射至其處的一實體位址範圍或一邏輯位址範圍。舉例而言,堆積記憶體206係一新代堆積,屬一較大應用程式堆積的一部份。記憶體管理器204可將電腦系統的記憶體單元提供給軟體應用程式202。舉例而言,記憶體管理器204可為電腦系統中作業系統的一構件,如核心記憶體管理器。
堆積記憶體206的一部份208係專屬殘存記憶體,供垃圾收集程序期間使用。殘存記憶體部分208的特徵,係不可提供用程式202分配物件,且係專屬收集垃圾程序期間使用。圖1b係圖1a之軟體應用程式202之堆積記憶體206的示意圖。執行時,軟體應用程式202於堆積記憶體206儲存及擷取資料。堆積記憶體206包含對應儲存資料的分配部份(劃線及陰影部份)。此資料可包含例如分配的軟體物件、資料結構、紀錄、欄位或變數。垃圾收集演算法可週期性地處理堆積記憶體206,丟棄分配於堆積記憶體206中未使用資料項目。此演算法包含一複製垃圾收集演算法。在處理堆積記憶體206時,垃圾收集演算法辨識堆積記憶體206中有效的資料項目。有效的資料項目係軟體應用程式202正在使用的資料項目。反之,無效的資料項目係軟體應用程式202不再需要的資料項目。舉例而言,軟體應用程式202係透過例如記憶體指標或物件參考,來參照有效資料項目。垃圾收集演算法將辨識為有效的資料項目複製到殘存記憶體208。垃圾收集演算法可將辨識為有效的資料項目,複製到殘存記憶體208內連續的位置,以壓縮此資料項目。隨後,僅需保留殘存記憶體208中所紀錄的資料項目(因此為“殘存”),堆積記憶體206中所有其他的資料項目(對應到無效的資料項目)皆可被丟棄。
複製垃圾收集器的一個問題,係即使沒有執行垃圾收集,每個應用程式皆維持其自身的殘存記憶體。對於具有大量執行中的軟體應用程式以及對應大量記憶體分配為殘存記憶體的系統而言,此問題係特別嚴重的。又,由於殘存記憶體係專屬垃圾收集程序期間使用,軟體應用程式202無法用此記憶體儲存資料。
因此,需要一種可提供殘存記憶體給垃圾收集,供複製垃圾收集器之用,而無需將堆積記憶體專屬於執行中之每個軟體應用程式。
本發明之第一面向,係提供一種在電腦系統中執行之軟體應用程式的記憶體管理方法。本方法包含以下步驟:記憶體管理器提供記憶體的第一單元給軟體應用程式,作為第一分配空間,此第一單元具有一預定大小;軟體應用程式將資料儲存於第一分配空間;以及透過以下步驟,丟棄第一分配空間中無效的資料:a)記憶體管理器提供記憶體的第二單元給軟體應用程式;b)辨識第一分配空間中的有效資料,以及複製此有效資料到記憶體的第二單元,此有效資料至少包含軟體應用程式正在使用的資料;c)在第一分配空間中,表示有效資料已成為無效;d)映射第一分配空間的一部份,以與記憶體之第二單元邏輯性地連續,以定義軟體應用程式的第二分配空間,其中第二分配空間的大小與預定大小相同;以及e)將第一分配的剩餘部份還給記憶體管理器,以作為記憶體可供重新使用的一單元。
在較佳的情況下,記憶體第二單元的特徵,係其大小至少等於第一分配空間中有效資料之聚集大小。
在較佳的情況下,記憶體管理器係電腦系統中作業系統內的核心記憶體管理器。
在較佳的情況下,至少步驟b)係由垃圾收集器軟體例行程式執行。
藉此,記憶體的第二單元可作為執行中的軟體應用程式的殘存記憶體,供垃圾收集之用,且完成垃圾收集後,軟體應用程式會釋放記憶體。藉此,軟體應用程式僅在垃圾收集程序期間,才消耗殘存記憶體,進而避免需要專屬堆積記憶體作為執行中每個軟體應用程式的殘存記憶體。
本發明之第二面向,係提供一種管理在電腦系統中執行之軟體應用程式的記憶體之裝置。本裝置包含:記憶體管理器,係負責提供記憶體的第一單元給軟體應用程式,作為第一分配空間,此第一單元具有一預定大小;儲存器,係負責讓軟體應用程式將資料儲存於第一分配空間;以及丟棄器,係負責透過以下步驟,丟棄第一分配空間中無效的資料:a)記憶體管理器之供應器,係負責提供記憶體的第二單元給軟體應用程式;b)識別器,係負責辨識第一分配空間中的有效資料,以及複製此有效資料到記憶體的第二單元,此有效資料包含軟體應用程式正在使用的至少一個資料;c)表示器,係負責在第一分配空間中,表示有效資料已成為無效;d)映射器,係負責映射第一分配空間的一部份,以與記憶體之第二單元邏輯性地連續,以定義軟體應用程式的第二分配空間,其中第二分配空間的大小與預定大小相同;以及e)記憶體取消分配器,係負責將第一分配的剩餘部份還給記憶體管理器,以作為記憶體可供重新使用的一單元。
本發明之第三面向,係提供一種裝置。此裝置包含中央處理單元;記憶體子系統;輸入/輸出子系統;以及匯流排子系統與中央處理單元、記憶體子系統、輸入/輸出子系統相連;以及如上述之該裝置。
本發明之第四面向,係提供一種電腦程式元件,其包含電腦程式碼,當載入電腦系統並執行於其中時,可導致電腦執行上述方法。
圖2係適用於本發明實施例的作業的電腦系統的方塊圖。中央處理單元(CPU)102係透過資料匯流排108,通訊連接儲存器104與輸入/輸出(I/O)介面106。儲存器104可為任何讀/寫儲存裝置,如隨機存取記憶體(RAM)、或非揮發性儲存裝置。非揮發性儲存裝置的一範例包含磁碟、磁帶儲存裝置。I/O介面106係與輸入或輸出資料的裝置、或輸入及輸出資料溝通的介面。可連接I/O介面106的I/O裝置包含鍵盤、滑鼠、顯示器(如監控器)及網路連線。
圖3a係本發明之一較佳實施例中,在電腦系統中執行之軟體應用程式302的示意圖。圖3a中的許多元件係與上述圖1a中的元件相同,爾後將不贅述。與圖1a的排列不同之處,係圖3a的軟體應用程式302包含堆積記憶體306(如新代堆積),係完全供軟體應用程式儲存資料。沒有任何一部份的堆積記憶體306係專屬作殘存記憶體。堆積記憶體306係由記憶體管理器304提供給軟體應用程式302。因此,在圖3a的排列中,軟體應用程式302的記憶體僅限於應用程式堆積儲存應用程式資料所需之處。
使用時,記憶體管理器304可提供記憶體第二單元給軟體應用程式302,以因應軟體應用程式302中垃圾收集程序的初始。記憶體的第二單元係適用作為垃圾收集程序期間的殘存記憶體。此垃圾收集程序辨識堆積記憶體306中的有效資料,並將之複製於記憶體的第二單元作保存。此複製可包含複製到記憶體的第二單元的連續記憶體位置,以壓縮有效資料。完成垃圾收集器的複製程序時,堆積記憶體306的一部份會被軟體應用程式302所釋放,使得此部份可供記憶體管理器304作為記憶體的一部份,供重新使用。堆積記憶體306被釋放的部份,係具有對應記憶體之第二單元之大小的大小。因此,當垃圾收集程序需要殘存記憶體時,其可以記憶體的第二單元的形態,供軟體應用程式302使用。再者,完成垃圾收集程序時,軟體應用程式即釋放記憶體。藉此,殘存記憶體可供執行中的軟體應用程式302作垃圾收集之用,且垃圾收集完後,軟體應用程式即釋放記憶體。因此,軟體應用程式僅在垃圾收集程序期間,消耗殘存記憶體,進而避免堆積記憶體專屬作為執行中的每個軟體應用程式的殘存記憶體的需求。
圖3b到3d係本發明之一較佳實施例中,垃圾收集程序期間,圖3a之堆積記憶體306的示意圖。圖3b中,堆積記憶體306係繪示為具有儲存資料,位於陰影與劃線部份。儲存於堆積記憶體306中的資料可為有效或無效。有效資料係軟體應用程式302所使用的資料,例如軟體應用程式所參考、可取得或保留的資料。無效資料係軟體應用程式不再使用的資料,例如不再參考、取得或保留的資料。資料可基於物件或記憶體指標取消參考、或主動或被動丟棄堆積中的資料而變成無效。圖3b中的排列顯示四個有效的儲存資料,這部份係交叉劃線成陰影。
圖3c繪示本發明之一較佳實施例中,垃圾收集程序的第一部份期間,圖3b的堆積記憶體306。起初,記憶體管理器304將記憶體的第二單元提供為殘存空間308。殘存空間308的大小是可調整設定的。較佳地,殘存空間的大小係堆積記憶體306的大小的20%。或者,殘存空間係固定為一預定大小、或由一學習程序所決定的大小,以對應堆積之垃圾收集的適當大小。實作中,殘存空間308的大小較佳地係實質等於或大於堆積記憶體306中所有有效資料的聚集大小。垃圾收集器辨識堆積記憶體306中的有效資料項目,並將有效資料項目複製到殘存空間308。較佳地,垃圾收集器將有效資料複製到殘存空間308的連續位置,以壓縮有效資料(即避免複製作業期間發生記憶體分裂)。
圖3d繪示本發明之一實施例中,在垃圾收集程序的第二段的圖3b之堆積記憶體306。一旦有效資料已複製到殘存空間308,堆積記憶體306中所有的有效資料會標示為無效。藉此,整個堆積記憶體306即有效的缺乏資料(空的)。圖3d利用劃線作陰影處,表示堆積記憶體306中所儲存的所有資料皆為無效。
邏輯性地連續,進而定義新分配空間(堆積記憶體306’)。此部份312的映射,係可透過改變堆積記憶體306此部份312的儲存位置的邏輯位址,以邏輯性地持續執行至殘存空間308而達成,如熟此技藝者所知。舉例而言,始於位址Ulow 且具有Usize 大小的堆積記憶體306的部份312,係可將未分配部份的邏輯位址映射為Ulow =Slow +Ssize 作映射,而得以邏輯性地持續執行至殘存空間,其始於位址Slow 且具有Ssize 大小。此部份312可為堆積記憶體306的任何部份(由於堆積內的所有資料現在皆顯示為無效,堆積記憶體306的記憶體係有效的空著)。此堆積的部份312之大小係當其結合殘存空間308以形成新分配空間306’時,使得堆積記憶體306’的大小會等於堆積記憶體306之大小而定。因此,Usize +Ssize =Asize 。藉此,定義堆積記憶體306的剩餘部份,即堆積記憶體306的該部份未映射形成新堆積之一部份,其大小等於殘存空間308的大小。
堆積記憶體306’所定義的新分配空間,隨後可供軟體應用程式302作儲存資料之用。新堆積記憶體306’的殘存部份308與自堆積記憶體306映射的部份312並無差別,且整個堆積記憶體306’係可作為軟體應用程式之分配空間。
圖4a係本發明之一較佳實施例中記憶體管理之方法的流程圖。起初,於步驟402,記憶體管理器304提供第一分配空間給軟體應用程式302作為堆積記憶體306。於步驟404,此應用程式將資料儲存於堆積記憶體306中。最後,於步驟406,垃圾收集程序丟棄堆積記憶體306中的無效資料。
圖4b係本發明之一較佳實施例中圖4a丟棄無效資料之步驟406的流程圖。起初,於步驟410,記憶體管理器304提供記憶體的第二單元給軟體應用程式302作為殘存空間308。於步驟412,垃圾收集程序辨識出儲存於堆積記憶體306之分配部份310的有效資料,並將辨識出的有效資料複製到殘存空間308。於步驟413,此方法將堆積記憶體306中的所有有效資料表明為無效,以表示堆積記憶體306現已實質清空(無有效資料),因為所有的有效資料現已在殘存空間308。於步驟414,映射堆積記憶體306的此部份312,以邏輯性地連續殘存空間308,以定義新分配空間為堆積記憶體306’。此部份312係選作定義新堆積記憶體306’與堆積記憶體306具有相同大小之用。最後,於步驟416,堆積記憶體306未包含在新堆積記憶體306’的剩餘部份會被釋放,以供記憶體管理器304重新使用。
圖5係本發明之一實施例中一裝置之各構件的示意圖。本裝置包含一記憶體管理器204(如上述),其適用於提供記憶體的第一單元給軟體應用程式作為記憶體堆積。本裝置更包含一儲存器構件502,負責將資料儲存於軟體應用程式的記憶體堆積,藉此定義堆積的一分配部份。本裝置更包含一丟棄器504,如垃圾收集構件,以丟棄分配部份中的無效資料。丟棄器504包含一供應器構件506,負責提供記憶體的第二單元給軟體應用程式,作為殘存記憶體。丟棄器504更包含一識別器,供辨識堆積中的有效資料,以及將有效資料複製到殘存記憶體。丟棄器504更包含一映射器構件510,負責映射堆積的未分配部份,以邏輯性地連續殘存空間,以及一記憶體取消分配構件512,負責將分配部份還給記憶體管理器204,作為適合重新使用的記憶體的一單元。丟棄器504亦包含一表示器514,負責在將有效資料複製到殘存空間308後,顯示堆積記憶體306中的所有資料為無效。
本發明在所描述之各實施例,至少可部份利用軟體控制的程式化處理裝置(如微處理器、數位信號處理器、或其他處理器)、資料處理裝置或系統實施,熟此技藝者當知,負責組態可程式化裝置、設備或系統的電腦程式,其實施上述方法者,亦屬本發明之一面向。電腦程式可實施為原始碼、或可進行編輯以實施於處理裝置、設備或系統、或可以例如物件碼的形式實施。
在較適當的情況下,電腦程式係以機器或裝置可讀取的形態,儲存於負載媒體,如固態記憶體、磁性記憶體(如磁片或磁帶)、光學或磁光可讀取記憶體(如光碟片或多功能數位碟片等),而處理裝置利用此程式或其一部份,組態其裝置供執行。電腦程式可由通訊媒體中的遠端來源提供之,如電子信號、無線電載波、或光載波。此等負載媒體亦屬本發明之各面向。
熟此技藝者當知,雖然本發明已利用上述實施例作描述,但本發明並不限於此等實施例,許多可能的潤飾及修改亦在本發明之範疇。
本發明之範疇包含在此所揭露之任何新穎特徵或其結合。申請人在此表明在取得此申請案、或此申請案所衍生出之其他申請案之專利期間,可根據此等特徵或其結合者主張新的請求項。具體而言,參照以下專利請求項,附屬項的特徵可與獨立項的特徵作結合,以及各獨立項的特徵可以適當的方式作結合,而不僅係專利請求項所列之特定結合。
102...中央處理單元
104...儲存器
106...輸入/輸出介面
108...資料匯流排
202、202a、202b、202c...軟體應用程式
204...記憶體管理器
206、206a、206b、206c...堆積記憶體
208、208a、208b、208c...殘存記憶體
302...軟體應用程式
304...記憶體管理器
306、306’...堆積記憶體
308...殘存空間
312...部份
502...儲存器構件
504...丟棄器
506...供應器構件
510...映射器構件
512...記憶體取消分配構件
514...表示器
本發明之較佳實施例將僅以範例方式,參照伴隨圖式,詳述如下,其中:
圖1a係習知在電腦系統中執行之軟體應用程式的示意圖;
圖1b係習知圖1a之軟體應用程式的堆積的示意圖;
圖2係適用於本發明之實施例之作業的電腦系統之方塊圖;
圖3a係本發明之一較佳實施例中在電腦系統中執行之軟體應用程式的示意圖;
圖3b到3d係本發明之一較佳實施例中在垃圾收集程序期間圖3a之堆積的示意圖;
圖4a係本發明之一較佳實施例中記憶體管理之方法的流程圖;
圖4b係本發明之一較佳實施例中圖4a丟棄無效資料步驟的流程圖;以及
圖5係本發明之一較佳實施例中一裝置的構件示意圖。

Claims (9)

  1. 一種執行於一電腦系統中之一軟體應用程式之記憶體管理的垃圾收集方法,該方法包含以下步驟:提供堆積記憶體之一第一單元給該軟體應用程式,作為一第一分配空間,該第一單元具有一預定大小且無殘存記憶體;將資料儲存於該第一分配空間;以及以下列步驟丟棄該第一分配空間中的無效資料以因應該堆積記憶體的垃圾收集:a)提供從該堆積記憶體區分出之記憶體之一第二單元給該軟體應用程式作為殘存記憶體;b)辨識出該第一分配空間中的有效資料,以及將該有效資料複製到記憶體的該第二單元,該有效資料至少包含該軟體應用程式正在使用之資料;c)在該第一分配空間中,表明該有效資料已成為無效;d)映射該第一分配空間之一部份,以與記憶體之該第二單元邏輯性地連續,以替該軟體應用程式定義一第二分配空間,其中該第二分配空間的一大小等於該預定大小;以及e)還給該第一分配空間的一剩餘部份,作為適合重新使用之記憶體之一單元。
  2. 如請求項1所述之方法,其中記憶體之該第二單元係具有至少與該第一分配空間中之該有效資料之一聚集大小(aggregated size)相等的一大小。
  3. 如請求項1所述之方法,其中該堆積記憶體係一新代堆積。
  4. 一種管理執行於一電腦系統中之一軟體應用程式之記憶體之垃圾收集裝置,該裝置包含:一具有記憶體管理器執行於其中之該電腦系統之一記憶體,提供堆積記憶體之一第一單元給該軟體應用程式,作為一第一分配空間,該第一單元具有一預定大小且無殘存記憶體;一儲存器,係供該軟體應用程式將資料儲存於該第一分配空間;以及一丟棄器,係以下列步驟因應該堆積記憶體的垃圾收集丟棄該第一分配空間中的無效資料:a)一供應器,係供該記憶體管理器提供從該堆積記憶體區分出之記憶體之一第二單元給該軟體應用程式作為殘存記憶體;b)一識別器,係辨識出該第一分配空間中的有效資料,以及將該有效資料複製到記憶體的該第二單元,該有效資料至少包含該軟體應用程式正在使用之資料;c)一表示器,係在該第一分配空間中,表明該有效資料已成為無效;d)一映射器,係供映射該第一分配空間之一部份,以與記憶體之該第二單元邏輯性地連續,以定義一第二分配空間給該軟體應用程式,其中該第二分配空間的一大小等於該預定大小;以及 e)一記憶體取消分配器,係將該第一分配空間的一剩餘部份還給該記憶體管理器,作為適合重新使用之記憶體之一單元。
  5. 如請求項4所述之裝置,其中記憶體之該第二單元的特徵係具有至少與該第一分配空間中之該有效資料之一聚集大小相等的一大小。
  6. 如請求項4所述之裝置,其中該記憶體管理器係該電腦系統之一作業系統中的一核心記憶體管理器。
  7. 如請求項4所述之裝置,其中該堆積記憶體係一新代堆積。
  8. 一種垃圾收集之記憶體管理裝置,包含:一中央處理單元;一記憶體子系統;一輸入/輸出子系統;以及一匯流排子系統,係與該中央處理單元、該記憶體子系統、該輸入/輸出子系統相連;以及一裝置,包含:一記憶體管理器,提供堆積記憶體之一第一單元給該軟體應用程式,作為一第一分配空間,該第一單元具有一預定大小且無殘存記憶體; 一儲存器,係供該軟體應用程式將資料儲存於該第一分配空間;以及一丟棄器,係以下列步驟因應該堆積記憶體的垃圾收集丟棄該第一分配空間中的無效資料:a)一供應器,係供該記憶體管理器提供從該堆積記憶體區分出之記憶體之一第二單元給該軟體應用程式作為殘存記憶體;b)一識別器,係辨識出該第一分配空間中的有效資料,以及將該有效資料複製到記憶體的該第二單元,該有效資料至少包含該軟體應用程式正在使用之資料;c)一表示器,係在該第一分配空間中,表明該有效資料已成為無效;d)一映射器,係供映射該第一分配空間之一部份,以與記憶體之該第二單元邏輯性地連續,以定義一第二分配空間給該軟體應用程式,其中該第二分配空間的一大小等於該預定大小;以及e)一記憶體取消分配器,係將該第一分配空間的一剩餘部份還給該記憶體管理器,作為適合重新使用之記憶體之一單元。
  9. 一種電腦程式產品,包含電腦程式碼,當載入一電腦系統之記憶體並執行於其中時,會導致該電腦執行一種執行於一電腦系統中之一軟體應用程式之記憶體管理的方法,該方法包含: 提供堆積記憶體之一第一單元給該軟體應用程式作為一第一分配空間,該第一單元具有一預定大小且無殘存記憶體,用以儲存來自一軟體應用程式的資料於該第一分配空間;以及以下列步驟丟棄該第一分配空間中的無效資料以因應該堆積記憶體的垃圾收集:a)提供從該堆積記憶體區分出之記憶體之一第二單元給該軟體應用程式作為殘存記憶體;b)辨識出該第一分配空間中的有效資料,以及將該有效資料複製到記憶體的該第二單元,該有效資料至少包含該軟體應用程式正在使用之資料;c)在該第一分配空間中,表明該有效資料已成為無效;d)映射該第一分配空間之一部份,以與記憶體之該第二單元邏輯性地連續,以替該軟體應用程式定義一第二分配空間,其中該第二分配空間的一大小等於該預定大小;以及e)還給該第一分配空間的一剩餘部份,作為適合重新使用之記憶體之一單元。
TW097141142A 2007-11-29 2008-10-27 記憶體管理之垃圾收集方法、其電腦程式產品,及其裝置 TWI438633B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP07121859 2007-11-29

Publications (2)

Publication Number Publication Date
TW200935229A TW200935229A (en) 2009-08-16
TWI438633B true TWI438633B (zh) 2014-05-21

Family

ID=40344490

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097141142A TWI438633B (zh) 2007-11-29 2008-10-27 記憶體管理之垃圾收集方法、其電腦程式產品,及其裝置

Country Status (9)

Country Link
US (1) US8346822B2 (zh)
EP (1) EP2225646B1 (zh)
JP (1) JP4701321B2 (zh)
KR (1) KR101183009B1 (zh)
CN (1) CN101878472B (zh)
AT (1) ATE520080T1 (zh)
CA (1) CA2693592C (zh)
TW (1) TWI438633B (zh)
WO (1) WO2009068597A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2439577B (en) * 2006-06-30 2011-12-14 Data Equation Ltd Data processing
US8954686B2 (en) * 2007-06-19 2015-02-10 Oracle America, Inc. Physical memory capping for use in virtualization
EP2375355A1 (en) * 2010-04-09 2011-10-12 ST-Ericsson SA Method and device for protecting memory content
US9558040B2 (en) * 2011-06-20 2017-01-31 Microsoft Technology Licensing, Llc Memory manager with enhanced application metadata
US9218206B2 (en) * 2011-06-20 2015-12-22 Microsoft Technology Licensing, Llc Memory management model and interface for new applications
AU2012290042A1 (en) * 2011-08-02 2014-02-20 Ajay JADHAV Cloud-based distributed persistence and cache data model
CN102955793B (zh) * 2011-08-23 2016-08-03 腾讯科技(深圳)有限公司 处理文件载体空间的方法和装置
US9563778B2 (en) * 2011-11-14 2017-02-07 St-Ericsson Sa Method for managing public and private data input at a device
GB2502076A (en) 2012-05-15 2013-11-20 Ibm Managing memory in a computer system
US9292427B2 (en) * 2012-09-13 2016-03-22 International Business Machines Corporation Modifying memory space allocation for inactive tasks
JP6051733B2 (ja) * 2012-09-25 2016-12-27 日本電気株式会社 制御システム、制御方法、及び、制御プログラム
KR102014083B1 (ko) * 2012-12-31 2019-08-27 삼성전자주식회사 단말기의 메모리 관리방법 및 장치
JPWO2014136405A1 (ja) * 2013-03-04 2017-02-09 日本電気株式会社 電子機器、電源供給制御方法、及びプログラム
CN104636179A (zh) * 2013-11-15 2015-05-20 英业达科技有限公司 数据传输系统及其操作方法
RU2610582C2 (ru) * 2014-09-30 2017-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ передачи и способ получения объекта от первого процесса второму процессу, машиночитаемый носитель (2 варианта)
RU2633985C2 (ru) * 2014-09-30 2017-10-20 Общество С Ограниченной Ответственностью "Яндекс" Способ и система обработки данных
US20160357435A1 (en) * 2015-06-08 2016-12-08 Alibaba Group Holding Limited High density high throughput low power consumption data storage system with dynamic provisioning
US11263130B2 (en) * 2019-07-11 2022-03-01 International Business Machines Corporation Data processing for allocating memory to application containers

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61279955A (ja) 1985-06-05 1986-12-10 Hitachi Ltd リスト処理方式
JPH11338761A (ja) 1998-05-26 1999-12-10 Mitsubishi Electric Corp 動的メモリ管理機構
US6286016B1 (en) 1998-06-09 2001-09-04 Sun Microsystems, Inc. Incremental heap expansion in a real-time garbage collector
CA2267484C (en) * 1999-03-30 2002-03-05 Object Technology International Inc. Reclaiming memory from deleted applications
US6950837B2 (en) * 2001-06-19 2005-09-27 Intel Corporation Method for using non-temporal streaming to improve garbage collection algorithm
JP4683384B2 (ja) * 2004-09-22 2011-05-18 株式会社ソニー・コンピュータエンタテインメント メモリ制御方法、グラフィックプロセッサおよび情報処理装置
US20060101439A1 (en) * 2004-10-25 2006-05-11 Microsoft Corporation Memory management in a managed code execution environment

Also Published As

Publication number Publication date
WO2009068597A1 (en) 2009-06-04
EP2225646B1 (en) 2011-08-10
US20090144349A1 (en) 2009-06-04
US8346822B2 (en) 2013-01-01
KR101183009B1 (ko) 2012-09-18
KR20100087138A (ko) 2010-08-03
EP2225646A1 (en) 2010-09-08
TW200935229A (en) 2009-08-16
CA2693592A1 (en) 2009-06-04
JP2011505042A (ja) 2011-02-17
CN101878472A (zh) 2010-11-03
CN101878472B (zh) 2012-08-08
JP4701321B2 (ja) 2011-06-15
ATE520080T1 (de) 2011-08-15
CA2693592C (en) 2016-10-18

Similar Documents

Publication Publication Date Title
TWI438633B (zh) 記憶體管理之垃圾收集方法、其電腦程式產品,及其裝置
CN103377162B (zh) 信息处理装置
KR101788332B1 (ko) 비휘발성 메모리 시스템 내의 미사용 논리 어드레스들의 마운트 시간 맵핑 해제
CN105612503B (zh) 持久性数据结构
US8966205B1 (en) System data management using garbage collection and hybrid self mapping
CN101599046B (zh) 一种内存检测方法及装置
US8527559B2 (en) Garbage collector with concurrent flipping without read barrier and without verifying copying
CN106527963A (zh) 存储器系统及主机装置
US20090327377A1 (en) Copying entire subgraphs of objects without traversing individual objects
US20110153690A1 (en) Hardware off-load memory garbage collection acceleration
CN103514249A (zh) 一种数据自精简方法和系统及存储装置
CN111309310A (zh) 面向非易失性内存的JavaScript对象持久化框架
US20070174369A1 (en) Method and apparatus for limiting the size and facilitating maintenance of remembered sets in a space incremental garbage collector
KR20110002742A (ko) 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법
Abdullahi et al. Collection schemes for distributed garbage
US8407444B2 (en) Hardware off-load garbage collection acceleration for languages with finalizers
CN104426965B (zh) 自管理存储方法和系统
JP2013196155A (ja) メモリシステム
CN103678241B (zh) 存储器管理控制系统以及存储器管理控制方法
KR20160122621A (ko) 하이브리드 가비지 수집 방법 및 장치
JPS6336538B2 (zh)
US9753850B1 (en) On-heap huge slab allocator
US20080270676A1 (en) Data Processing System and Method for Memory Defragmentation
CN102521140A (zh) 一种获取活动的描述符集合的方法及装置
TW201537348A (zh) 行動電子裝置與清理記憶區塊的方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees