Extended Escape Analysis for Java

碩士 === 國立臺灣大學 === 資訊工程學研究所 === 92 === Java is a programming language with increasing popularity. Being object-oriented, objects are the basic elements that a programmer can manipulate. For the runtime system, objects can be allocated on demand by programmers, but there is no way that one can explici...

Full description

Bibliographic Details
Main Authors: Tzu-Han Hung, 洪資涵
Other Authors: Chuen-Liang Chen
Format: Others
Language:en_US
Published: 2004
Online Access:http://ndltd.ncl.edu.tw/handle/32919267558073462365
id ndltd-TW-092NTU05392059
record_format oai_dc
spelling ndltd-TW-092NTU053920592016-06-10T04:15:55Z http://ndltd.ncl.edu.tw/handle/32919267558073462365 Extended Escape Analysis for Java Java的延伸式逃脫分析 Tzu-Han Hung 洪資涵 碩士 國立臺灣大學 資訊工程學研究所 92 Java is a programming language with increasing popularity. Being object-oriented, objects are the basic elements that a programmer can manipulate. For the runtime system, objects can be allocated on demand by programmers, but there is no way that one can explicitly deallocate objects on the heap. In fact, Java depends on the runtime garbage collection to handle space reclamation. To cope with the costly garbage collection problem, two essential techniques are discussed. One is the classification/separation of objects, i.e., objects are classified according to their lifetimes and are separated with different allocation/deallocation policies. The other is the cooperative approach for memory management, i.e., a compiler (either static-time or dynamic-time) analyzes program code and produces information about objects generated in the program, and then the runtime system can use the information to make better use of heap memory space. This thesis exploits the previous two techniques and extends the escape analysis that has been studied before. All existing escape analyses try to separate method-local objects from method-nonlocal ones, and stack-allocate method-local objects since their lifetimes are bounded by their allocating methods. We further propose the extended version of escape analysis; it tries to determine the upper bound of lifetime for some method-nonlocal objects and still stack-allocates them. The key idea is that we find how far an object can escape and how long it can be reachable; these are done by a static-time compiler. For the runtime system, it allocates objects with pre-determined lifetime on stack rather than on heap, and this can lessen the burden of garbage collector since those objects can be allocated/deallocated in the stack manner (first-in-last-out) without the intervention of garbage collector. Chuen-Liang Chen 陳俊良 2004 學位論文 ; thesis 81 en_US
collection NDLTD
language en_US
format Others
sources NDLTD
description 碩士 === 國立臺灣大學 === 資訊工程學研究所 === 92 === Java is a programming language with increasing popularity. Being object-oriented, objects are the basic elements that a programmer can manipulate. For the runtime system, objects can be allocated on demand by programmers, but there is no way that one can explicitly deallocate objects on the heap. In fact, Java depends on the runtime garbage collection to handle space reclamation. To cope with the costly garbage collection problem, two essential techniques are discussed. One is the classification/separation of objects, i.e., objects are classified according to their lifetimes and are separated with different allocation/deallocation policies. The other is the cooperative approach for memory management, i.e., a compiler (either static-time or dynamic-time) analyzes program code and produces information about objects generated in the program, and then the runtime system can use the information to make better use of heap memory space. This thesis exploits the previous two techniques and extends the escape analysis that has been studied before. All existing escape analyses try to separate method-local objects from method-nonlocal ones, and stack-allocate method-local objects since their lifetimes are bounded by their allocating methods. We further propose the extended version of escape analysis; it tries to determine the upper bound of lifetime for some method-nonlocal objects and still stack-allocates them. The key idea is that we find how far an object can escape and how long it can be reachable; these are done by a static-time compiler. For the runtime system, it allocates objects with pre-determined lifetime on stack rather than on heap, and this can lessen the burden of garbage collector since those objects can be allocated/deallocated in the stack manner (first-in-last-out) without the intervention of garbage collector.
author2 Chuen-Liang Chen
author_facet Chuen-Liang Chen
Tzu-Han Hung
洪資涵
author Tzu-Han Hung
洪資涵
spellingShingle Tzu-Han Hung
洪資涵
Extended Escape Analysis for Java
author_sort Tzu-Han Hung
title Extended Escape Analysis for Java
title_short Extended Escape Analysis for Java
title_full Extended Escape Analysis for Java
title_fullStr Extended Escape Analysis for Java
title_full_unstemmed Extended Escape Analysis for Java
title_sort extended escape analysis for java
publishDate 2004
url http://ndltd.ncl.edu.tw/handle/32919267558073462365
work_keys_str_mv AT tzuhanhung extendedescapeanalysisforjava
AT hóngzīhán extendedescapeanalysisforjava
AT tzuhanhung javadeyánshēnshìtáotuōfēnxī
AT hóngzīhán javadeyánshēnshìtáotuōfēnxī
_version_ 1718299952828907520