KR100737345B1 - 점진적인 가비지 콜렉션 수행 시에 순환적 가비지의 회수방법 및 장치 - Google Patents

점진적인 가비지 콜렉션 수행 시에 순환적 가비지의 회수방법 및 장치 Download PDF

Info

Publication number
KR100737345B1
KR100737345B1 KR1020060028034A KR20060028034A KR100737345B1 KR 100737345 B1 KR100737345 B1 KR 100737345B1 KR 1020060028034 A KR1020060028034 A KR 1020060028034A KR 20060028034 A KR20060028034 A KR 20060028034A KR 100737345 B1 KR100737345 B1 KR 100737345B1
Authority
KR
South Korea
Prior art keywords
garbage
garbage collection
heap
reachable
objects
Prior art date
Application number
KR1020060028034A
Other languages
English (en)
Inventor
이상윤
원희선
김상욱
차창일
김형준
황규정
Original Assignee
한국전자통신연구원
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 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020060028034A priority Critical patent/KR100737345B1/ko
Application granted granted Critical
Publication of KR100737345B1 publication Critical patent/KR100737345B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A62LIFE-SAVING; FIRE-FIGHTING
    • A62BDEVICES, APPARATUS OR METHODS FOR LIFE-SAVING
    • A62B18/00Breathing masks or helmets, e.g. affording protection against chemical agents or for use at high altitudes or incorporating a pump or compressor for reducing the inhalation effort
    • A62B18/02Masks
    • A62B18/025Halfmasks
    • 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/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41DOUTERWEAR; PROTECTIVE GARMENTS; ACCESSORIES
    • A41D13/00Professional, industrial or sporting protective garments, e.g. surgeons' gowns or garments protecting against blows or punches
    • A41D13/05Professional, industrial or sporting protective garments, e.g. surgeons' gowns or garments protecting against blows or punches protecting only a particular body part
    • A41D13/11Protective face masks, e.g. for surgical use, or for use in foul atmospheres
    • A41D13/1107Protective face masks, e.g. for surgical use, or for use in foul atmospheres characterised by their shape
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41DOUTERWEAR; PROTECTIVE GARMENTS; ACCESSORIES
    • A41D13/00Professional, industrial or sporting protective garments, e.g. surgeons' gowns or garments protecting against blows or punches
    • A41D13/05Professional, industrial or sporting protective garments, e.g. surgeons' gowns or garments protecting against blows or punches protecting only a particular body part
    • A41D13/11Protective face masks, e.g. for surgical use, or for use in foul atmospheres
    • A41D13/1161Means for fastening to the user's head
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41DOUTERWEAR; PROTECTIVE GARMENTS; ACCESSORIES
    • A41D13/00Professional, industrial or sporting protective garments, e.g. surgeons' gowns or garments protecting against blows or punches
    • A41D13/05Professional, industrial or sporting protective garments, e.g. surgeons' gowns or garments protecting against blows or punches protecting only a particular body part
    • A41D13/11Protective face masks, e.g. for surgical use, or for use in foul atmospheres
    • A41D13/1161Means for fastening to the user's head
    • A41D13/1169Means for fastening to the user's head using adhesive
    • AHUMAN NECESSITIES
    • A62LIFE-SAVING; FIRE-FIGHTING
    • A62BDEVICES, APPARATUS OR METHODS FOR LIFE-SAVING
    • A62B23/00Filters for breathing-protection purposes
    • A62B23/02Filters for breathing-protection purposes for respirators
    • A62B23/025Filters for breathing-protection purposes for respirators the filter having substantially the shape of a mask
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41DOUTERWEAR; PROTECTIVE GARMENTS; ACCESSORIES
    • A41D2400/00Functions or special features of garments
    • A41D2400/38Shaping the contour of the body or adjusting the figure
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41DOUTERWEAR; PROTECTIVE GARMENTS; ACCESSORIES
    • A41D2400/00Functions or special features of garments
    • A41D2400/80Friction or grip reinforcement

Abstract

