|
ABSTRACT
We present generic extensions to the GCspy visualisation frame-work that make it suitable for tracking the way continuous dynamic memory allocators such as dlmalloc or incremental and concurrent garbage collectors make use of heap memory. These extensions include sample-driven client-server communication, in-cremental stream updates and client-controlled stream update frequency. Additional extensions to the current GCspy client are also described. These include hierarchical driver grouping and hierarchical visualisation, zooming, and the ability to define and view relationships between tiles in different spaces. We also introduce a heuristics engine that is responsible for flipping GCspy from its decoupled 'observation' mode to a synchronous 'single-step' mode, and describe a backtrace facility that can trace the server-side call sequence that led to the triggering of a specified event, such as the allocation or freeing of a block of memory. This enables aspects of the allocator (fragmentation, block ordering, splitting and coalescing policies, etc.) to be understood in the context of a particular application and potential optimisations to be identified. The effectiveness of the enhanced framework is demonstrated with a complete integration with dlmalloc. The framework is evaluated in terms of both performance and its ability to explore contrived modifications to dlmalloc's coalescing policy.
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
|
Doug Lea. A memory allocator. http://gee.cs.oswego.edu/dl/html/malloc.html.
|
| |
2
|
|
| |
3
|
GCspy Team. Enhanced GCspy source code. http://www.experimentalstuff.com/Technologies/GCspy/
|
| |
4
|
|
 |
5
|
|
 |
6
|
Emery D. Berger , Benjamin G. Zorn , Kathryn S. McKinley, Reconsidering custom memory allocation, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
| |
7
|
Henry Lieberman and Carl E. Hewitt. A real-time garbage collector based on the lifetimes of objects. AI Memo 569a, MIT, April 1981.
|
 |
8
|
|
 |
9
|
Martin Hirzel , Amer Diwan , Matthew Hertz, Connectivity-based garbage collection, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
 |
10
|
|
 |
11
|
|
 |
12
|
|
 |
13
|
David F. Bacon , Perry Cheng , V. T. Rajan, A real-time garbage collector with low overhead and consistent utilization, Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.285-298, January 15-17, 2003, New Orleans, Louisiana, USA
|
 |
14
|
A. M. Cheadle , A. J. Field , S. Marlow , S. L. Peyton Jones , R. L. While, Exploring the barrier to entry: incremental generational garbage collection for Haskell, Proceedings of the 4th international symposium on Memory management, October 24-25, 2004, Vancouver, BC, Canada
[doi> 10.1145/1029873.1029893]
|
 |
15
|
Tony Printezis , Richard Jones, GCspy: an adaptable heap visualisation framework, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
| |
16
|
|
 |
17
|
|
| |
18
|
Imperial College GCspy Team. I Spy with my GCspy. http://www.doc.ic.ac.uk/~ajf/Research/publications.html
|
| |
19
|
HP Labs. The libunwind project. http://www.hpl.hp.com/research/linux/libunwind/.
|
| |
20
|
|
| |
21
|
DaCapo Project. The DaCapo benchmark suite (versionbeta051009). http://osl-www.cs.umass.edu/DaCapo/gcbm.html.
|
| |
22
|
Donald E. Knuth. The Art of Computer Programming, volume I: Fundamental Algorithms, chapter 2. Addison-Wesley, second edition, 1973.
|
| |
23
|
AT&T Research. Graphviz - graph visualization software. http://www.graphviz.org/.
|
| |
24
|
|
| |
25
|
OOPSLA'02 ACM Conference on Object-Oriented Systems, Languages and Applications, ACM SIGPLAN Notices, Seattle, WA, November 2002. ACM Press.
|
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.5
Testing and Debugging
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:
dynamic memory allocation,
garbage collection,
language implementation,
memory management,
visualisation of objects
|