Browse > Article
http://dx.doi.org/10.3745/KIPSTA.2007.14-A.3.167

Virtual Machine Code Optimization using Profiling Data  

Shin, Yang-Hoon (벨록스소프트)
Yi, Chang-Hwan (동국대학교 산업기술연구원)
Oh, Se-Man (동국대학교 컴퓨터공학과)
Abstract
VM(Virtual Machine) can be considered as a software processor which interprets the machine code. Also, it is considered as a conceptional computer that consists of logical system configuration. But, the execution speed of VM system is much slower than that of a real processor system. So, it is very important to optimize the code for virtual machine to enhance the execution time. Especially the optimizer for a virtual machine code on embedded devices requires the highly efficient performance to the ordinary optimizer in the respect to the optimized ratio about cost. Fundamentally, functions and basic blocks which influence the execution time of virtual machine is found, and then an optimization for them nay get the high efficiency. In this paper, we designed and implemented the optimizer for the virtual(or abstract) machine code(VMC) using profiling. Firstly, we defined the profiling information which is necessary to the optimization of VMC. The information can be obtained from dynamically executing the machine code. And we implemented VMC optimizer using the profiling information. In our implementation, the VMC is SIL(Standard Intermediate Language) that is an intermediate code of EVM(Embedded Virtual Machine). Also, we tried a benchmark test for the VMC optimizer and obtained reasonable results.
Keywords
Profile; Profiling Data; Code Optimization; Virtual Machine Code; Virtual Machine;
Citations & Related Records
연도 인용수 순위
  • Reference
1 Thomas Ball, Peter Mataga, Mooly Sagiv, 'Edge Profiling versus Path Profiling,' ACM Symposium on Principles of Programming Languages, pp.l34-148, 1998   DOI
2 Tim Liajndholm, Frank Yellin, 'The Java Virtual Machine Specification', 2nd Ed., Addison Wesley, 1999
3 남동근, 윤성림, 오세만 '가상기계를 위한 어셈블리 언어', 정보처리학회 학술 발표 논문집, 제11권, 제9호, pp.519-522, 2004.3   과학기술학회마을
4 Pohua P. Chang, Scott A. Mahlke, Wen-rnei W. Hwu, 'Using Profile Information to Assist Classic Code Optimizations,' IEEE Software Practice and Experience, Vol.21, No.12, pp.1301-1321, 1991   DOI
5 Michael D. Bond, Kathryn S. McKinley, 'Continuous Path and Edge Profiling,' IEEE/ACM International Symposium on Micro-architecture table of contents, pp.130-140, 2005   DOI
6 'MSIL Instruction Set Specification-Version 1.9 Final', Microsoft Corporation, 2000.10
7 D. Sugalsk, Perl.org sites, www.parrotcode.org
8 오세만, 이양선, 고광문, '임베디드 시스템을 위한 가상기계의 설계 및 구현', 멀티미디어학회 논문지, 제8권, 9호, pp.1282-1291, 2005.8   과학기술학회마을
9 Kris Kaspersky , 'Code Optimization: Effective Memory Usage', A-List Publishing, 2003.9
10 오세만, 컴파일러 입문 개정판, 정익사, 2005
11 V. Bala, E. Duesterwald, and S. Banerjia, 'Dynamo: A Transparent Dynamic Optimization System,' in PLDI'00, pp.1 - 12, ACM Press, 2000   DOI
12 Thomas Bell, 'The Concept of Dynamic Analysis,' ACM SIGSOFT international symposium on Foundations of software engineering table of contents, pp.216-234, 1999   DOI
13 Jon Louis Bentley, 'Bumper-Sticker Computer Science,' Communications of the ACM, Volume 28, Issue 9, pp.896-901, 1985.9   DOI
14 James E. Smith, Ravi Nair, 'Virtual Machines - Versatile Platforms for Systems and Processes', Morgan Kaufmann, 2005