본 발명은 자바 가상머신(Java virtual machine)에 적용 가능한 점진적인 가비지 콜렉션(incremental garbage collection) 수행 시에 순환적 구조의 가비지(cyclic garbage)를 성공적으로 검출하여 회수할 수 있는 방법 및 장치에 관한 것이다.
본 발명에 따른 점진적으로 가비지 콜렉션 수행 방법은 (i) 힙의 전체 영역 내에서 루트 셋에 포함된 적어도 1개 이상의 객체 각각으로부터 도달 가능한 객체를 식별하는 단계와, (ii) 힙의 일부 영역에 대해 가비지 콜렉션을 수행하는 단계를 포함하고, 상기 (ii) 단계는 상기 힙의 일부 영역에 저장된 객체가 외부 영역으로부터 참조되지만 상기 (i) 단계에서 도달가능한 객체로 식별되지 않은 경우에 상기 객체를 가비지로 판단하는 것을 특징으로 한다.
점진적 가비지 콜렉션(incremental garbage collection), 순환적 가비지

Description

점진적인 가비지 콜렉션 수행 시에 순환적 가비지의 회수 방법 및 장치{Method and Apparatus for collecting a cyclic garbage in the process of incremental garbage collection}
도 1은 순환적 구조의 가비지 예를 도시한다.
도 2는 본 발명이 적용되는 메모리 힙(heap)의 구조를 도시한다.
도 3은 본 발명의 바람직한 실시 예에 따른 점진적 가비지 콜렉션 수행 과정을 나타낸 흐름도이다.
도 4는 도 3의 단계(310)에서 수행되는 도달 가능한 객체의 식별과정을 보다 상세히 도시한 흐름도이다.
도 5는 도 3의 단계(320)에서 수행되는 가비지 콜렉션의 세부 과정을 도시한 흐름도이다.
본 발명은 컴퓨터 시스템에서 메모리 관리를 위해 수행되는 가비지 콜렉션(garbage collection)에 관한 것으로, 구체적으로는 점진적(incremental) 가비지 콜렉션 수행시에 순환적 구조의 가비지(cyclic garbage)를 성공적으로 검출하여 회 수할 수 있는 방법 및 장치에 관한 것이다.
"가비지 콜렉션"은 컴퓨터 시스템에서 이용되는 자동적인 메모리 관리 메커니즘으로서, 컴퓨터 프로그램에 의해 더 이상 액세스되지 않을 데이터 객체(object)(이를 "가비지"라 지칭함)에 의해 사용된 메모리를 회수하는 것을 의미한다. 컴퓨터 시스템에서 흔히 이용되는 가비지 콜렉션 기법으로서,"레퍼런스 카운팅(referencing counting)"과 "추적(tracing)" 기법이 존재한다.
"레퍼런스 카운팅"기법에서는 각각의 객체들이 다른 객체들에 의해 자신이 참조되는 회수를 나타내는 레퍼런스 카운트를 구비하여 자신에 대한 참조가 생성되면 레퍼런스 카운트를 증가시키고 참조가 없어지면 카운트를 감소시킨다. 카운트가 0에 도달한 객체는 가비지로 검출되어 해당 객체에 의해 사용된 메모리가 회수된다. 그러나 레퍼런스 카운팅 기법은 각 객체에 대한 카운트를 유지하기 위한 오버헤드를 발생시킨다.
반면에, "추적" 기법은 모든 객체들의 도달 가능성(reachability)을 추적 및 판단하고 도달 가능하지 않은 것으로 판단된 객체에 의해 사용된 메모리를 회수하는 방식으로서, 전술한 레퍼런스 카운팅 기법과 같은 오버헤드를 발생시키지 않는 장점이 있다. 여기서, 도달 가능한 객체라 함은 프로그램내의 변수 등에 의해 직접 참조되거나 다른 도달 가능한 객체들에 의해 참조되는 객체를 의미한다. 특히, 호출 스택(call stack) 및 전역변수 등에 의해 참조되어 도달 가능한 객체들의 집합을 "루트 셋(root set)"이라 하는데, 루트 셋은 도달가능한 모든 객체들을 결정하는 시작 지점이 된다. 따라서 루트 셋 내의 객체들에 의해 직접 참조되는 객 체도 도달 가능한 객체에 해당될 뿐만 아니라 이러한 도달 가능한 객체들에 의해 참조되는 객체들도 또한 도달가능한 객체로 판단된다.
한편, 가비지 콜렉션을 수행하는 동안 프로그램의 실행을 중단한다면, 콜렉션 수행 중에는 새로운 객체들이 할당되지 않고 기존 객체들의 도달가능성이 변경되지 않도록 보장될 수는 있으나, 시스템 성능에는 좋지 않은 영향을 미친다. 이러한 문제를 해결하기 위해 고안된 것이 자바 가상 머신(Java virtual machine)에 적용 가능한 "점진적(incremental) 가비지 콜렉션"으로서, 이는 가비지 콜렉션의 전체 프로세스를 한 번에 전부 수행하는 대신에 전체 프로세스의 일부분만 수행하고 사용자 프로그램이 다시 동작하는 식의 반복으로 전체 프로세스를 완료하는 형태의 가비지 콜렉션 기법이다.
그러나 점진적 가비지 콜렉션은 힙의 일부분만을 가비지 콜렉션의 대상으로 삼기 때문에 그 부분이 아닌 외부로부터 참조되는 객체를 식별하기 위한 별도의 구조를 갖는다. 외부영역으로부터 참조되는 객체는 여전히 도달 가능하다고 판단되어 가비지 콜렉션의 대상에서 제외된다. 이때, 한 객체가 순환적인 구조를 가지게 되면 그 객체를 포함한 전체 구조가 가비지가 되더라도 여전히 상호간의 참조를 가지고 있으므로 회수가 불가능하다. 즉, 점진적 가비지 콜레션은 순환적 구조의 가비지를 검출하지 못하는 문제점이 있다. 순환적 구조의 가비지란 루트 셋으로부터 도달이 불가능한 가비지들이 순환적으로 연결된 형태로서, 한 객체에서 그 객체가 참조하는 다른 객체를 재귀적으로 추적해가면 자기 자신으로 돌아오는 구조를 말한다.
도 1은 순환적 구조의 가비지 예를 도시한 것으로서, 도시된 바와 같이, 객체 A(111), B(121), C(131)가 순환적으로 연결되어 있다. 점진적인 가비지 콜렉션에서 가비지 콜렉션은 프레임 단위로 수행되며, 한 번에 각 프레임(110, 120, 130)내의 두 개의 블록만을 그 대상으로 한다. 도시된 바와 같이, 객체들에 대한 참조들이 순환적인 구조를 갖는 경우에, 이들은 가비지로 인식되지 못하여 가비지 콜렉션의 대상에서 제외된다.
이렇듯 가비지로 인식되지 못한 가비지 객체는 메모리의 낭비를 유발 시키고, 이러한 객체가 다수의 객체를 참조하고 있는 상황에서는 그 자손 객체들 또한 가비지 콜렉션이 되지 않아 메모리 낭비 문제는 더욱 심각해진다. 이러한 가비지의 메모리 점유 문제로 인해 객체 할당을 위한 공간이 부족해져서 보다 자주 가비지 콜렉터를 동작시켜야 하는 부하를 발생시키고, 최악의 경우, 메모리 부족으로 인하여 시스템이 비정상적으로 종료될 수 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여, 자바 가상머신에서 적용가능한 점진적인 가비지 콜랙션 수행 시에 순환적 구조를 갖는 가비지를 성공적으로 검출하여 회수하는데 그 목적이 있다.
전술한 목적을 달성하기 위해, 본 발명의 제1 측면에 따르면, 컴퓨터 시스템에서 점진적으로 가비지 콜렉션을 수행하기 위한 방법이 제공된다. 상기 방법은 (i) 힙의 전체 영역 내에서 루트 셋에 포함된 적어도 1개 이상의 객체 각각으로부 터 도달 가능한 객체를 식별하는 단계와, (ii) 힙의 일부 영역에 대해 가비지 콜렉션을 수행하는 단계를 포함하고, 상기 (ii) 단계는 상기 힙의 일부 영역에 저장된 객체가 외부 영역으로부터 참조되지만 상기 (i) 단계에서 도달가능한 객체로 식별되지 않은 경우에 상기 객체를 가비지로 판단하는 것을 특징으로 한다.
본 발명의 제2 측면에 따르면, 힙의 전체 영역 내에서 루트 셋에 포함된 적어도 1개 이상의 객체 각각으로부터 도달 가능한 객체를 식별하여 표기하기 위한 수단과, 상기 힙의 프레임 단위로 점진적 가비지 콜렉션을 수행하는 동안 해당 프레임내의 객체가 상기 프레임의 외부로부터 참조되지만 도달가능한 객체로 표기되어 있지 않은 경우에 상기 객체를 가비지로 판단하여 이를 회수하기 위한 수단을 포함하는 것을 특징으로 한다.
이하에서는 본 발의 바람직한 실시 예를 첨부된 도면을 참조하여 상세히 설명하겠다. 그러나 이하의 상세한 설명은 단지 예시적인 목적으로 제공되는 것이며 본 발명의 개념을 임의의 특정된 실시 예에 한정하는 것으로 해석되어서는 안 될 것이다.
도 2는 본 발명이 적용되는 메모리 힙(heap)의 구조를 도시한다. 힙은 실행시간(runtime) 중에 생성되는 데이터를 위해 예약된 메모리 영역을 나타내며, 도시된 바와 같이, 균등한 크기의 블록 (211,212,221,222,231,232,241,242) 단위로 분할되어 있고 이 블록들은 이중 연결 리스트로 연결되어 있다. 블록은 객체 할당과 가비지 콜렉션의 최소 단위가 된다. 블록들을 몇 개 묶어서 프레임(210, 220, 230, 240)을 형성하는데 이 프레임은 점진적 가비지 콜렉션의 수행 단위로서, 점진적 가비지 콜렉션 수행시마다 대상 프레임이 프레임 순서대로 증가한다.
프레임 중 한 프레임은 추가적으로 예약되어 가비지 콜렉션 수행 시 복사되는 공간으로 사용될 수 있다. 콜렉션의 대상으로 선정되는 프레임은 객체 할당이 오래된 프레임이다. 이는 객체가 생성된 초기에 가비지로 회수되지 않고 살아남은 객체는 오래도록 살아남을 인자를 갖고 있는 세대이기 때문에 이 객체가 사망하기 위한 충분한 시간을 제공해 줌으로써 가비지 회수율을 높이기 위함이다.
도 3은 본 발명의 바람직한 실시 예에 따른 점진적 가비지 콜렉션 수행 과정을 나타낸 흐름도이다.
우선, 루트 셋으로부터 참조를 추적함으로써 전체 힙 영역에서 도달 가능한 객체를 식별하여 해당 객체에 표기해둔다(단계 310). 모든 도달 가능한 객체의 식별이 완료되면 다시 사용자 프로그램이 동작할 것이다.
다음, 사용자 프로그램을 일시 중지하고 힙의 일부 영역에 대한 가비지 콜렉션을 수행한다(단계 320). 일실시예에서, 가비지 콜렉션은 프레임 단위로 수행되며, 1개의 프레임에 대한 가비지 콜렉션이 완료되면, 가비지 콜렉션의 수행은 중단하고, 다시 사용자 프로그램이 실행될 것이다.
단계(330)에서 힙의 전체 영역에 대한 가비지 콜렉션이 완료되었는지를 판단하고, 그렇지 않다면, 다시 사용자 프로그램의 실행을 일시 중단하고 나머지 영역의 일부에 대한 가비지 콜렉션을 수행한다.
단계(320 및 330)는 힙의 전체 영역에 대한 가비지 콜렉션이 완료될 때까지 수행될 것이다.
한편, 단계(330)에서 힙의 전체 영역에 대한 가비지 콜렉션이 완료된 것으로 판단되면, 다시 힙의 전체 영역에서 도달 가능한 객체를 식별하는 단계(310)를 수행할 것이다.
도 4는 도 3의 단계(310)에서 수행되는 도달 가능한 객체의 식별 과정을 보다 상세히 도시한 흐름도이다.
우선, 루트 셋에 포함된 하나의 객체로부터 참조를 추적함으로써 직접 및 간접적으로 도달 가능한 객체를 식별한다(단계 410).
도달가능하다고 식별된 객체는 해당 객체의 헤더(header)내에 사용하지 않는 하나의 비트에 도달 가능한 것으로 표기 해둔다(단계 420). 루트 셋의 모든 객체에 대하여 참조되는 모든 객체가 식별될 때까지 단계(410)과 단계(420)을 반복한다(단계 430).
모든 도달 가능한 객체를 식별한 후 표기가 완료되면 다시 사용자 프로그램이 동작할 수 있다.
도 5는 도 3의 단계(320)에서 수행되는 가비지 콜렉션의 세부 과정을 도시한 흐름도이다.
힙의 일부 영역 내에 존재하는 객체가 가비지인지를 판단하기 위해 해당 객체가 외부 영역으로부터 참조되는지 여부를 판단한다(단계 510). 외부 영역으로부터 참조되지 않는다면 상기 객체는 가비지로 판단되어 메모리가 회수된다(단계 550).
해당 객체가 외부 영역으로부터 참조된다면, 해당 객체의 헤더에 루트 셋으로부터 도달가능하다는 표기가 있는지 판단한다(단계 520). 외부 영역으로부터 오는 참조가 존재하지만 도달 가능한 객체라는 표기가 없다면, 이를 순환적 구조의 가비지라고 판단하고 이를 회수한다(단계 550).
다음, 도달 가능한 것으로 표기된 모든 객체들은 다른 빈 공간으로 이동되어 메모리 단편화가 없도록 밀착되고(단계 530), 루트 셋으로부터 도달 가능하다는 표기는 제거된다(단계 540).
전술한 본 발명은 하나 이상의 제조물상에 구현된 하나 이상의 컴퓨터 판독가능 매체로서 제공될 수 있다. 제조물은, 플로피 디스크, 하드 디스크, CD ROM, 플래시 메모리 카드,PROM, RAM, ROM, 또는 자기 테이프를 들 수 있다. 일반적으로, 컴퓨터 판독가능 프로그램은 임의의 프로그래밍 언어로 구현될 수 있다. 사용될 수 있는 언어의 일부 예에는 C, C++, 또는 JAVA가 포함된다.
이상에서, 특정 실시 예와 관련하여 본 발명을 설명하였으나, 본 발명은 전술한 실시 예 및 첨부된 도면에 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서, 여러 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
앞서 상세히 설명한 바와 같이 본 발명은 점진적인 가비지 콜렉션에서 나타나는 순환적 구조를 갖는 객체의 회수를 가능하게 한다. 이로 인해 보다 정확한 양 의 가비지 회수가 가능해지고, 메모리의 누수를 줄여 전체적인 자바 가상머신의 성능을 향상시킨다.

