Surpassing the TLB performance of superpages with less operating system support
ASPLOS VI Proceedings of the sixth international conference on Architectural support for programming languages and operating systems
Garbage collection without paging
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
A locality-improving dynamic memory allocator
Proceedings of the 2005 workshop on Memory system performance
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Cork: dynamic memory leak detection for garbage-collected languages
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
JavaTM just-in-time compiler and virtual machine improvements for server and middleware applications
VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3
Comprehensive profiling support in the javaTM virtual machine
COOTS'99 Proceedings of the 5th conference on USENIX Conference on Object-Oriented Technologies & Systems - Volume 5
The causes of bloat, the limits of health
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Analysis and reduction of memory inefficiencies in Java strings
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Da capo con scala: design and analysis of a scala benchmark suite for the java virtual machine
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Optimized memory management for class metadata in a JVM
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Unpicking the knot: teasing apart VM/application interdependencies
VEE '12 Proceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments
Smaller footprint for java collections
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Maxine: An approachable virtual machine for, and in, java
ACM Transactions on Architecture and Code Optimization (TACO) - Special Issue on High-Performance Embedded Architectures and Compilers
ShadowVM: robust and comprehensive dynamic program analysis for the java platform
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
A Java application sometimes raises an out-of-memory ex-ception. This is usually because it has exhausted the Java heap. However, a Java application can raise an out-of-memory exception when it exhausts the memory used by Java that is not in the Java heap. We call this area non-Java memory. For example, an out-of-memory exception in the non-Java memory can happen when the JVM attempts to load too many classes. Although it is relatively rare to ex-haust the non-Java memory compared to exhausting the Java heap, a Java application can consume a considerable amount of non-Java memory. This paper presents a quantitative analysis of non-Java memory. To the best of our knowledge, this is the first in-depth analysis of the non-Java memory. To do this we cre-ated a tool called Memory Analyzer for Redundant, Unused, and String Areas (MARUSA), which gathers memory statis-tics from both the OS and the Java virtual machine, break-ing down and visualizing the non-Java memory usage. We studied the use of non-Java memory for a wide range of Java applications, including the DaCapo benchmarks and Apache DayTrader. Our study is based on the IBM J9 Java Virtual Machine for Linux. Although some of our results may be specific to this combination, we believe that most of our observations are applicable to other platforms as well.