KR20010083781A - 메모리 요건을 줄인 프로그램 코드 실행 장치 - Google Patents
메모리 요건을 줄인 프로그램 코드 실행 장치 Download PDFInfo
- Publication number
- KR20010083781A KR20010083781A KR1020007009841A KR20007009841A KR20010083781A KR 20010083781 A KR20010083781 A KR 20010083781A KR 1020007009841 A KR1020007009841 A KR 1020007009841A KR 20007009841 A KR20007009841 A KR 20007009841A KR 20010083781 A KR20010083781 A KR 20010083781A
- Authority
- KR
- South Korea
- Prior art keywords
- qualifying
- entities
- memory
- objects
- class
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44594—Unloading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Abstract
자바 가상 머신(2)은 자바 바이트 코드를 실행하는 실행 엔진과 메모리 관리 시스템(14)을 포함한다. 메모리 관리 시스템(14)은 자바 프로그램의 현 상태로부터 동달 가능하지 않은 오브젝트들을 제거하기 위해 불필요 정보 수집을 실행한다. 종래 기술의 메모리 관리 시스템에서는, 클래스 한정을 나타내는 오브젝트들은 클래스 오브젝트를 로딩한 클래스 로더 오브젝트가 도달 가능하지 않다면 메모리로부터 결국 제거된다. 본 발명에 따르면, 메모리 관리 시스템(14)은 클래스 로더가 여전히 도달 가능할지라도 프로그램의 현 상태에 도달될 수 있는 실증된 오브젝트들을 갖지 않는 클래스들을 제거하도록 구성된다. 이것은 실질적인 메모리의 절약을 가져온다. 바람직하게, 클래스 한정을 나타내는 오브젝트들은 더 이상 실증된 오브젝트들이 없다면 클래스 한정이 메모리로부터 삭제될 수 있다는 것을 신호할 수 있는 방법을 갖는다.
Description
이러한 장치는 팀 린드홈과 프랭크 옐린에 의한, 출판물 "The JavaTMVirtual Machine Specification"에 공지되어 있으며. 그것은 Sun 웹싸이트로부터 이용할 수 있고 1996년 9월 제 1판인 인쇄된 위 출판 서적으로부터 변환된 것이다.
최근에, 자바 플랫폼의 인기는 실질적으로 증가되어 왔다. 자바는 자바 가상 머신상에서 처리되는 바이트 코드에 컴파일링되는 자바 언어를 포함하는 플랫폼이다.
가상 머신상에서 처리되는 바이트 코드의 사용은 하드웨어와 동작 시스템의 결합에 대해 가상 머신이 존재한다면 그와 같은 결합마다에 컴파일링된 바이트 코드가 실행될 수 있다는 이점을 갖는다.
자바 언어는 오브젝트 지향되며, 이것은 프로그램 오브젝트의 실행이 한정 엔터티에 따라 발생되는 동안, 자바 언어내에서 클래스 또는 인터페이스가 될 수 있다는 것을 의미한다. 오브젝트가 발생될 수 있기 전에, 필요한 한정 엔터티(클래스 또는 인터페이스)는 메모리에 우선 로딩되어야 한다. 이 로딩은 한정 로딩 수단에 의해 이루어지며, 그것은 자바 언어에서는 클래스 로더라고 불린다. 로딩 한정 엔터티의 서로 다른 방법을 위한 서로 다른 한정 로딩 수단이 존재할 수 있다. 자바에서는 TCP/IP에 기초한 네트워크로에서 디스크로부터 클래스를 로딩 하거나 MPEG-2 전송 스트림으로부터 그들을 로딩하기 위한 서로 다른 클래스 로더가 있을 수 있다.
자바 가상 머신은 더 이상 필요하지 않은 오브젝트와 클랙스를 자동으로 제거하기 위해 불필요 정보 수집을 실행하는 메모리 관리 시스템을 갖는다.
TV와 셋톱 박스 등의 가전 제품에 자바가 사용되는 경우, 단지 메모리 자원 의 한정된 양만이 이용될 수 있다. 현재, 가전 제품용 자바의 사용은 한정된 양의 메모리가 이용가능하기 때문에 상당히 곤란하다.
본 발명은 프로그램 코드를 실행하는 장치에 관한 것으로, 상기 장치는 적어도 2개의 한정 엔터티를 메모리에 로딩하는 한정 로딩 수단을 포함한다. 상기 한정 엔터티는 상기 한정 로딩 수단과 합체되고, 상기 장치는 상기 한정 엔터티에 따라 오브젝트를 발생하는 오브젝트 발생 수단을 더 포함한다.
또한, 본 발명은 프로그램 코드를 실행하는 방법 및 프로그램 코드를 실행하는 방법을 실행하는 컴퓨터 프로그램을 지닌 유형의 매체에 관한 것이다.
도 1은 본 발명이 사용될 수 있는 자바 가상 머신의 구조를 도시한 도면.
도 2는 관련 클래스들과 실증된 오브젝트들을 클래스 로더를 도시한 도면.
도 3은 하나의 클래스 로더가 실증된 오브젝트를 갖는 클래스를 갖는, 2개의 클래스 로더를 도시한 도면.
도 4는 도 1에 따라 메모리 관리 시스템(14)에 사용하기 위한, 본 발명에 따른 프로그램의 흐름도.
본 발명의 목적은 필요한 양의 메모가 감소되는, 서론에 따른 장치를 제공하는데 있다.
상기 목적을 달성하기 위해, 본 발명에 따른 장치는, 상기 장치는 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 메모리 관리 수단을 포함하며, 한정 로딩 수단은 관련 오브젝트들을 여전히 갖는 한정 엔터티들과 합체되는 것을 특징으로 한다.
메모리로부터 더이상 관련 오브젝트들을 갖지 않는 엔터티들을 제거함으로써, 실질적인 메모리 양은 제한이 없게 될 수 있어, 그 결과 상기 장치는 종래 기술에 따른 장치보다 더 작은 메모리를 필요로 하게 된다.
본 발명은 자바 가상 머신의 본 명세서에서 만일 한정 로딩 수단이 더 이상 도달가능하지 않다면 한정 엔터티가 단지 제거될 것이라고 규정되어 있는 인식에 기초한다. 이 것은 상기 한정 로딩 수단에 의해 로딩된 한정 엔터티에 더 이상 아무런 오브젝트가 존재하지 않는다는 것을 의미한다.
이것은 다음의 예에서 보다 명확해질 것이다. 만일 클래스 로더(한정 로딩 수단)이 2개의 클래스(한정 엔터티)를 로딩한다면, 관련 오브젝트를 갖지 않는 첫번째 로딩된 클래스는 다른 클래스가 여전히 관련 오브젝트를 갖는 한 메모리로부터 더 이상 제거되지 않을 것이다. 이 결과 클래스들은 메모리에서 오랫동안 불필요하게 된다.
본 발명에 따른 진보성 사상을 사용함으로써, 클래스들은 그들이 더 이상 필요하지 않을 때 언로딩(unloading) 될 것이다.
본 발명의 일 실시예는, 상기 장치는 한정 엔터티들을 제거 가능한 것으로지정하는 지정 수단을 포함하고; 메모리 관리 수단은 상기 한정 엔터티가 제거 가능한 것으로 지정될 때 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하도록 구성되고, 관련 오브젝트들을 갖지 않는 한정 엔터티들에만 합체되는 한정 로딩 수단에 대응하는 한정 엔터티들을 메모리로부터 제거하도록 구성되는 것을 특징으로 한다.
관련 오브젝트들을 갖지 않는 한정 엔터티들이 항상 메모리로부터 제거된다는 것은 바람직하지 않다는 상황이 있을 수 있다. 이것은 클래스 변수가 클래스 실행 방법에 의해 변경되는 경우일 수 있다. 만일 그와 같은 클래스가 메모리로부터 제거되고, 다시 필요로 할 때 재로딩되면, 클래스 변수값은 변경될 것이다.
한정 엔터티들이 제거 가능한 것으로서 지정될 때 관련 오브젝트 없이 한정 엔터티들을 단지 제거함으로써, 응용 프로그램은 한정 엔터티를 제거 가능한 또는 제거 가능하지 않은 것으로 지정함으로써 이러한 제거를 제어할 수 있다.
본 발명의 또 다른 실시예는 상기 장치는 제거 가능한 것으로 지정되는 한정 엔터티들의 확인을 저장하는 저장 수단을 포함하는 것을 특징으로 한다.
관련 오브젝트들은 갖지 않을지라도 클래스가 로딩될 수 없는지 여부를 메모리 관리 수단에 통신하는 용이한 방법은 이 클래스가 제거 가능한지 여부의 지시와 함께 모든 로딩된 클래스들이 기록되는 테이블을 저장하는 것이다.
이제 도면을 참조하여 본 발명을 설명한다.
도 1에 따른 자바 가상 머신에서, 클래스 관리 서브 시스템(6)은 로컬 하드 드라이버나 네트워크로부터 메모리에 존재하지 않는 클래스들을 로딩하도록 구성된다.
클래스 관리 서브시스템(6)에 의해 로딩될 클래스들은 코드 검공기(4)에 의해 우선 점검된다. 통상적으로 네트워크로부터 로딩된 클래스들만이 공지되지 않은 덜 신뢰할 수 있는 소스로부터 그들이 존재할 수 있기 때문에 확인된다. 클래스들을 로딩할 때에 신택스 점검이 실행된다. 또한, 로딩된 클래스의 "시맨틱(semantic)" 일관성이 점검된다. 이것은 예를 들어 클래스에 정의된 상수가 그들의 유형과 일관되는지 여부의 점검을 포함한다. 예를 들어 스트링으로서 정의된 상수가 필요한 스트링인지 여부가 점검된다.
실행 시간동안 바이트 코드 확인이 실행된다. 이것은 스택의 일관성의 점검, 즉, 스택 오버플로 및 언더플로가 발생하지 않는다는 확인을 포함한다. 또한,그것은 변수에 놓인 데이터의 유형이 상기 변수의 선언에 대응하는지 여부를 점검하는 것을 포함한다.
실행 엔진(8)은 확인된 바이트 코드를 실행하도록 구성된다. 이 실행에 있어서, 실행 엔진은 3개의 이용가능한 서브 시스템, 예를 들어 디스크나 네트워크로부터 실제 파일의 로딩 등과 같은 소정의 태스크를 실행하기 위해 작동 시스템을 발동하거나, 디스플레이 장치에 그래픽 요소를 디스플레이하는 시스템 호출 서브시스템(10)을 갖는다. 더욱이, 가상 머신은 개별 쓰레드(thread)를 발생하는데 사용된 쓰레드 시스템(12)를 포함한다. 쓰레드 서브시스템(12)는 또한 개별 쓰레드를 동기화하도록 구성된다.
또한, 자바 VM은 메모리로부터 안 쓰이는 항목을 자동으로 제거하는 불필요 정보 수집기를 포함하는 메모리 관리 서브시스템(14)을 포함한다. 자바 VM의 선(Sun) 구현에서는, 소위 "마크(mark)와 스윕(sweep)" 불필요 정보 수집 알고리즘이 사용된다. 이러한 유형의 불필요 정보 수집 알고리즘은 종래 기술에 숙련된 기술자에게 잘 공지되어 있다. 이 알고리즘에서, 힙(heap)에 존재하는 각 오브젝트는 소위 마크 비트를 가진다. 불필요 정보 수집 처리는 힙에 존재하는 모든 오브젝트에 대한 마크 비트의 리세트로 시작한다. 이어서, 모든 필드와 변수는 참고를 위해 힙내의 오브젝트에 대해 검사된다. 필드 또는 변수에 의해 참고되는 힙내의 각 오브젝트에 대해, 마크 비트가 세트된다. 최종적으로, 불필요 정보 수집기는 힙을 스윕하고, 마크 비트가 세트되지 않은 오브젝트에 의해 사용된 메모리 영역을 이용한다.
최종적으로, 자바 VM은 C, C++, 또는 어셈블러로 씌여진 함수를 사용할 수 있는 네이티브 메써드 인터페이스 서브시스템(16)을 포함한다. 이것은 현재의 라이브러리를 재사용하거나 또는 실행을 개선하기 위해 최적화된 어셈블러 루틴을 사용할 수 있도록 하는데 편리할 것이다.
도 2에 따른 도면에서, 도 1에 따른 자바 VM의 힙에 존재하는 오브젝트들이 표시되어 있다. 도 2는 제1 클래스(22)와 제2 클래스(22)를 도시하며, 이들은 클래스 로더(18)에 의해 로딩된다. 클래스(22)로부터 하나의 오브젝트(24)가 실증되고, 클래스(20)는 실증된 오브젝트를 갖지 않는다.
종래 기술에 따른 불필요 정보 수집 알고리즘을 이용할 때는 어떠한 오브젝트(18,20,22,24)도 불필요 정보 수집되지 않을 것이다. 왜냐하면, 클래스 로더(18)는 여전히 도달 가능(상기 클래스 로더(18)에 의해 로딩된 클래스로부터 실증된 오브젝트(24)를 가짐)하기 때문이다. 본 발명에 따른 장치에서는, 클래스(20)는 실증된 오브젝트들을 갖지 않기 때문에 메모리로부터 제거될 수 있다. 바람직하게, 클래스가 실증된 오브젝트들을 더이상 갖지 않을 때 언로딩될 수 있는지 여부를 나타내기 위해 클래스(Class)에 부가되는 방법이 있다. 그와 같은 방법의 신택스는 "EnableClassUnloading(class)"일 수 있다. 이 방법은 이 클래스가 삭제가능하다는 것을 나타내는 관련 클래스의 클래스 헤더내에 비트를 세트할 수 있다. 대안적으로, 모든 삭제가능한 클래스들이 등록되어 있는 상기 VM내에 테이블이 구성될 수 있다.
도 3에서, 도 1에 따른 자바 VM의 힙에 존재하는 또 다른 오브젝트 그룹이나타나 있다. 도 3은 제1 클래스(32)와 제2 클래스(34)를 로딩한 제1 클래스 로더(36)를 도시한다. 클래스(32,34)는 모두 도달 가능하지 않다. 이들 클래스(32,34)와 그들의 클래스 로더(36)는 클래스 로더(36)가 도달 가능하지 않기 때문, 상기 방법 EnableClassUnloading이 호출되는지 그렇지 않은지 여부에 상관없이 메모리로부터 제거될 것이다.
또한, 도 3은 오브젝트(30)이 실증되는 클래스(28)를 로딩한 제2 클래스 로더(26)를 도시하고 있다. 클래스(28)는 하나의 도달 가능한 오브젝트(30)를 가진다. 따라서, 클래스 로더(26), 클래스(28), 오브젝트(30)는 언로드(메모리로부터 제거) 되지 않을 것이다.
자바 1.2 SDK에서 기준 오브젝트의 개념이 도입됨으로써 결과적으로 오브젝트가 강하고 약하게 도달 가능하게 된다는 것을 발견할 수 있다. 종래 기술의 불필요 정보 수집기는 강하게 도달 가능하지 않은 모든 오브젝트들을 제거한다. 기준 오브젝트들이 사용될 때, 도 2 및 도 3을 참조하여 상기 설명에서 사용된 바와 같은 개념 "도달 가능한"은 강하게 도달 가능하다는 것을 의미하는 것을 발견할 수 있다.
도 4에 따른 흐름도에서, 번호 명령은 다음의 의미를 갖는다.
번호 제명 의미
40 BEGIN 불필요 정보 수집기의 실행이 시작됨
42 FIND REACHABLE OBJECT 도달 가능한 오브젝트가 발견
44 MARK REACHABLE OBJECT 상기 오브젝트는 도달 가능한 것으로 마크
46 ALL OBJECT DONE? 모든 오브젝트가 검사되었는지 점검
48 TAKE OBJECT 새로운 오브젝트가 불필요 정보 수집을 위해 사용
49 IS OBJECT MARKED? 상기 오브젝트가 마크되었는지 점검
50 IS OBJECT A CLASS? 상기 오브젝트가 클래스인지 점검
52 IS OBJECT DELETABLE? 상기 오브젝트가 삭제 가능한지 점검
54 FIND CLASS LOADER 현재 오브젝트에 대응하는 클래스 로더가 위치됨
56 IS CLASS LOADER MARKED? 상기 클래스 로더가 마크되었는지 점검
58 DELETE OBJECT 상기 오브젝트를 메모리로부터 삭제
60 ALL OBJECT DONE? 모든 오브젝트가 처리되었는지 점검
62 END 불필요 정보 수집기의 실행이 종료됨
도 4에 따른 프로그램의 명령(40)에서, 프로그램이 시작되고, 필요한 초기화가 이루어진다. 명령(42)에서, 프로그램의 현재 상태에 대응하는 필드와 변수로부터 시작하여 도달 가능한 오브젝트가 탐색된다. 만일 도달 가능한 오브젝트가 발견되면, 상기 오브젝트는 명령(44)에서 마크된다. 명령(46)에서, 모든 도달 가능한 오브젝트가 발견되었는지 여부가 점검된다. 이것은 VM의 현재 상태에서의 모든 필드와 변수가 대응하는 오브젝트에 대해 트레이스한 경우이다. 모든 도달 가능한 오브젝트가 아직 발견되지 않으면, 프로그램은 다음 도달 가능한 오브젝트를 발견하기 위한 명령(42)으로 점프한다.
모든 가능한 도달 가능한 오브젝트가 발견되면, "마크와 스윕"의 "상태 마크" 불필요 정보 수집 알고리즘이 종료되고, "상태 스윕"이 시작된다.
명령(48)에서, 힙으로부터의 오브젝트가 검사를 위해 선택된다. 명령(49)에서, 상기 오브젝트가 마크되었는지 점검된다. 상기 오브젝트가 마크되었다면, 메모리로부터 삭제되지 않아야 하고, 프로그램은 명령(60)으로 이어진다. 상기 오브젝트가 마크되지 않으면, 명령(50)에서, 상기 오브젝트가 클래스인지 여부가 점검된다. 이것은 예를 들어 상기 오브젝트와 관련한 오브젝트 헤더에서의 필드로부터 결정될 수 있다. 만일 상기 오브젝트가 클래스가 아니면, 프로그램은 상기 오브젝트가 메모리로부터 삭제되는 명령(58)으로 이어진다. 이어서, 프로그램은 명령(60)으로 이어진다.
오브젝트가 클래스이면, 명령(52)에서, 클래스가 삭제 가능한 것으로 지정되어 있는지 여부가 점검된다. 이것은 오브젝트 헤더에서 "삭제 가능한 비트"가 "EnableClassUnloading" 법을 발동함으로써 세트되었는지 여부를 점검함으로써 이루어진다. 대안적으로, 모든 삭제 가능한 클래스를 포함하는 테이블이 고려되는 것이 모두 가능해진다. 만일 오브젝트가 삭제 가능하면, 명령(58)에서, 클래스 오브젝트는 삭제된다.
만일 클래스가 삭제 가능한 것으로 마크되지 않으면, 명령(54)에서, 상기 클래스를 로딩한 클래스 로더가 탐색된다. 이것은 로딩된 클래스와 그들의 관련 클래스 로더를 포함하는 VM내의 테이블을 판독함으로써 이루어질 수 있다. 클래스로더를 발견한 후, 명령(56)에서 클래스 로더 오브젝트가 마크되는지 여부가 점검된다. 만일 클래스 로더가 마크되지 않으면, 명령(58)에서, 상기 클래스 오브젝트는 삭제된다. 만일 클래스 로더가 마크되면, 상기 클래스는 메모리로부터 삭제되지 않으며, 프로그램은 명령(60)으로 이어진다.
명령(60)에서, 힙내의 모든 오브젝트가 처리되었는지 여부가 점검된다. 만일 모두 처리되었으며, 프로그램은 명령(62)에서 종료된다. 그렇지 않으며, 프로그램은 힙내의 다음 오브젝트를 처리하기 위해 명령(48)으로 이어진다.
Claims (9)
- 2개 이상의 한정 엔터티를 메모리에 로딩하는 한정 로딩 수단 및 상기 한정 엔터티에 따라 오브젝트들을 발생하는 오브젝트 발생 수단을 포함하며, 상기 한정 엔터티가 상기 한정 로딩 수단과 합체되는, 프로그램 코드 실행 장치에 있어서,관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 메모리 관리 수단을 포함하며, 상기 한정 로딩 수단은 관련 오브젝트들을 여전히 갖는 한정 엔터티들과 합체되는 것을 특징으로 하는 프로그램 코드 실행 장치.
- 제 1 항에 있어서,한정 엔터티들을 제거 가능한 것으로 지정하는 지정 수단을 포함하고; 상기 메모리 관리 수단은 상기 한정 엔터티가 제거 가능한 것으로 지정될 때 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하도록 구성되고, 관련 오브젝트들을 갖지 않는 한정 엔터티들에만 합체되는 한정 로딩 수단에 대응하는 한정 엔터티들을 메모리로부터 제거하도록 구성되는 것을 특징으로 하는 프로그램 코드 실행 장치.
- 제 2 항에 있어서,제거 가능한 것으로 지정되는 한정 엔터티들의 확인을 저장하는 저장 수단을 포함하는 것을 특징으로 하는 프로그램 코드 실행 장치.
- 한정 로딩 엔터티에 의해 2개 이상의 한정 엔터티를 메모리에 로딩하는 단계 및 상기 한정 엔터티에 따라 오브젝트들을 발생하는 단계를 포함하며, 상기 한정 엔터티가 상기 한정 로딩 엔터티와 합체되는, 프로그램 코드 실행 방법에 있어서,관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 단계를 포함하며, 상기 한정 로딩 엔터티는 관련 오브젝트들을 여전히 갖는 한정 엔터티들과 합체되는 것을 특징으로 하는 프로그램 코드 실행 방법.
- 제 4 항에 있어서,한정 엔터티들을 제거 가능한 것으로 지정하는 단계와, 상기 한정 엔터티가 제거 가능한 것으로 지정될 때 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 단계와, 관련 오브젝트들을 갖지 않는 한정 엔터티들에만 합체되는 한정 엔터티들을 메모리로부터 제거하는 단계를 포함하는 것을 특징으로 하는 프로그램 코드 실행 방법.
- 제 5 항에 있어서,제거 가능한 것으로 지정되는 한정 엔터티들의 확인을 저장하는 단계를 포함하는 것을 특징으로 하는 프로그램 코드 실행 방법.
- 프로그램 코드를 실행하는 방법을 실행하기 위한 컴퓨터 프로그램을 지닌 유형의 매체로서, 상기 방법은 한정 로딩 엔터티에 의해 2개 이상의 한정 엔터티를 메모리에 로딩하는 단계 및 상기 한정 엔터티에 따라 오브젝트들을 발생하는 단계를 포함하며, 상기 한정 엔터티는 상기 한정 로딩 엔터티와 합체되는, 유형의 매체에 있어서,상기 방법은 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 단계를 포함하며, 상기 한정 로딩 엔터티는 관련 오브젝트들을 여전히 갖는 한정 엔터티들과 합체되는 것을 특징으로 하는 유형의 매체.
- 제 7 항에 있어서,상기 방법은 한정 엔터티들을 제거 가능한 것으로 지정하는 단계와, 상기 한정 엔터티가 제거 가능한 것으로 지정될 때 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 단계와, 관련 오브젝트들을 갖지 않는 한정 엔터티들에만 합체되는 한정 엔터티들을 메모리로부터 제거하는 단계를 포함하는 것을 특징으로 하는 유형의 매체.
- 제 8 항에 있어서,상기 방법은 제거 가능한 것으로 지정되는 한정 엔터티들의 확인을 저장하는 단계를 포함하는 것을 특징으로 하는 유형의 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP99200015 | 1999-01-06 | ||
EP99200015.8 | 1999-01-06 | ||
PCT/EP1999/010301 WO2000041079A2 (en) | 1999-01-06 | 1999-12-20 | Arrangement for executing program code with reduced memory requirements |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20010083781A true KR20010083781A (ko) | 2001-09-01 |
Family
ID=8239783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020007009841A KR20010083781A (ko) | 1999-01-06 | 1999-12-20 | 메모리 요건을 줄인 프로그램 코드 실행 장치 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6681381B1 (ko) |
EP (1) | EP1068572A2 (ko) |
JP (1) | JP2002534737A (ko) |
KR (1) | KR20010083781A (ko) |
CN (1) | CN1139032C (ko) |
BR (1) | BR9908574A (ko) |
CA (1) | CA2322950A1 (ko) |
WO (1) | WO2000041079A2 (ko) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2376191T3 (es) * | 2000-05-25 | 2012-03-09 | Oracle America, Inc. | Método y aparato para crear métodos nativos eficaces que extienden un intérprete de códigos de byte. |
US7082597B2 (en) | 2001-06-20 | 2006-07-25 | Sun Microsystems, Inc. | Representation of objects in a Java programming environment |
US7036120B2 (en) | 2001-07-31 | 2006-04-25 | Sun Microsystems, Inc. | Two tier clusters for representation of objects in Java programming environments |
US7114152B2 (en) * | 2002-01-08 | 2006-09-26 | International Business Machines Corporation | Method, apparatus, and program to determine the mutability of an object at loading time |
JP2005018425A (ja) * | 2003-06-26 | 2005-01-20 | Matsushita Electric Ind Co Ltd | プログラム変換方法、プログラムおよび記憶媒体 |
KR100626368B1 (ko) * | 2003-08-25 | 2006-09-20 | 삼성전자주식회사 | 가비지 콜렉션 벤치마킹 방법 |
US7263532B2 (en) * | 2003-09-23 | 2007-08-28 | Microsoft Corporation | Region-based memory management for object-oriented programs |
DE10351622A1 (de) | 2003-11-05 | 2005-06-23 | Giesecke & Devrient Gmbh | Beschleunigtes Referenzfinden für eine automatische Speicherbereinigung (Garbage Collection) |
US7823137B2 (en) * | 2004-10-21 | 2010-10-26 | International Business Machines Corporation | Process and implementation for using byte code insertion to modify a class definition to define and use probes for application components |
WO2007076629A1 (en) * | 2005-12-30 | 2007-07-12 | Intel Corporation | Type checking for object-oriented programming languages |
US20090199171A1 (en) * | 2006-03-01 | 2009-08-06 | Nokia Corporation | Code Size Reduction by Outlining Specific Functions in a Library |
US8375373B2 (en) * | 2010-04-19 | 2013-02-12 | Microsoft Corporation | Intermediate language support for change resilience |
JP6010961B2 (ja) * | 2012-03-27 | 2016-10-19 | 日本電気株式会社 | データ参照元特定システム及びその特定方法、並びにそのコンピュータ・プログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3294326B2 (ja) * | 1992-07-09 | 2002-06-24 | 株式会社日立製作所 | データ処理方法および装置 |
US5729710A (en) * | 1994-06-22 | 1998-03-17 | International Business Machines Corporation | Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system |
US5925100A (en) * | 1996-03-21 | 1999-07-20 | Sybase, Inc. | Client/server system with methods for prefetching and managing semantic objects based on object-based prefetch primitive present in client's executing application |
US6134602A (en) * | 1997-09-24 | 2000-10-17 | Microsoft Corporation | Application programming interface enabling application programs to group code and data to control allocation of physical memory in a virtual memory system |
-
1999
- 1999-12-20 CN CNB998035068A patent/CN1139032C/zh not_active Expired - Fee Related
- 1999-12-20 KR KR1020007009841A patent/KR20010083781A/ko active IP Right Grant
- 1999-12-20 JP JP2000592737A patent/JP2002534737A/ja active Pending
- 1999-12-20 BR BR9908574-7A patent/BR9908574A/pt not_active IP Right Cessation
- 1999-12-20 WO PCT/EP1999/010301 patent/WO2000041079A2/en not_active Application Discontinuation
- 1999-12-20 CA CA002322950A patent/CA2322950A1/en not_active Abandoned
- 1999-12-20 EP EP99966997A patent/EP1068572A2/en not_active Withdrawn
-
2000
- 2000-01-05 US US09/475,568 patent/US6681381B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6681381B1 (en) | 2004-01-20 |
CN1292119A (zh) | 2001-04-18 |
JP2002534737A (ja) | 2002-10-15 |
EP1068572A2 (en) | 2001-01-17 |
CA2322950A1 (en) | 2000-07-13 |
WO2000041079A2 (en) | 2000-07-13 |
WO2000041079A3 (en) | 2000-11-02 |
CN1139032C (zh) | 2004-02-18 |
BR9908574A (pt) | 2000-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7516166B2 (en) | Resource loading | |
KR100541174B1 (ko) | 로컬화된 메모리 재이용을 가진 데이터 처리기 | |
US6757890B1 (en) | Methods and apparatus for enabling local Java object allocation and collection | |
US6272674B1 (en) | Method and apparatus for loading a Java application program | |
US6542167B1 (en) | System and method for flexible software linking | |
US6820101B2 (en) | Methods and apparatus for optimizing garbage collection using separate heaps of memory for storing local objects and non-local objects | |
EP3198452B1 (en) | On-demand loading of dynamic scripting language code for reduced memory usage | |
US6701520B1 (en) | Preventing garbage collection of objects in object oriented computer programming languages | |
CA2255035C (en) | Archiving tool | |
KR20010083781A (ko) | 메모리 요건을 줄인 프로그램 코드 실행 장치 | |
US6584478B1 (en) | Transparent garbage collection of resources | |
CN113296786B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
JP2005063449A (ja) | オブジェクトからオブジェクトへのJavaネイティブインタフェースマッピングの方法及び装置 | |
US9477496B2 (en) | Method and apparatus for loading classes and re-organizing class archives | |
US6901591B1 (en) | Frameworks for invoking methods in virtual machines | |
US6996813B1 (en) | Frameworks for loading and execution of object-based programs | |
Agesen et al. | Finding references in Java stacks | |
US7096466B2 (en) | Loading attribute for partial loading of class files into virtual machines | |
CN112631621A (zh) | 一种依赖包管理方法、装置、服务器及存储介质 | |
KR101249739B1 (ko) | 달빅 가상머신이 탑재된 단말기에서 자바 클래스 로딩 방법, 그리고 이를 수행하는 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 | |
US6934726B2 (en) | Storing and retrieving of field descriptors in Java computing environments | |
CN117667108A (zh) | 一种基于Flutter单项目生成多App的方法、设备及介质 | |
MXPA00008635A (en) | Arrangement for executing program code with reduced memory requirements | |
Graham | The standard interface file concept used in wind tunnel data reduction | |
Warford | Linked Lists |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B601 | Maintenance of original decision after re-examination before a trial | ||
S901 | Examination by remand of revocation | ||
GRNO | Decision to grant (after opposition) | ||
NORF | Unpaid initial registration fee |