Claims (9)

  1. 컴퓨터 시스템에서 점진적으로 가비지 콜렉션을 수행하기 위한 방법에 있어서,
    (i) 힙의 전체 영역 내에서 루트 셋에 포함된 적어도 1개 이상의 객체 각각으로부터 도달 가능한 객체를 식별하는 단계와,
    (ii) 힙의 일부 영역에 대해 가비지 콜렉션을 수행하는 단계
    를 포함하고, 상기 (ii) 단계는 상기 힙의 일부 영역에 저장된 객체가 외부 영역으로부터 참조되지만 상기 (i) 단계에서 도달가능한 객체로 식별되지 않은 경우에 상기 객체를 가비지로 판단하는 것을 특징으로 하는 점진적 가비지 콜렉션 수행 방법.
  2. 제1항에 있어서, 상기 (i) 단계는 상기 도달 가능한 것으로 식별된 객체의 헤더에 상기 객체가 도달 가능함을 표기하는 단계를 더 포함하는 것을 특징으로 하는 점진적 가비지 콜렉션 수행 방법.
  3. 제1항에 있어서, 상기 (ii) 단계는 힙의 전체 영역에 대한 가비지 콜렉션이 완료될 때가지 반복 수행되는 것을 특징으로 하는 점진적 가비지 콜렉션 수행 방법.
  4. 제3항에 있어서, 상기 (i) 단계는 힙의 전체 영역에 대한 가비지 콜렉션이 완료될 때마다 주기적으로 수행되는 것을 특징으로 하는 점진적 가비지 콜렉션 수행 방법.
  5. 제1항에 있어서, 상기 (ii) 단계에서 가비지로 판단된 객체는 순환적 구조의 가비지인 것을 특징으로 하는 점진적 가비지 콜렉션 수행 방법.
  6. 제1항에 있어서, 상기 (ii) 단계에서 가비지로 판단된 객체에 의해 사용된 메모리는 회수되는 것을 특징으로 하는 점진적 가비지 콜렉션 수행 방법.
  7. 제2항에 있어서,
    상기 도달 가능한 것으로 식별된 객체를 메모리의 지정된 힙 영역으로 이동하는 단계와,
    상기 객체의 헤더 내에 도달 가능함을 나타내는 표기를 제거하는 단계
    를 더 포함하는 것을 특징으로 하는 점진적 가비지 콜렉션 수행 방법.
  8. 힙의 전체 영역 내에서 루트 셋에 포함된 적어도 1개 이상의 객체 각각으로부터 도달 가능한 객체를 식별하여 표기하기 위한 수단과,
    상기 힙의 프레임 단위로 점진적 가비지 콜렉션을 수행하는 동안 해당 프레임내의 객체가 상기 프레임의 외부로부터 참조되지만 도달가능한 객체로 표기되어 있지 않은 경우에 상기 객체를 가비지로 판단하여 이를 회수하기 위한 수단
    을 포함하는 것을 특징으로 하는 점진적 가비지 콜렉터.
  9. 제1항 내지 제7항 중 어느 하나의 항에 따른 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터에 의해 판독 가능한 기록 매체.
