• 제목/요약/키워드: 힙 사용량

검색결과 10건 처리시간 0.021초

코드 삽입을 이용한 힙 사용량 분석기 (Heap Consumption Analyzer Using Code Embedding)

  • 주성용;조장우
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 가을 학술발표논문집 Vol.33 No.2 (B)
    • /
    • pp.566-570
    • /
    • 2006
  • 프로그램의 힙 사용량이나 수행 시간과 같은 프로그램의 동적인 속성을 분석하기 위해서 프로파일러가 이용된다. 자바에서는 가상기계와 프로파일러의 통신을 목적으로 JVM TI 같은 프로파일러를 위한 인터페이스를 제공한다. 그러나 자바 가상기계 구현 명세는 프로파일러 인터페이스 구현을 요구하지 않는다. 프로파일러 인터페이스를 구현하지 않는 자바 가상기계에서는 JVM TI를 사용하는 프로파일러를 이용할 수 없다. 본 논문에서는 프로파일러 인터페이스를 사용하지 않는 힙 사용량 분석 기법을 제안했다. 이 방법은 힙 사용 정보를 추출하기 위한 코드를 소스파일에 삽입한다. 이 방법은 힙 사용량 분석 시 자바에서 제공하는 인터페이스를 사용하지 않기 때문에, 표준 인터페이스를 구현하지 않는 가상기계에서도 힙 사용 정보 분석을 수행할 수 있다.

  • PDF

효율적인 메모리 사용을 위한 free 명령어 삽입 알고리즘 (An Algorithm to Insert Safe Deallocations for Efficient Memory Usage)

  • 이욱세
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 가을 학술발표논문집 Vol.29 No.2 (2)
    • /
    • pp.655-657
    • /
    • 2002
  • 메모리 반납(deallocation) 명령어는 프로그램에게 할당된 힙 셀(heap cell)을 반납하는 명령어로 힙 사용량을 낮추어 주지만, 잘못된 반납으로 인해 심각한 오류를 일으킬 수 있다. 본 논문에서는 재귀적인 자료구조(recursive data structure),를 안전하게 반납하는 명령어를 삽입하는 알고리즘을 제시한다. 메모리의 모양새를 분석하고 나중에 쓰이지 않을 힙 셀들을 추정하여 반납 명령어를 삽입한다. 분석시 요약 수준을 적절히 조절함으로써 빠르면서도 정확하게 분석한다. 또한, 실행시간에 부가적인 정보를 전달하여 일찍 힙 셀을 반납할 수 있도록 한다. 제시한 알고리즘으로 메모리 반납을 하지 않는 프로그램에 반납 명령어를 삽입하여 전체 메모리 할당량의 5.2-98.7%를 반납할 수 있었다.

  • PDF

ZG-machine에서 기억 장소 재활용 체계의 영향 (Effect of Garbage Collection in the ZG-machine)

  • 우균;한태숙
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제27권7호
    • /
    • pp.759-768
    • /
    • 2000
  • ZG-machine은 태그옮김이라는 간단한 부호화 기법을 채택한 공간 효율적인 G-machine이다. 기억 장소 재활용 체계 없이 실험한 이전 실험에서 ZG-machine은 G-machine과 비교하여 30%의 힙 공간을 절약할 수 있었고 수행 시간 부담은 6%를 넘지 않았었다. 이 논문에서는 ZG-machine에 기억 장소 재활용 체계를 장착하여 추가로 실험한 결과를 설명한다. 결과에 따르면, G-machine과 비교할 때, ZG-machine의 수행 시간은 34% 증가하였지만 최소 힙 사용량은 평균 34% 감소하였다. 수행 시간 부담이 커진 이유는 기억 장소 재활용 체계때문이다. 그러나 힙 공간을 최소 힙 사용량의 7 배 정도로 늘렸을 경우에 G-machine에 대한 수행 시간 부담은 12%를 넘지 않았다. ZG-machine에서 최소 힙 사용량이 줄어든 특성은 ZG-machine이 내장 체계와 같은 기억 장소가 제한된 응용 분야에 사용될 수 있음을 의미한다. 또한 보다 효율적인 기억 장소 재활용 쳬계를 개발함으로써 수행 시간은 상당히 줄어들 것으로 예상 된다.

  • PDF

