Paul Bouché, Martin von Löwis, Peter Tröger



Profiling of application memory consumption typically includes a trade-off between overhead and accuracy. We present a new approach for memory usage accounting which has a comparatively low overhead and still provides meaningful results. Our approach considers the structure of modern applications by introducing the notion of memory accounts where application modules get “charged” for memory allocations. We have applied this approach to Java application servers and discuss important implementation aspects as well as experimental results of our prototype.


  1. Ammons, G., Ball, T., and Larus, J. R. (1997). Exploiting hardware performance counters with flow and context sensitive profiling. In PLDI 7897: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, pages 85- 96, New York, NY, USA. ACM Press.
  2. Arnold, M. and Ryder, B. G. (2001). A framework for reducing the cost of instrumented code. In SIGPLAN Conference on Programming Language Design and Implementation, pages 168-179.
  3. Binder, W. and Hulaas, J. (2006). Exact and portable profiling for the JVM using bytecode instruction counting. volume 164, pages 45-64.
  4. Binder, W., Hulaas, J. G., and Villazon, A. (2001). Portable resource control in java. In Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 139-155. ACM Press.
  5. Blackburn, S. M., Garner, R., and Hoffmann, C. (2006). The DaCapo benchmarks: java benchmarking development and analysis. In OOPSLA 7806, pages 169-190, New York, NY, USA. ACM.
  6. Bouché, P. (2007). A comparative study of J2EE profiling approaches for usage within asg. Master's thesis, Hasso-Plattner-Institute for IT-Systems Engineering of the University of Potsdam.
  7. Brear, D. J., Weise, T., Wiffen, T., Yeung, K. C., Bennett, S. A. M., and Kelly, P. H. J. (2003). Search strategies for java bottleneck location by dynamic instrumentation. In Software, IEE Proceedings, volume 150, Issue: 4, pages 235- 241.
  8. Carrera, D., Guitart, J., Torres, J., Ayguade, E., and Labarta, J. (2003). Complete instrumentation requirements for performance analysis of web based technologies. In Performance Analysis of Systems and Software, 2003. ISPASS. 2003 IEEE International Symposium on, pages 166- 175.
  9. Cooper, B., Lee, H., and Zorn, B. (1998). Profbuilder: A package for rapidly building java execution profilers.
  10. Dmitriev, M. (2003). Design of JFluid: A profiling technology and tool based on dynamic bytecode instrumentation. Technical report, Sun Microsystems Inc.
  11. Factor, M., Schuster, A., and Shagin, K. (2004). Instrumentation of standard libraries in object-oriented languages: the twin class hierarchy approach. In OOPSLA 7804: Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 288-300, New York, NY, USA. ACM Press.
  12. Goldberg, A. and Havelund, K. (2003). Instrumentation of java bytecode for runtime analysis.
  13. Harkema, M., Quartel, D., van der Mei, R., and Gijsen, B. (2003). JPMT: A java performance monitoring tool. Technical Report TR-CTIT-03-25 Centre for Telematics and Information Technology, University of Twente, Enschede.
  14. Kazi, I. H., Jose, D. P., Ben-Hamida, B., Hescott, C. J., Kwok, C., Konstan, J., Lilja, D. J., and Yew, P.-C. (2000). JaViz: A client/server java profiling tool.
  15. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. G. (2001). An overview of AspectJ. In ECOOP 7801: Proceedings of the 15th European Conference on Object-Oriented Programming, pages 327-353, London, UK. Springer-Verlag.
  16. Pauw, W. D., Jensen, E., and Konuru, R. (1999). Jinsight, a visual tool for optimizing and understanding java programs. ibm corporation, research division. http:// Url last visited: 23. May 2009.
  17. Pearce, D. J., Webster, M., Berry, R., and Kelly, P. H. J. (2006). Profiling with aspectj. In Software: Practice and Experience. John Wiley & Sons, Ltd.
  18. Seragiotto, C. and Fahringer, T. (2005). Analysis of distributed java applications using dynamic instrumentation. In IEEE International Conference on Cluster Computing (Cluster 2005).
  19. Sevitsky, G., de Pauw, W., and Konuru, R. (2001). An information exploration tool for performance analysis of java programs. In TOOLS 7801: Proceedings of the Technology of Object-Oriented Languages and Systems, page 85, Washington, DC, USA. IEEE Computer Society.

Paper Citation

in Harvard Style

Bouché P., von Löwis M. and Tröger P. (2009). AGGREGATED ACCOUNTING OF MEMORY USAGE IN JAVA . In Proceedings of the 4th International Conference on Software and Data Technologies - Volume 1: ICSOFT, ISBN 978-989-674-009-2, pages 177-185. DOI: 10.5220/0002253701770185

in Bibtex Style

author={Paul Bouché and Martin von Löwis and Peter Tröger},
booktitle={Proceedings of the 4th International Conference on Software and Data Technologies - Volume 1: ICSOFT,},

in EndNote Style

JO - Proceedings of the 4th International Conference on Software and Data Technologies - Volume 1: ICSOFT,
SN - 978-989-674-009-2
AU - Bouché P.
AU - von Löwis M.
AU - Tröger P.
PY - 2009
SP - 177
EP - 185
DO - 10.5220/0002253701770185