KR1020060028034A 2006-03-28 2006-03-28 점진적인 가비지 콜렉션 수행 시에 순환적 가비지의 회수방법 및 장치 KR100737345B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060028034A KR100737345B1 (ko) 2006-03-28 2006-03-28 점진적인 가비지 콜렉션 수행 시에 순환적 가비지의 회수방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060028034A KR100737345B1 (ko) 2006-03-28 2006-03-28 점진적인 가비지 콜렉션 수행 시에 순환적 가비지의 회수방법 및 장치

Publications (1)

Publication Number Publication Date
KR100737345B1 true KR100737345B1 (ko) 2007-07-09

Family

ID=38503746

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060028034A KR100737345B1 (ko) 2006-03-28 2006-03-28 점진적인 가비지 콜렉션 수행 시에 순환적 가비지의 회수방법 및 장치

Country Status (1)

Country Link
KR (1) KR100737345B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101004483B1 (ko) * 2003-06-30 2010-12-31 파나소닉 주식회사 불필요 데이터 수집시스템
KR20160122621A (ko) * 2015-04-14 2016-10-24 한양대학교 산학협력단 하이브리드 가비지 수집 방법 및 장치
CN108845864A (zh) * 2018-06-27 2018-11-20 北京京东尚科信息技术有限公司 一种基于spring框架的JVM垃圾回收方法和装置
CN112093339A (zh) * 2020-09-11 2020-12-18 北京工商大学 一种分布式餐厨垃圾收集装置及方法
KR102194413B1 (ko) * 2020-06-18 2020-12-23 인터와이즈 주식회사 역방향 경로 탐색을 이용한 혼합형 가비지 컬렉션 방법 및 이를 이용하는 가비지 컬렉션 시스템

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04281539A (ja) * 1991-03-08 1992-10-07 Sony Corp データ管理方式
US6286016B1 (en) * 1998-06-09 2001-09-04 Sun Microsystems, Inc. Incremental heap expansion in a real-time garbage collector
KR20040111149A (ko) * 2003-06-19 2004-12-31 텍사스 인스트루먼츠 인코포레이티드 내장형 가비지 수집
KR20050022175A (ko) * 2003-08-25 2005-03-07 삼성전자주식회사 가비지 콜렉션 벤치마킹 방법 및 가비지 콜렉션 워크로드
KR20050043291A (ko) * 2003-11-05 2005-05-11 한국전자통신연구원 가비지 콜렉션 방법 및 그 장치
KR20050077602A (ko) * 2004-01-28 2005-08-03 삼성전자주식회사 적응형 가비지 컬렉션 방법 및 상기 방법을 수행하는 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04281539A (ja) * 1991-03-08 1992-10-07 Sony Corp データ管理方式
US6286016B1 (en) * 1998-06-09 2001-09-04 Sun Microsystems, Inc. Incremental heap expansion in a real-time garbage collector
KR20040111149A (ko) * 2003-06-19 2004-12-31 텍사스 인스트루먼츠 인코포레이티드 내장형 가비지 수집
KR20050022175A (ko) * 2003-08-25 2005-03-07 삼성전자주식회사 가비지 콜렉션 벤치마킹 방법 및 가비지 콜렉션 워크로드
KR20050043291A (ko) * 2003-11-05 2005-05-11 한국전자통신연구원 가비지 콜렉션 방법 및 그 장치
KR20050077602A (ko) * 2004-01-28 2005-08-03 삼성전자주식회사 적응형 가비지 컬렉션 방법 및 상기 방법을 수행하는 장치

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101004483B1 (ko) * 2003-06-30 2010-12-31 파나소닉 주식회사 불필요 데이터 수집시스템
KR20160122621A (ko) * 2015-04-14 2016-10-24 한양대학교 산학협력단 하이브리드 가비지 수집 방법 및 장치
KR101726361B1 (ko) * 2015-04-14 2017-04-13 한양대학교 산학협력단 하이브리드 가비지 수집 방법 및 장치
CN108845864A (zh) * 2018-06-27 2018-11-20 北京京东尚科信息技术有限公司 一种基于spring框架的JVM垃圾回收方法和装置
KR102194413B1 (ko) * 2020-06-18 2020-12-23 인터와이즈 주식회사 역방향 경로 탐색을 이용한 혼합형 가비지 컬렉션 방법 및 이를 이용하는 가비지 컬렉션 시스템
CN112093339A (zh) * 2020-09-11 2020-12-18 北京工商大学 一种分布式餐厨垃圾收集装置及方法
CN112093339B (zh) * 2020-09-11 2022-04-12 北京工商大学 一种分布式餐厨垃圾收集装置及方法

