Handler address table-lookup and common bytecode sequence execution in micro JVM intrepreter

碩士 === 國立交通大學 === 資訊工程系 === 91 === The execution engine of micro JVM is usually interpreter. For interpreter, the comparison overhead in decoding phase is high, and there is still much improvement space for the stack-based execution in executing phase. Hence, on the constraints of low mem...

Full description

Bibliographic Details
Main Authors: Zhe-Min Lin, 林哲民
Other Authors: Jyh-Jiun Shann
Format: Others
Language:en_US
Published: 2003
Online Access:http://ndltd.ncl.edu.tw/handle/24812291330544815098
Description
Summary:碩士 === 國立交通大學 === 資訊工程系 === 91 === The execution engine of micro JVM is usually interpreter. For interpreter, the comparison overhead in decoding phase is high, and there is still much improvement space for the stack-based execution in executing phase. Hence, on the constraints of low memory and low computing power, our objective is to reduce these overheads. Handler address table-lookup is aimed at comparison overhead in decoding phase. A table-lookup is used to get handler address with original Java bytecodes instead of comparison. Common bytecode sequence execution is aimed at the overhead of stack-based execution in executing phase. The execution of common bytecode sequences is combined by a systematically-generated common bytecode sequence set. Certainly, the decision flow of the systematically-generating common bytecode sequence set is decided by the tools we write. In the simulation, first we get a common bytecode sequence set by the systematical-generating tools we have written. Then we implement the handler address table-lookup and partial common bytecode sequence set into KVM, the micro Java Virtual Machine we select. Simulation result shows the total KVM performance increment (workload per unit time) is 50.6%, and the total KVM code size increment is 10.4%. To mention about the simulation analysis, first we can conclude that reducing decoding overhead of interpreter indeed enhance performance greatly. Second, with a well systematically-generated common bytecode sequence set, to combine the execution of the bytecode sequences in the set also enhance performance rather well.