|
ABSTRACT
According to conventional wisdom, interfaces provide flexibility at the cost of performance. Most high-performance Java virtual machines today tightly integrate their core virtual machines with their just-in-time compilers and garbage collectors to get the best performance. The Open Runtime Platform (ORP) is unusual in that it reconciles high performance with the extensive use of well-defined interfaces between its components. ORP was developed to support experiments in dynamic compilation, garbage collection, synchronization, and other technologies. To achieve this, two key interfaces were designed: one for garbage collection and another for just-in-time compilation. This paper describes some interesting features of these interfaces and discusses lessons learned in their use. One lesson we learned was to selectively expose small but frequently accessed data structures in our interfaces; this improves performance while minimizing the number of interface crossings.
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
|
Open Runtime Platform. http://orp.sourceforge.net.
|
| |
2
|
Orp-general mailing list. http://sourceforge.net/projects/orp.
|
| |
3
|
GNU Classpath. http://www.classpath.org.
|
| |
4
|
M. Cierniak, W. Washburn, R. Hudson, and G.-Y. Lueh. Open Runtime Platform Tutorial. Java Grande 2001. http://prdownloads.sourceforge.net/orp/orp-javagrande2001.pdf.
|
 |
5
|
Ali-Reza Adl-Tabatabai , Michał Cierniak , Guei-Yuan Lueh , Vishesh M. Parikh , James M. Stichnoth, Fast, effective code generation in a just-in-time Java compiler, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.280-290, June 17-19, 1998, Montreal, Quebec, Canada
|
 |
6
|
James M. Stichnoth , Guei-Yuan Lueh , Michał Cierniak, Support for garbage collection at every instruction in a Java compiler, Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation, p.118-127, May 01-04, 1999, Atlanta, Georgia, United States
|
 |
7
|
Michał Cierniak , Guei-Yuan Lueh , James M. Stichnoth, Practicing JUDO: Java under dynamic optimizations, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.13-26, June 18-21, 2000, Vancouver, British Columbia, Canada
|
 |
8
|
|
 |
9
|
Richard L. Hudson , J. Elliot Moss , Sreenivas Subramoney , Weldon Washburn, Cycles to recycle: garbage collection to the IA-64, Proceedings of the 2nd international symposium on Memory management, p.101-110, October 15-16, 2000, Minneapolis, Minnesota, United States
|
| |
10
|
|
 |
11
|
|
| |
12
|
Microsoft Corp. Microsoft SDK for Java. http://www.microsoft.com/java/sdk.
|
| |
13
|
|
| |
14
|
James Gosling , Bill Joy , Guy Steele , Gilad Bracha, Java Language Specification, Second Edition: The Java Series, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2000
|
| |
15
|
P. R. Wilson. Uniprocessor Garbage Collection Techniques. Draft accepted for ACM Computing Surveys. ftp://ftp.cs.utexas.edu/pub/garbage/bigsurv.ps.
|
| |
16
|
Intel Corp. Intel Architecture Software Developer's Manual, order number 243192, 1997.
|
| |
17
|
Intel Corp. Intel IA-64 Architecture Software Developer's Manual, order number 245319, 2000.
|
| |
18
|
|
| |
19
|
Sun Microsystems. The JIT Compiler Interface Specification. http://java.sun.com/docs/jit_interface.html.
|
| |
20
|
Hirotaka Ogawa , Kouya Shimura , Satoshi Matsuoka , Fuyuhiko Maruyama , Yukihiko Sohda , Yasunori Kimura, OpenJIT: An Open-Ended, Reflective JIT Compiler Framework for Java, Proceedings of the 14th European Conference on Object-Oriented Programming, p.362-387, June 12-16, 2000
|
| |
21
|
Kazuyuki Shudo. shuJIT - Java Just-in-Time Compiler for x86 Processors. http://www.shudo.net/jit/index.html.
|
| |
22
|
|
| |
23
|
Kazuyuki Shudo. Performance comparison of JITs (Jan 2002). http://www.shudo.net/jit/perf.
|
| |
24
|
B. Alpern , C. R. Attanasio , J. J. Barton , M. G. Burke , P. Cheng , J.-D. Choi , A. Cocchi , S. J. Fink , D. Grove , M. Hind , S. F. Hummel , D. Lieber , V. Litvinov , M. F. Mergen , T. Ngo , J. R. Russell , V. Sarkar , M. J. Serrano , J. C. Shepherd , S. E. Smith , V. C. Sreedhar , H. Srinivasan , J. Whaley, The Jalapeño virtual machine, IBM Systems Journal, v.39 n.1, p.211-238, January 2000
|
| |
25
|
IBM. Jikes Research Virtual Machine. http://www-124.ibm.com/developerworks/oss/jikesrvm.
|
| |
26
|
Standard Performance Evaluation Corporation. SPEC JVM98. http://www.specbench.org/osg/jvm98.
|
| |
27
|
Standard Performance Evaluation Corporation. SPEC Java Business Benchmark 2000. http://www.specbench.org/osg/jbb2000.
|
 |
28
|
|
| |
29
|
|
CITED BY 3
|
|
Kazuaki Ishizaki , Mikio Takeuchi , Kiyokuni Kawachiya , Toshio Suganuma , Osamu Gohda , Tatsushi Inagaki , Akira Koseki , Kazunori Ogata , Motohiro Kawahito , Toshiaki Yasue , Takeshi Ogasawara , Tamiya Onodera , Hideaki Komatsu , Toshio Nakatani, Effectiveness of cross-platform optimizations for a java just-in-time compiler, ACM SIGPLAN Notices, v.38 n.11, November 2003
|
|
|
|
|
|
T. Suganuma , T. Ogasawara , K. Kawachiya , M. Takeuchi , K. Ishizaki , A. Koseki , T. Inagaki , T. Yasue , M. Kawahito , T. Onodera , H. Komatsu , T. Nakatani, Evolution of a java just-in-time compiler for IA-32 platforms, IBM Journal of Research and Development, v.48 n.5/6, p.767-795, September/November 2004
|
INDEX TERMS
Primary Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Run-time environments
Additional Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.2
Design Tools and Techniques
Subjects:
Modules and interfaces
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Memory management (garbage collection);
Code generation
General Terms:
Design,
Experimentation,
Measurement,
Performance
Keywords:
JVM,
Java,
dynamic compilation,
garbage collection,
interface design,
interfaces,
just-in-time compilation,
modular components,
virtual machine
|