Similar Documents

Publication Publication Date Title
EP0940755B1 (en) Method and computer system for generational dynamic management of computer memory
US7631024B2 (en) Method and apparatus for facilitating mark-sweep garbage collection with reference counting
US8429620B2 (en) Memory leak diagnosis
US6839725B2 (en) Dynamic adaptive tenuring of objects
JP5052512B2 (ja) 仮想マシン環境における予測可能な結果のガベージコレクションのためのシステム及び方法
KR100737345B1 (ko) 점진적인 가비지 콜렉션 수행 시에 순환적 가비지의 회수방법 및 장치
EP1936632A1 (en) Method and apparatus for detecting static data area, wear-leveling, and merging data units in nonvolatile data storage device
JP4812997B2 (ja) メモリ管理によって参照の局所性を改善するための方法および装置
US10467086B2 (en) Determining causes of external fragmentation of memory
EP4012568A1 (en) System and method for dynamically selecting a garbage collection algorithm based on the contents of heap regions
US7676511B2 (en) Method and apparatus for reducing object pre-tenuring overhead in a generational garbage collector
US8255436B2 (en) Per thread garbage collection
US6999979B2 (en) Efficient encoding of references into a collection set
US7257685B2 (en) Memory management
US7620943B1 (en) Using class properties to segregate objects in a generation managed by the train algorithm
US7428560B1 (en) Age segregation for garbage collector
US8176286B2 (en) Memory recycling in computer systems
US7650350B1 (en) Method and apparatus for concurrently processing remembered sets in a space-incremental garbage collector
US20050015417A1 (en) Depth counter used to reduce number of items to consider for loop detection in a reference-counting garbage collector
Ilyushin et al. On memory management in Javascript applications
US20040167946A1 (en) Staging the processing of remembered-set entries as part of collection based on the train algorithm
CN114201415A (zh) 一种应用于固态硬盘的垃圾回收方法及装置
JP2004287870A (ja) ごみ集め方法及びコンパイル方法
Hofstra et al. Recent improvements in on-the-fly garbage collection methods

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100701

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee