Abstract
Automatic memory management has been prevalent on memory / computation constraint systems. Previous research has shown strong interest in small memory footprint, garbage collection (GC) pause time and energy consumption, while performance was left out of the spotlight. This fact inspired us to design memory management techniques delivering high performance, while still keeping space consumption and response time under control. XAMM is an attempt to answer such a quest. Driven by the design decisions above, XAMM implements a variety of novel techniques, including object model, heap management, allocation and GC mechanisms. XAMM also adopts techniques that can not only exploit the underlying system’s capabilities, but can also assist the optimizations by other runtime components (e.g. code generator). This paper describes these techniques in details and reports our experiences in the implementation. We conclude that XAMM demonstrates the feasibility to achieve high performance without breaking memory constraints. We support our claims with evaluation results, for a spectrum of real-world programs and synthetic benchmarks. For example, the heap placement optimization can boost the system-wide performance by as much as 10%; the lazy and selective location bits management can reduce the execution time by as much as 14%, while reducing GC pause time on average by as much as 25%. The sum of these techniques improves the system-wide performance by as much as 56%.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Jikes Research Virtual Machine (RVM). At URL: http://www-124.ibm.com/developerworks/oss/jikesrvm/
Open Runtime Platform (ORP) from Intel Corporation. At URL: http://orp.sourceforge.net
Project Code-named “Monty”: A High Performance Virtual Machine for the Java\(^{\tiny TM}\) Platform for Small Devices. At URL: http://servlet.java.sun.com/javaone/sf2002/conf/sessions/display-2133.en.jsp
Sensible Sanitation – Understanding the IBM Java Garbage Collector. At URL: http://www-106.ibm.com/developerworks/ibm/library/i-garbage1/
Adl-Tabatabai, A.-R., Hudson, R.L., Serrano, M.J., Subramoney, S.: Prefetch injection based on hardware monitoring and object metadata. In: Proceedings of PLDI 2004, pp. 267–276 (2004)
Bacon, D.F., Cheng, P., Rajan, V.T.: Controlling fragmentation and space consumption in the Metronome, a real-time garbage collector for java. In: Proceedings of LCTES 2003, pp. 81–92 (2003)
Bacon, D.F., Cheng, P., Rajan, V.T.: A real-time garbage collector with low overhead and consistent utilization. In: Proceedings of POPL 2003, pp. 285–298 (2003)
Bacon, D.F., Fink, S.J., Grove, D.: Space- and time-efficient implementation of the java object model. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 35–46. Springer, Heidelberg (2002)
Bacon, D.F., Konuru, R., Murthy, C., Serrano, M.: Thin locks: Featherweight synchronization for Java. In: Proceedings of PLDI 1998, pp. 258–268 (1998)
Barabash, K., Buchbinder, N., Domani, T., Kolodner, E.K., Ossia, Y., Pinter, S.S., Shepherd, J., Sivan, R., Umansky, V.: Mostly accurate stack scanning. In: Proceedings of the Java\(^{\tiny TM}\) Virtual Machine Research and Technology Symposium, JVM 2001 (2001)
Boehm, H.-J.: Space efficient conservative collection. In: Proceedings of PLDI 1993, pp. 197–206 (1993)
Boehm, H.-J.: Reducing garbage collector cache misses. In: Proceedings of ISMM 2001, pp. 59–64 (2001)
Boehm, H.-J., Weiser, M.: Garbage collection in an uncooperative environment. Software Practice & Experience 18(9), 807–820 (1988)
Bracha, G., Gosling, J., Joy, B., Steele, G.: The Java Language Specifications, 2nd edn. Addison Wesley, Reading (2000)
Chen, G., Kandemir, M., Vijaykrishnan, N., Irwin, M.J., Mathiske, B., Wolczko, M.: Heap compression for memory - constrained Java environments. In: Proceedings of OOPSLA 2003, pp. 282–301 (2003)
Chen, G., Shetty, R., Kandemir, M.T., Vijaykrishnan, N., Irwin, M.J., Wolczko, M.: Tuning garbage collection for reducing memory system energy in an embedded java environment. In: ACM Transactions on Embedded Computing Systems (TECS), vol. 1, pp. 27–55 (2002)
Endo, T., Taura, K.: Reducing pause time of conservative collectors. In: Proceedings of ISMM 2002, pp. 119–131 (2002)
Haddon, B.K., Waite, W.M.: A compaction procedure for variable length storage elements. Computer Journal 10, 162–165 (1967)
Jones, R., Lins, R.: Garbage collection: algorithms for automatic dynamic memory management. John Wiley & Sons, Inc., Chichester (1996)
Sachindran, N., Moss, J.E.B., Berger, E.D.: Mc2: High-performance garbage collection for memory-constrained environments. In: Proceedings of OOPSLA 2004 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wu, G. et al. (2005). XAMM: A High-Performance Automatic Memory Management System with Memory-Constrained Designs. In: Conte, T., Navarro, N., Hwu, Wm.W., Valero, M., Ungerer, T. (eds) High Performance Embedded Architectures and Compilers. HiPEAC 2005. Lecture Notes in Computer Science, vol 3793. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11587514_10
Download citation
DOI: https://doi.org/10.1007/11587514_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-30317-6
Online ISBN: 978-3-540-32272-6
eBook Packages: Computer ScienceComputer Science (R0)