|
ABSTRACT
GCspy is an architectural framework for the collection, transmission, storage and replay of memory management behaviour. It makes new contributions to the understanding of the dynamic memory behaviour of programming languages (and especially object-oriented languages that make heavy demands on the performance of memory managers). GCspy's architecture allows easy incorporation into any memory management system: it is not limited to garbage-collected languages. It requires only small changes to the system in which it is incorporated but provides a simple to use yet powerful data-gathering API. GCspy scales to allow very large heaps to be visualised effectively and efficiently. It allows already-running, local or remote systems to be visualised and those systems to run at full speed outside the points at which data is gathered. GCspy's visualisation tool presents this information in a number of novel ways.Deep understanding of program behaviour is essential to the design of the next generation of garbage collectors and explicit allocators. Until now, no satisfactory tools have been available to assist the implementer in gaining an understanding of heap behaviour. GCspy has been demonstrated to be a practical solution to this dilemma. It has been used to analyse production Java virtual machines running applications of realistic sizes. Its use has revealed important insights into the interaction between application program and JVM and has led to the development of better garbage collectors.
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
|
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
|
 |
2
|
Bowen Alpern , C. R. Attanasio , Anthony Cocchi , Derek Lieber , Stephen Smith , Ton Ngo , John J. Barton , Susan Flynn Hummel , Janice C. Sheperd , Mark Mergen, Implementing jalapeño in Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.314-324, November 01-05, 1999, Denver, Colorado, United States
|
| |
3
|
|
 |
4
|
|
| |
5
|
|
| |
6
|
Borland Inc. The OptimizeIt tool. http://www.optimizeit.comNovember 12, 2001.
|
| |
7
|
L. Cardelli, J. Donahue, L. Glassman, M. J. Jordan, B. Kalsow, and G. Nelson. Modula-3 report. Technical Report 52, Systems Research Center, Digital Equipment Corporation, Palo Alto, CA, September 1989. Revised.
|
 |
8
|
Trishul Chilimbi , Richard Jones , Benjamin Zorn, Designing a trace format for heap allocation events, Proceedings of the 2nd international symposium on Memory management, p.35-49, October 15-16, 2000, Minneapolis, Minnesota, United States
|
 |
9
|
|
| |
10
|
Wim De Pauw , Steven P. Reiss , John T. Stasko, ICSE workshop on software visualization, Proceedings of the 23rd International Conference on Software Engineering, p.758-759, May 12-19, 2001, Toronto, Ontario, Canada
|
| |
11
|
W. De Pauw and G. Sevitski. Visualizing Reference Patterns for Solving Memory Leaks in Java. Concurrency --- Practice and Experience, 12:1431--1454, 2000.
|
| |
12
|
|
| |
13
|
|
 |
14
|
|
 |
15
|
|
 |
16
|
Antony L. Hosking , J. Eliot B. Moss , Darko Stefanovic, A comparative performance evaluation of write barrier implementation, conference proceedings on Object-oriented programming systems, languages, and applications, p.92-109, October 18-22, 1992, Vancouver, British Columbia, Canada
|
| |
17
|
|
| |
18
|
IBM Research. The Jinsight project. http://www.research.ibm.com/jinsight/November 12, 2001.
|
 |
19
|
|
| |
20
|
R. E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley & Sons, Ltd, 1996. With a chapter on Distributed Garbage Collection by R. Lins.
|
| |
21
|
R. E. Jones. Tail recursion without space leaks. Journal of Functional Programming, 2(1):73--79, January 1992.
|
| |
22
|
G. N. C. Kirby and R. Morrison. OCB: An Object/Class Browser for Java. In Proceedings of the Second International Workshop on Persistence and Java (PJW2), pages 89--105, Half Moon Bay, CA, USA, August 1997.
|
| |
23
|
D. Lea. The GNU C++ library. The C++ Report, 1993.
|
| |
24
|
D. Lea. A memory allocator. The DLmalloc homepage http://gee.cs.oswego.edu/dl/html/malloc.html April 4, 2000, 1997.
|
| |
25
|
|
| |
26
|
S. L. Peyton Jones, C. V. Hall, K. Hammond, W. D. Partain, and P. L. Wadler. The Glasgow Haskell compiler: a technical overview. In Proceedings of Joint Framework for Information Technology Technical Conference, pages 249--257, Keele, March 1993.
|
 |
27
|
|
 |
28
|
|
| |
29
|
C. Runciman and D. Wakeling. Heap profiling of lazy functional programs. Journal of Functional Programming, 3(2):217--245, April 1993.
|
| |
30
|
K. Russell and L. Bak. The HotSpot Serviceability Agent: An Out-of-Process High-Level Debugger for a Java Virtual Machine. In Proceedings of the Usenix Java Virtual Machine Research and Technology Symposium (JVM'01), pages 117--126, Monterey, CA, USA, April 2001.
|
| |
31
|
|
| |
32
|
A. Shalit. The Dylan Reference Manual. Addison-Wesley, 1996.
|
| |
33
|
Sitraka Inc. The JProbe Suite. http://www.jprobe.com/November 12, 2001.
|
| |
34
|
R. M. Stallman. Debugging with GDB: The GNU Source-Level Debugger for GDB. Free Software Foundation, July 2000.
|
| |
35
|
Standard Performance Evaluation Corporation. SPECjvm98 Documentation, release 1.03 edition, March 1999.
|
| |
36
|
Sun Microsystems Inc. Java Debug Wire Protocol (JDWP). http://java.sun.com/j2se/1.3/docs/guide/jpda/jdwp-spec.htmlNovember 12, 2001.
|
| |
37
|
Sun Microsystems Inc. Java Heap Analysis Tool (HAT). http://java.sun.com/people/billf/heap/November 12, 2001.
|
| |
38
|
Sun Microsystems Inc. Java Platform Debugger Architecture (JPDA). http://java.sun.com/j2se/1.3/docs/guide/jpda/November 12, 2001.
|
| |
39
|
Sun Microsystems Inc. Java Virtual Machine Profiling Interface (JVMPI). http://java.sun.com/j2se/1.3/docs/guide/jvmpi/November 12, 2001.
|
| |
40
|
Sun Microsystems Inc. The Java HotSpot Virtual Machine, 2001. Technical White Paper.
|
 |
41
|
|
 |
42
|
|
 |
43
|
David Ungar , Randall B. Smith, Self: The power of simplicity, Conference proceedings on Object-oriented programming systems, languages and applications, p.227-242, October 04-08, 1987, Orlando, Florida, United States
|
| |
44
|
|
| |
45
|
M. Wallace, S. Novello, and J. Schimpf. ECLiPSe: A platform for constraint logic programming. Technical report, IC-Parc, Imperial College London, August 1997.
|
| |
46
|
|
| |
47
|
|
| |
48
|
M. Wolczko. The Tracing JVM. http://research.sun.com/people/mario/tracing-jvm/ November 9, 2001.
|
| |
49
|
M. Wolczko. Using a Tracing Java Virtual Machine to Gather Data on the Behaviour if Java Programs, March 1999. SML 98-0154.
|
| |
50
|
M. Wolczko. Personal Communication, October 2001.
|
CITED BY 6
|
|
David F. Bacon , Perry Cheng , David Grove , Michael Hind , V. T. Rajan , Eran Yahav , Matthias Hauswirth , Christoph M. Kirsch , Daniel Spoonhower , Martin T. Vechev, High-level real-time programming in Java, Proceedings of the 5th ACM international conference on Embedded software, September 18-22, 2005, Jersey City, NJ, USA
|
|
|
|
|
|
|
|
|
|
|
|
A. M. Cheadle , A. J. Field , J. W. Ayres , N. Dunn , R. A. Hayden , J. Nystrom-Persson, Visualising dynamic memory allocators, Proceedings of the 2006 international symposium on Memory management, June 10-11, 2006, Ottawa, Ontario, Canada
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Memory management (garbage collection)
Additional Classification:
C.
Computer Systems Organization
C.4
PERFORMANCE OF SYSTEMS
Subjects:
Measurement techniques
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.3
Coding Tools and Techniques
H.
Information Systems
H.5
INFORMATION INTERFACES AND PRESENTATION (I.7)
H.5.2
User Interfaces (D.2.2, H.1.2, I.3.6)
General Terms:
Algorithms,
Human Factors,
Languages,
Measurement,
Performance
Keywords:
Java,
garbage collection,
language implementation,
memory management,
visualisation of objects
|