Minimizing register usage penalty at procedure calls
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Hitting the memory wall: implications of the obvious
ACM SIGARCH Computer Architecture News
Simultaneous multithreading: maximizing on-chip parallelism
ISCA '95 Proceedings of the 22nd annual international symposium on Computer architecture
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A generational mostly-concurrent garbage collector
Proceedings of the 2nd international symposium on Memory management
An algorithm for parallel incremental compaction
Proceedings of the 3rd international symposium on Memory management
Java Virtual Machine Specification
Java Virtual Machine Specification
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
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
Uniprocessor Garbage Collection Techniques
IWMM '92 Proceedings of the International Workshop on Memory Management
Generation Scavenging: A non-disruptive high performance storage reclamation algorithm
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
A brief history of just-in-time
ACM Computing Surveys (CSUR)
Computer Architecture: A Quantitative Approach
Computer Architecture: A Quantitative Approach
Effectiveness of cross-platform optimizations for a java just-in-time compiler
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Improving 64-Bit Java IPF Performance by Compressing Heap References
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Garbage-first garbage collection
Proceedings of the 4th international symposium on Memory management
Automatically Reducing Repetitive Synchronization with a Just-in-Time Compiler for Java
Proceedings of the international symposium on Code generation and optimization
Garbage collection without paging
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Improving locality with parallel hierarchical copying GC
Proceedings of the 5th international symposium on Memory management
Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design)
A general lock-free algorithm using compare-and-swap
Information and Computation
TuningFork: a platform for visualization and analysis of complex real-time systems
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
Approximating the buffer allocation problem using epochs
Journal of Parallel and Distributed Computing
User's Guide to Websphere Extreme Scale
User's Guide to Websphere Extreme Scale
Cache line reservation: exploring a scheme for cache-friendly object allocation
CASCON '09 Proceedings of the 2009 Conference of the Center for Advanced Studies on Collaborative Research
The runtime structure of object ownership
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Hi-index | 0.00 |
The Java®programming language and the Java virtual machine (JVM®) are intended to provide a level of abstraction from the underlying hardware and operating system (OS). This abstraction poses challenges from a performance perspective, because developers are often unable to make use of best-practice approaches during software development for their deployed OSs and hardware platforms. The rise of multicore processor systems has been swift and has changed many software developers' underlying assumptions with respect to the hardware over the last ten years. The role of the JVM is to hide such platform complexity by adapting appropriately through runtime analysis and reaction to application behavior. The JVM is an essential component for exploiting the full potential of multicore processor systems through effective management of the memory subsystem, removing impediments to application and system scalability with respect to the number of logical processors, producing efficient and highly optimized code, and providing user tools for monitoring and analysis. This paper reviews the key techniques and tools available in the IBM Developer Kit for the Java 6 release for managing and optimizing Java for multicore processor environments and describes performance results to demonstrate the effectiveness of such tools and techniques.