태그 옮기기에 의한 G-machine 그래프의 압축 (Compressing the Graphis in G-machine by Tag-Forwarding)

  • 우균;한태숙
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제26권5호
    • /
    • pp.702-712
    • /
    • 1999
  • 지연 함수형 언어를 효율적으로 구현하기 위한 한 방법으로 G-machine이 제안되었다. G-machine은 그래프 축약을 빠르게 수행하지만, 축약 과정의 그래프를 저장하기 위해 많은 기억장소를 필요로 한다. 이는 그래프 축약 방법자체의 문제점으로 생각된다. 이 논문에서는 그래프 노드의 태그를 옮김으로써 기억장소의 그래프 구조를 압축할수 있는 방법을 제안한다. 노드의 태그는 그 노드를 가리키는 포인터 자리로 옮겨지는데, 포인터 정보의 유지하기 위해 상대주소와 합쳐져 함께 옮겨진다. 태그 옮기기는 그래프 구성 노드를 힙에 동시에 할당할수 있을 때 가능하다. 그러나, 일반적으로 그래프의 일부가 전체 그래프가 생성되기 이전에 생성될 수 있으므로, 이러한 태그 옮기기가 항상 가능한 것은 아니다. 그렇지만, 태그 옮기기에 의해서 어느 정도의 힙 사용량을 줄일 수있다. 태그 옮기기에 의해 그래프를 압축했을 때 압축된 그래프를 해석하기위한 수행시간의 부담이 생기게 되는데, 이 부담정도를 알아보기 위해 몇몇 작은 프로그램에 대해서 실험결과를 보였다. 실험결과에 따르면, 태그 옮기기를 수행한 결과, 총 힙 사용량은 평균 약 305 감소하였고, 이로 인한 수행시간은 원래의 G-machine과 비슷한 수준인 것으로 나타났다.

G-machine 에서의 AP 노드 재사용 (Reusing AP Node in G-machine)

  • 주성용;우균
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2002년도 추계학술발표논문집 (하)
    • /
    • pp.2329-2332
    • /
    • 2002
  • G-machine은 지연 함수형 언어를 효율적으로 구현하기 위한 추상기계이다. G-machine은 축약 과정에서 생성되는 그래프를 저장하기 위해서 많은 기억장소를 필요로 한다. 본 논문은 힙에 할당되는 그래프 노드 중 AP 노드를 재사용하는 방법을 제시한다. 일반적으로 AP 노드를 루트로 하는 그래프가 한 단계 축약된 후 다시 AP 노드를 루트로 하는 그래프로 구성되어지는 경우 루트 노드를 재사용할 수 있다. 이를 위해서는 기존 G-machine을 약간 확장 시켜야 하는데, 본 논문에서는 AP 노드의 일부를 변경하기 위한 명령어 UPDL과 UPDR을 제시하고, 이들 명령어의 상태변환 규칙과 이들 명령어 생성을 위해 수정된 R-변환 규칙을 제시한다. 본 논문에서 제시하는 방식으로 기 생성된 AP 노드를 재사용함으로써 힙 기억공간의 사용량을 줄일 수 있고, 이 과정에서 힙 기억장소 할당과 쓰기 연산의 수를 줄일 수 있다.

  • PDF

자바에서의 Null을 할당할 수 있는 필드를 찾기 위한 데이터 흐름 분석 (Data-flow Analysis for Finding Null-assignable Fields in Java)

  • 김민균;이숙희;권용래
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 한국컴퓨터종합학술대회 논문집 Vol.33 No.1 (B)
    • /
    • pp.406-408
    • /
    • 2006
  • 이 논문에서는 자바 프로그램이 실행 중에 사용하는 힙(heap)의 크기를 줄일 수 있는 데이터 흐름 분석 기법을 제안한다. 이 알고리즘은 클래스를 분석하여 사용될 때마다 새로 정의되는 필드(field)들을 찾는다. 이 필드의 마지막 사용 후에 null 값을 필드에 할당하면 필드가 가리키고 있던 객체를 더욱 빨리 회수할 수 있게 되고, 이로 인해 객체들이 차지하는 힙 공간을 줄일 수 있다. 이 알고리즘은 private 필드만을 대상으로 분석을 수행한다. 우리의 궁극적인 목표는 이 알고리즘을 확장하여 모든 필드들을 분석하고, 힙 사용량을 줄이기 위해 null을 할당하도록 바이트 코드를 자동으로 수정하는 기법을 개발하는 것이다.

  • PDF

내장형 자바 시스템에서 클래스 파일의 분석을 통한 정적 메모리 사용량의 예측 (Estimation of Static Memory Usage for Embedded Java System by Class File Analysis)

  • 양희재
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2003년도 추계학술발표논문집 (상)
    • /
    • pp.467-470
    • /
    • 2003
  • 한 개의 자바 프로그램은 다수 개의 클래스 파일로 구성된다. 자바 프로그램이 실행되기 위해서는 클래스 파일이 메모리에 적재되어져야 하는데, 본 논문에서는 개별 클래스들이 어느 정도의 메모리를 사용할지를 정적으로 예측할 수 있게 하는 방법에 대해 알아보았다. 본 논문의 관심은 클래스 영역의 메모리, 즉 정적 메모리에 맞추어져 있으며, 힙 영역의 메모리 등 동적 메모리에 대한 예측은 향후 연구로 남겨 두었다. 클래스를 이루는 필드와 메소드 등의 값들이 메모리 사용량에 미치는 영향을 수식으로 유도하였으며, 이 수식의 유효성을 실제 실험을 통해 확인하였다.

  • PDF

코드삽입을 이용한 자바프로그램의 힙 사용정보 분석기법 (A Technique to Analyze Heap Usage of Java Programs Using Code Inserting)

  • 주성용;조장우
    • 한국컴퓨터정보학회논문지
    • /
    • 제12권2호
    • /
    • pp.29-36
    • /
    • 2007
  • 자바에서는 가상기계와 프로파일러의 통신을 목적으로 JVM TI 같은 프로파일러 인터페이스를 제공한다. 그러나 자바 가상기계 구현명세는 프로파일러 인터페이스 구현을 요구하지 않는다. 따라서 프로파일러 인터페이스를 제공하지 않는 자바 가상기계에서는 JVM TI를 사용하는 프로파일러는 이용할 수 없다. 이러한 문제를 해결하기 위해서 코드 삽입 기법을 이용해서 프로파일러 인터페이스를 사용하지 않고 힙 사용정보를 분석하는 기법을 제안한다. 제안한 방법을 검증하기 위해서 코드 삽입기를 구현하였다. 실험은 공개되고 자주 사용되는 자바 응용 프로그램을 대상으로 하였고, 실험결과는 대상 프로그램에서 생성된 객체의 수와 최대 할당된 객체의 수 그리고 객체의 사용형태를 보여준다.

  • PDF

모바일 앱 프레임워크를 이용한 E-Book Viewer 설계 및 구현 (Design and Implementation of Efficient Mobile E-book Viewer Using Mobile App Framework)

  • 이지혜;심재성;박석천
    • 한국인터넷방송통신학회논문지
    • /
    • 제12권6호
    • /
    • pp.49-55
    • /
    • 2012
  • 본 전자책 뷰어에 대한 연구는 플랫폼 의존적인 단말기 네이티브 언어 기반의 연구가 많은데, 이는 메모리 사용량과 화면 렌더링 속도에서 비효율적이며, 잦은 시스템 업데이트가 존재하는 모바일 단말 플랫폼 특성상 전자책 뷰어 애플리케이션과의 호환성 문제도 발생된다. 본 논문에서는 모바일 앱 프레임워크를 이용한 전자책 뷰어를 설계하기 위해서 전자책의 파일구조를 분석하였으며 ePub 파서와 파일로더를 설계하고 MVC 모듈로 구조화하였다. 설계 및 구현한 기능을 테스트하기 위해 현재 실행되고 있는 메모리 정보를 보여주는 기능을 제공하는 DDMS와 레이아웃 구성 요소들의 관계를 보여주는 Hierarchy Viewer를 사용 하였다. 그 결과 화면 렌더링 시 150%, 힙 메모리 사용량에서 84% 향상된 성능을 확인하였다.

메모리가 제한적인 자바가상기계에서의 지역 재사용 (Reusing Local Regions in Memory-limited Java Virtual Machines)

  • 김태인;김성건;한환수
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제34권6호
    • /
    • pp.562-571
    • /
    • 2007
  • 많은 연구들을 통해 수행 속력, 효율성, 용이성, 안전성을 위하여 메모리 관리 기법들을 개선시켰다. 그러한 방법들 중에서 지역별 메모리 관리 기법은 각각의 객체 할당 위치에서 따라 정해진 지역에 할당 시키고 그 지역이 제거된다면 그 곳에 할당된 모든 객체의 메모리를 반환하는 방법이다. 본 논문에서는 메모리 제약적인 환경에서 힙 메모리 사용량을 줄이기 위해 로컬 지역을 재사용하는 방법을 제시한다. 기본 아이디어는 현재 함수가 수행될 동안 사용하지 않는 상위 로컬 지역을 재사용하는 것이다. 이러한 방법을 사용함으로써 메모리 제약적인 환경에서 메모리의 한계를 극복할 수 있을 것이다.