Algorithms for scalable synchronization on shared-memory multiprocessors
ACM Transactions on Computer Systems (TOCS)
Thin locks: featherweight synchronization for Java
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Garbage collection and local variable type-precision and liveness in Java virtual machines
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Empirical studies of competitve spinning for a shared-memory multiprocessor
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
A nonrecursive list compacting algorithm
Communications of the ACM
The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors
IEEE Transactions on Parallel and Distributed Systems
Dynamic Storage Allocation: A Survey and Critical Review
IWMM '95 Proceedings of the International Workshop on Memory Management
Non-compacting memory allocation and real-time garbage collection
Non-compacting memory allocation and real-time garbage collection
IBM Systems Journal
The evolution of a high-performing Java virtual machine
IBM Systems Journal
Overview of the IBM Java just-in-time compiler
IBM Systems Journal
Proceedings of the 3rd international symposium on Memory management
An algorithm for parallel incremental compaction
Proceedings of the 3rd international symposium on Memory management
A parallel, incremental and concurrent GC for servers
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
A real-time garbage collector with low overhead and consistent utilization
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
High-Performance Scalable Java Virtual Machines
HiPC '01 Proceedings of the 8th International Conference on High Performance Computing
Persistence and Java - A Balancing Act
Proceedings of the International Symposium on Objects and Databases
Architecture of the PEVM: A High-Performance Orthogonally Persistent Java Virtual Machine
POS-9 Revised Papers from the 9th International Workshop on Persistent Object Systems
An integrated dynamic memory tracing tool for C++
Information Sciences—Informatics and Computer Science: An International Journal
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Stride prefetching by dynamically inspecting objects
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Prefetch injection based on hardware monitoring and object metadata
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
IBM Systems Journal
The evolution of a high-performing Java virtual machine
IBM Systems Journal
Building a Java virtual machine for server applications: the Jvm on 0S/390
IBM Systems Journal
A parallel, incremental, mostly concurrent garbage collector for servers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 5th international symposium on Memory management
Task-aware garbage collection in a multi-tasking virtual machine
Proceedings of the 5th international symposium on Memory management
Controlling garbage collection and heap growth to reduce the execution time of Java applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Implementing fast javaTM monitors with relaxed-locks
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Mostly accurate stack scanning
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Limits of parallel marking garbage collection
Proceedings of the 7th international symposium on Memory management
A lazy developer approach: building a JVM with third party software
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Contention-aware scheduler: unlocking execution parallelism in multithreaded java programs
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
NUMA-aware memory manager with dominant-thread-based copying GC
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Lock elision for read-only critical sections in Java
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Scalability limitations when running a Java web server on a chip multiprocessor
Proceedings of the 3rd Annual Haifa Experimental Systems Conference
An efficient non-moving garbage collector for functional languages
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
POPL 2003: A real-time garbage collector with low overhead and consistent utilization
ACM SIGPLAN Notices - Supplemental issue
Hi-index | 0.00 |
The importance of the JavaTM platform has shifted from a client-centered paradigm to the server. In particular, the Java language has matured into a viable programming model for server applications. Correspondingly, the requirements on the Java virtual machine (Jvm) have shifted. This paper details the serverspecific performance enhancements made to the core Jvm and just-in-time (JIT) compiler, which have allowed the IBM Developer Kits that implement Java code for Intel processors to become industry performance leaders. The paper focuses on synchronization implementation and granularity improvements that have greatly increased the scalability of the Java language on multiprocessor machines. Focus is also given to memory management, specifically, object allocation, garbage collection, and heap management. Details of communication and connection scaling are also provided. Finally, server-specific enhancements to the JIT compiler are discussed. All component enhancements in the paper are explained, and their performance implications are quantified with results from representative multithreaded server workloads. The paper summarizes work from across IBM. The authors' specific contributions include the three-tier spin lock, the thread local heap and freelist merge, the dynamic heap growth algorithm, bitwise sweep, compaction avoidance, and the suite of network enhancements.