ACM Home Page
Please provide us with feedback. Feedback
Dynamic compilation: the benefits of early investing
Full text PdfPdf (270 KB)
Source
ACM/Usenix International Conference On Virtual Execution Environments archive
Proceedings of the 3rd international conference on Virtual execution environments table of contents
San Diego, California, USA
SESSION: Compilation table of contents
Pages: 94 - 104  
Year of Publication: 2007
ISBN:978-1-59593-630-1
Authors
Prasad Kulkarni  Florida State University, Tallahassee, FL and IBM T.J. Watson Research Center, Hawthorne, NY
Matthew Arnold  IBM T.J. Watson Research Center, Hawthorne, NY
Michael Hind  IBM T.J. Watson Research Center, Hawthorne, NY
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGOPS: ACM Special Interest Group on Operating Systems
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 57,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1254810.1254824
What is a DOI?

ABSTRACT

Dynamic compilation is typically performed in a separate thread, asynchronously with the remaining application threads. This compilation thread is often scheduled for execution in a simple round-robin fashion either by the operating system or by the virtual machine itself. Despite the popularity of this approach in production virtual machines, it has a number of shortcomings that can lead to suboptimal performance.

This paper explores a number of issues surrounding asynchronous dynamic compilation in a virtual machine. We begin by describing the shortcomings of current approaches and demonstrate their potential to perform poorly under certain conditions. We describe the importance of enforcing a minimum level of utilization for the compilation thread, and evaluate the performance implications of varying the utilization that is enforced. We observed surprisingly large speedups by increasing the priority of the compilation thread, averaging 18.2% improvement over a large benchmark suite. Finally, we discuss options for implementing these techniques in a VM and address relevant issues when moving from a single-processor to a multiprocessor machine.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
J. Andrews. Detecting hyper-threading technology and dual cores. http://www.developers.net/intelisnshowcase/view/579.
2
 
3
M. Arnold, S. J. Fink, D. Grove, M. Hind, and P. F. Sweeney. A survey of adaptive optimization in virtual machines. Proceedings of the IEEE, 93(2), 2005. Special issue on Program Generation, Optimization, and Adaptation.
4
 
5
BEA. BEA JRockit: Java for the enterprise technical white paper. http://www.bea.com, Jan. 2006.
6
 
7
8
 
9
M. Cierniak, M. Eng, N. Glew, B. Lewis, and J. Stichnoth. The open runtime platform: A flexible high-performance managed runtime environment. Intel Technology Journal, 7(1):5--18, 2003.
 
10
C. Click. The Azul VM, Azul systems. personal communication.
 
11
 
12
The Daikon dynamic invariant detector. http://pag.csail.mit.edu/daikon.
 
13
S. Friberg. Dynamic profile guided optimization in a VEE on IA-64. Master's thesis, KTH -- Royal Institute of Technology, 2004. IMIT/LECS-2004-69.
 
14
 
15
T. Harris. Controlling run-time compilation. In IEEE Workshop on Programming Languages for Real-Time Industrial Applications, pages 75--84, Dec. 1998.
16
 
17
https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=trade6.
 
18
Kawa, the Java-based Scheme system. http://www.gnu.org/software/kawa.
 
19
C. J. Krintz, D. Grove, V. Sarkar, and B. Calder. Reducing the overhead of dynamic compilation. Software?Practice and Experience, 31(8):717--738, July 2001.
 
20
 
21
 
22
T. Roscoe. The Structure of a Multi-Service Operating System. PhD thesis, University of Cambridge Computer Laboratory, April 1995. Available as Technical Report No. 376.
 
23
 
24
Standard Performance Evaluation Corporation. SPECjbb2000 Java Business Benchmark. http://www.spec.org/jbb2000.
 
25
Standard Performance Evaluation Corporation. SPECjvm98 Benchmarks. http://www.spec.org/jvm98.
26
 
27


Collaborative Colleagues:
Prasad Kulkarni: colleagues
Matthew Arnold: colleagues
Michael Hind: colleagues