The Unicode standard, version 2.0
The Unicode standard, version 2.0
Thin locks: featherweight synchronization for Java
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Performance limitations of the Java core libraries
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Performance measurement of dynamically compiled Java executions
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Experience with processes and monitors in Mesa
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
Java Virtual Machine Specification
Java Virtual Machine Specification
The Java Language Specification
The Java Language Specification
Dynamic Storage Allocation: A Survey and Critical Review
IWMM '95 Proceedings of the International Workshop on Memory Management
Design and Implementation of a Java Execution Environment
ICPADS '98 Proceedings of the 1998 International Conference on Parallel and Distributed Systems
A unifying approach to performance analysis in the Java environment
IBM Systems Journal
Java server performance: a case study of building efficient, scalable Jvms
IBM Systems Journal
Overview of the IBM Java just-in-time compiler
IBM Systems Journal
Compiler-Cooperative Memory Management in Java
PSI '02 Revised Papers from the 4th International Andrei Ershov Memorial Conference on Perspectives of System Informatics: Akademgorodok, Novosibirsk, Russia
Java server performance: a case study of building efficient, scalable Jvms
IBM Systems Journal
Building a Java virtual machine for server applications: the Jvm on 0S/390
IBM Systems Journal
Better performance or better manageability?
DEAS '05 Proceedings of the 2005 workshop on Design and evolution of autonomic application software
On the software virtual machine for the real hardware stack machine
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Hi-index | 0.00 |
Early JavaTM virtual machines (Jvms) possessed several significant performance bottlenecks that inhibited the speed of Java workloads. This paper presents the methodology that was used by IBM to identify and eliminate these bottlenecks for improving the performance of Java applications running on several operating system platforms. In addition, several of the key performance problems that were common to all early Java virtual machine implementations and how they were solved for IBM enhanced Jvms are described in detail. The issues discussed in this paper are focused on problems found in core Jvm components, such as object synchronization, object allocation, heap management, text rendering, run-time resolution, and Java class library methods. The results obtained from applying the described methodology and eliminating the identified performance bottlenecks increased the performance of IBM Java virtual machines by as much as four times on some workloads. The technology discussed in this paper is applicable to other Jvm implementations.