skip to main content
research-article

Evaluating an Interactive Memory Analysis Tool: Findings from a Cognitive Walkthrough and a User Study

Published:18 June 2020Publication History
Skip Abstract Section

Abstract

Memory analysis tools are essential for finding and fixing anomalies in the memory usage of software systems (e.g., memory leaks). Although numerous tools are available, hardly any empirical studies exist on their usefulness for developers in typical usage scenarios. Instead, most evaluations are limited to reporting performance metrics. We thus conducted a study to empirically assess the usefulness of the interactive memory analysis tool AntTracks Analyzer. Specifically, we first report findings from assessing the tool using a cognitive walkthrough, guided by the Cognitive Dimensions of Notations Framework. We then present the results of a qualitative user study involving 14 subjects who used AntTracks to detect and resolve memory anomalies. We report lessons learned from the study and implications for developers of interactive memory analysis tools. We hope that our results will help researchers and developers of memory analysis tools in defining, selecting, and improving tool capabilities.

References

  1. Alain Abran, Adel Khelifi, Witold Suryn, and Ahmed Seffah. 2003. Usability Meanings and Interpretations in ISO Standards. Software Quality Journal, Vol. 11, 4 (2003), 325--338. https://doi.org/10.1023/A:1025869312943Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Edward Aftandilian, Sean Kelley, Connor Gramazio, Nathan P. Ricci, Sara L. Su, and Samuel Z. Guyer. 2010. Heapviz: interactive heap visualization for program understanding and debugging. In Proceedings of the ACM 2010 Symposium on Software Visualization, Salt Lake City, UT, USA, October 25--26, 2010. 53--62. https://doi.org/10.1145/1879211.1879222Google ScholarGoogle Scholar
  3. Audacity. 2020. Audacity: Free, open source, cross-platform audio software. https://www.audacityteam.org/Google ScholarGoogle Scholar
  4. Sebastian Baltes, Peter Schmitz, and Stephan Diehl. 2014. Linking sketches and diagrams to source code artifacts. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE-22). 743--746. https://doi.org/10.1145/2635868.2661672Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Matt Bellingham, Simon Holland, and Paul Mulholland. 2014. A cognitive dimensions analysis of interaction design for algorithmic composition software. In Proceedings of the 25th Annual Workshop of the Psychology of Programming Interest Group, PPIG 2014, Brighton, UK, June 25--27, 2014. 18. http://ppig.org/library/paper/cognitive-dimensions-analysis-interaction-design-algorithmic-composition-softwareGoogle ScholarGoogle Scholar
  6. Verena Bitto and Philipp Lengauer. 2016. Building Custom, Efficient, and Accurate Memory Monitoring Tools for Java Applications. In Proceedings of the 7th ACM/SPEC International Conference on Performance Engineering, ICPE 2016, Delft, The Netherlands, March 12--16, 2016. 321--324. https://doi.org/10.1145/2851553.2858664Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Verena Bitto, Philipp Lengauer, and Hanspeter Mö ssenbö ck. 2015. Efficient Rebuilding of Large Java Heaps from Event Traces. In Proceedings of the Principles and Practices of Programming on The Java Platform, PPPJ 2015, Melbourne, FL, USA, September 8--11, 2015. 76--89. https://doi.org/10.1145/2807426.2807433Google ScholarGoogle Scholar
  8. Alan Blackwell and Thomas Green. 2003. CHAPTER 5 - Notational Systems-The Cognitive Dimensions of Notations Framework. In HCI Models, Theories, and Frameworks. Morgan Kaufmann, San Francisco, 103 -- 133. https://doi.org/10.1016/B978--155860808--5/50005--8Google ScholarGoogle Scholar
  9. Alan F. Blackwell. 2005. Cognitive Dimensions of Notations. In 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2005), 21--24 September 2005, Dallas, TX, USA. 3. https://doi.org/10.1109/VLHCC.2005.26Google ScholarGoogle Scholar
  10. Alan F. Blackwell. 2008. Cognitive Dimensions of Notations: Understanding the Ergonomics of Diagram Use. In Diagrammatic Representation and Inference, 5th International Conference, Diagrams 2008, Herrsching, Germany, September 19--21, 2008. Proceedings. 5--8. https://doi.org/10.1007/978--3--540--87730--1_4Google ScholarGoogle Scholar
  11. Alan F. Blackwell, Carol Britton, Anna Louise Cox, Thomas R. G. Green, Corin A. Gurr, Gada F. Kadoda, Maria Kutar, Martin Loomes, Chrystopher L. Nehaniv, Marian Petre, Chris Roast, Chris Roe, Allan Wong, and R. Michael Young. 2001. Cognitive Dimensions of Notations: Design Tools for Cognitive Technology. In Cognitive Technology: Instruments of Mind, 4th International Conference, CT 2001, Warwick, UK, August 6--9, 2001, Proceedings. 325--341. https://doi.org/10.1007/3--540--44617--6_31Google ScholarGoogle Scholar
  12. Michael D. Bond and Kathryn S. McKinley. 2006. Bell: bit-encoding online memory leak detection. In Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2006, San Jose, CA, USA, October 21--25, 2006. 61--72. https://doi.org/10.1145/1168857.1168866Google ScholarGoogle Scholar
  13. Grady Booch, James E. Rumbaugh, and Ivar Jacobson. 1999. The Unified Modeling Language User Guide. J. Database Manag., Vol. 10, 4 (1999), 51--52.Google ScholarGoogle Scholar
  14. Eric Bruneton, Eugene Kuleshov, Andrei Loskutov, and Rémi Forax. 2020. ASM. https://asm.ow2.io/Google ScholarGoogle Scholar
  15. Eric Bruneton, Romain Lenglet, and Thierry Coupaye. 2002. ASM: a code manipulation tool to implement adaptable systems. Adaptable and extensible component systems, Vol. 30, 19 (2002).Google ScholarGoogle Scholar
  16. Kung Chen and Ju-Bing Chen. 2007. Aspect-Based Instrumentation for Locating Memory Leaks in Java Programs. In 31st Annual International Computer Software and Applications Conference, COMPSAC 2007, Beijing, China, July 24--27, 2007. Volume 2. 23--28. https://doi.org/10.1109/COMPSAC.2007.79Google ScholarGoogle Scholar
  17. Shigeru Chiba. 2020. Javassist. https://www.javassist.org/Google ScholarGoogle Scholar
  18. Shigeru Chiba and Muga Nishizawa. 2003. An Easy-to-Use Toolkit for Efficient Java Bytecode Translators. In Generative Programming and Component Engineering, Second International Conference, GPCE 2003, Erfurt, Germany, September 22--25, 2003, Proceedings. 364--376. https://doi.org/10.1007/978--3--540--39815--8_22Google ScholarGoogle Scholar
  19. Adriana E. Chis. 2008. Automatic detection of memory anti-patterns. In Companion to the 23rd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2008, October 19--13, 2007, Nashville, TN, USA. 925--926. https://doi.org/10.1145/1449814.1449911Google ScholarGoogle Scholar
  20. Adriana E. Chis, Nick Mitchell, Edith Schonberg, Gary Sevitsky, Patrick O'Sullivan, Trevor Parsons, and John Murphy. 2011. Patterns of Memory Inefficiency. In ECOOP 2011 - Object-Oriented Programming - 25th European Conference, Lancaster, UK, July 25--29, 2011 Proceedings. 383--407. https://doi.org/10.1007/978--3--642--22655--7_18Google ScholarGoogle Scholar
  21. Jü rgen Cito, Philipp Leitner, Christian Bosshard, Markus Knecht, Genc Mazlami, and Harald C. Gall. 2018. PerformanceHat: augmenting source code with runtime performance traces in the IDE. In Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings (ICSE 2018). 41--44. https://doi.org/10.1145/3183440.3183481Google ScholarGoogle Scholar
  22. Karl Cox. 2000. Cognitive Dimensions of Use Cases: Feedback from a student questionnaire. In Proceedings of the 12th Annual Workshop of the Psychology of Programming Interest Group, PPIG 2000, Cosenza, Italy, April 10--13, 2000. 8. http://ppig.org/library/paper/cognitive-dimensions-use-cases-feedback-student-questionnaireGoogle ScholarGoogle Scholar
  23. Fred D. Davis. 1989. Perceived Usefulness, Perceived Ease of Use, and User Acceptance of Information Technology. MIS Quarterly, Vol. 13, 3 (1989), 319--340. http://misq.org/perceived-usefulness-perceived-ease-of-use-and-user-acceptance-of-information-technology.htmlGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  24. Wim De Pauw, Erik Jensen, Nick Mitchell, Gary Sevitsky, John Vlissides, and Jeaha Yang. 2002. Visualizing the Execution of Java Programs. In Software Visualization. 151--162. https://doi.org/10.1007/3--540--45875--1_12Google ScholarGoogle Scholar
  25. Wim De Pauw and Gary Sevitsky. 2000. Visualizing reference patterns for solving memory leaks in Java. Concurrency - Practice and Experience, Vol. 12, 14 (2000), 1431--1454. https://doi.org/10.1002/1096--9128(20001210)12:14<1431::AID-CPE542>3.0.CO;2--2Google ScholarGoogle ScholarCross RefCross Ref
  26. D. Christopher Dryer. 1997. Wizards, Guides, and beyond: Rational and Empirical Methods for Selecting Optimal Intelligent User Interface Agents. In Proceedings of the 2nd International Conference on Intelligent User Interfaces, IUI 1997, Orlando, Florida, USA, January 6--9, 1997. 265--268. https://doi.org/10.1145/238218.238347Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Dynatrace. 2017. Demo Applications: easyTravel. https://community.dynatrace.com/community/display/DL/Demo+Applications+-+easyTravelGoogle ScholarGoogle Scholar
  28. Dynatrace. 2020. Dynatrace. https://www.dynatrace.com/Google ScholarGoogle Scholar
  29. Eclipse Foundation. 2020. Eclipse Memory Analyzer (MAT). https://www.eclipse.org/mat/Google ScholarGoogle Scholar
  30. ej technologies. 2020. JProfiler. https://www.ej-technologies.com/products/jprofiler/overview.htmlGoogle ScholarGoogle Scholar
  31. Michael D. Ernst. 2003. Static and Dynamic Analysis: Synergy and Duality. In Workshop on Dynamic Analysis (WODA '03). Portland, OR, USA, 24--27.Google ScholarGoogle Scholar
  32. Florian Fittkau, Phil Stelzer, and Wilhelm Hasselbring. 2014. Live Visualization of Large Software Landscapes for Ensuring Architecture Conformance. In Proceedings of the ECSA 2014 Workshops & Tool Demos Track, European Conference on Software Architecture, 2014, Vienna, Austria. 28:1--28:4. https://doi.org/10.1145/2642803.2642831Google ScholarGoogle Scholar
  33. Eelke Folmer and Jan Bosch. 2003. Usability patterns in software architecture. In Proc. of the 10th Int'l Conf. on Human-Computer Interaction (HCII '03). 93--97.Google ScholarGoogle Scholar
  34. Tak-Chung Fu. 2011. A review on time series data mining. Eng. Appl. Artif. Intell., Vol. 24, 1 (2011), 164--181. https://doi.org/10.1016/j.engappai.2010.09.007Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Mohammadreza Ghanavati, Diego Costa, Janos Seboek, David Lo, and Artur Andrzejak. 2020. Memory and resource leak defects and their repairs in Java projects. Empirical Software Engineering, Vol. 25, 1 (2020), 678--718. https://doi.org/10.1007/s10664-019-09731--8Google ScholarGoogle ScholarCross RefCross Ref
  36. David Gilbert. 2020. JFreeChart. http://www.jfree.org/jfreechart/Google ScholarGoogle Scholar
  37. Google. 2020. Android Studio. https://developer.android.com/studioGoogle ScholarGoogle Scholar
  38. Bernhard Gö schlberger and Peter A. Bruck. 2017. Gamification in mobile and workplace integrated microlearning. In Proceedings of the 19th International Conference on Information Integration and Web-based Applications & Services, iiWAS 2017, Salzburg, Austria, December 4--6, 2017. 545--552. https://doi.org/10.1145/3151759.3151795Google ScholarGoogle Scholar
  39. Thomas Green. 2000. Instructions and Descriptions: some cognitive aspects of programming and similar activities. In Proceedings of the working conference on Advanced visual interfaces, AVI 2000, Palermo, Italy, May 23--26, 2000. 21--28. https://doi.org/10.1145/345513.345233Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Thomas Green and Alan Blackwell. 1998. Cognitive Dimensions of Information Artefacts: a tutorial. https://www.cl.cam.ac.uk/ afb21/CognitiveDimensions/CDtutorial.pdfGoogle ScholarGoogle Scholar
  41. T. R. G. Green. 1989. Cognitive Dimensions of Notations. In Proceedings of the Fifth Conference of the British Computer Society, Human-Computer Interaction Specialist Group on People and Computers V. Cambridge University Press, New York, NY, USA, 443--460. http://dl.acm.org/citation.cfm?id=92968.93015Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Ted Hagos. 2019. Android Studio Profiler. In Android Studio IDE Quick Reference. Springer, 73--82.Google ScholarGoogle Scholar
  43. Juho Hamari, Jonna Koivisto, and Harri Sarsa. 2014. Does Gamification Work? - A Literature Review of Empirical Studies on Gamification. In 47th Hawaii International Conference on System Sciences, HICSS 2014, Waikoloa, HI, USA, January 6--9, 2014. 3025--3034. https://doi.org/10.1109/HICSS.2014.377Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Matthias Hauswirth and Trishul M. Chilimbi. 2004. Low-overhead memory leak detection using adaptive statistical profiling. In Proceedings of the 11th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2004, Boston, MA, USA, October 7--13, 2004. 156--164. https://doi.org/10.1145/1024393.1024412Google ScholarGoogle Scholar
  45. Matthew Hertz, Stephen M. Blackburn, J. Eliot B. Moss, Kathryn S. McKinley, and Darko Stefanovic. 2006. Generating object lifetime traces with Merlin. ACM Trans. Program. Lang. Syst., Vol. 28, 3 (2006), 476--516. https://doi.org/10.1145/1133651.1133654Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Trent Hill, James Noble, and John Potter. 2002. Scalable Visualizations of Object-Oriented Systems with Ownership Trees. J. Vis. Lang. Comput., Vol. 13, 3 (2002), 319--339. https://doi.org/10.1006/jvlc.2002.0238Google ScholarGoogle ScholarCross RefCross Ref
  47. Andreas Holzinger. 2005. Usability engineering methods for software developers. Commun. ACM, Vol. 48, 1 (2005), 71--74. https://doi.org/10.1145/1039539.1039541Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Martin Höst, Björn Regnell, and Claes Wohlin. 2000. Using Students as Subjects--A Comparative Study of Students and Professionals in Lead-Time Impact Assessment. Empirical Software Engineering, Vol. 5, 3 (01 Nov 2000), 201--214.Google ScholarGoogle Scholar
  49. Michal Hucko, Ladislav Gazo, Peter Simún, Matej Valky, Róbert Móro, Jakub Simko, and Mária Bieliková. 2019. YesElf: Personalized Onboarding for Web Applications. In Adjunct Publication of the 27th Conference on User Modeling, Adaptation and Personalization, UMAP 2019, Larnaca, Cyprus, June 09--12, 2019. 39--44. https://doi.org/10.1145/3314183.3324978Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Monique W. M. Jaspers, Thiemo Steen, Cor van den Bos, and Maud M. Geenen. 2004. The think aloud method: a guide to user interface design. I. J. Medical Informatics, Vol. 73, 11--12 (2004), 781--795. https://doi.org/10.1016/j.ijmedinf.2004.08.003Google ScholarGoogle Scholar
  51. JavaMelody. 2020. JavaMelody : monitoring of JavaEE applications (GitHub). https://github.com/javamelody/javamelody/wikiGoogle ScholarGoogle Scholar
  52. Kamil Jezek and Richard Lipka. 2017. Antipatterns causing memory bloat: A case study. In IEEE 24th International Conference on Software Analysis, Evolution and Reengineering, SANER 2017, Klagenfurt, Austria, February 20--24, 2017. 306--315. https://doi.org/10.1109/SANER.2017.7884631Google ScholarGoogle ScholarCross RefCross Ref
  53. Zhen Ming Jiang, Ahmed E. Hassan, Gilbert Hamann, and Parminder Flora. 2009. Automated performance analysis of load tests. In 25th IEEE International Conference on Software Maintenance (ICSM 2009), September 20--26, 2009, Edmonton, Alberta, Canada. 125--134. https://doi.org/10.1109/ICSM.2009.5306331Google ScholarGoogle ScholarCross RefCross Ref
  54. Maria Jump and Kathryn S. McKinley. 2010. Detecting memory leaks in managed languages with Cork. Softw., Pract. Exper., Vol. 40, 1 (2010), 1--22. https://doi.org/10.1002/spe.945Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Reiner Jung and Marc Adolf. 2018. The JPetStore Suite: A concise Experiment Setup for Research. In Proc. of the 9th Symposium on Software Performance (SSP '18).Google ScholarGoogle Scholar
  56. Reiner Jung, Marc Adolf, and Christoph Dornieden. 2017. Towards Extracting Realistic User Behavior Models. Softwaretechnik-Trends, Vol. 37, 3 (2017). http://pi.informatik.uni-siegen.de/stt/37_3/./01_Fachgruppenberichte/SSP2017_proceedings/03_Towards_Extracting_Realistic_User_Behavior_Models.pdfGoogle ScholarGoogle Scholar
  57. Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. 2001. An Overview of AspectJ. In ECOOP 2001 - Object-Oriented Programming, 15th European Conference, Budapest, Hungary, June 18--22, 2001, Proceedings. 327--353. https://doi.org/10.1007/3--540--45337--7_18Google ScholarGoogle Scholar
  58. Kieker Project. 2013. Kieker web site. http://kieker-monitoring.net/Google ScholarGoogle Scholar
  59. A. J. Ko, Thomas D. LaToza, and Margaret M. Burnett. 2015. A practical guide to controlled experiments of software engineering tools with human participants. Empirical Software Engineering, Vol. 20, 1 (2015), 110--141. https://doi.org/10.1007/s10664-013--9279--3Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Steinar Kristoffersen. 2008. Learnability and Robustness of User Interfaces - Towards a Formal Analysis of Usability Design Principles. In Proceedings of the Third International Conference on Software and Data Technologies, Volume SE/MUSE/GSDCA (ICSOFT'08), José Cordeiro, Boris Shishkov, Alpesh Ranchordas, and Markus Helfert (Eds.). 261--268.Google ScholarGoogle Scholar
  61. Lisa Maria Kritzinger, Thomas Krismayer, Rick Rabiser, and Paul Grünbacher. 2019. A User Study on the Usefulness of Visualization Support for Requirements Monitoring. In 7th IEEE Working Conference on Software Visualization. IEEE, Cleveland, Ohio, USA, 56--66. https://doi.org/10.1109/VISSOFT.2019.00015Google ScholarGoogle ScholarCross RefCross Ref
  62. Eugene Kuleshov. 2007. Using the ASM framework to implement common Java bytecode transformation patterns. Aspect-Oriented Software Development (2007).Google ScholarGoogle Scholar
  63. Maria Kutar, Carol Britton, and Jonathan Wilson. 2000. Cognitive Dimensions: An experience report. In Proceedings of the 12th Annual Workshop of the Psychology of Programming Interest Group, PPIG 2000, Cosenza, Italy, April 10--13, 2000. 7. http://ppig.org/library/paper/cognitive-dimensions-experience-reportGoogle ScholarGoogle Scholar
  64. Maria Kutar, Chrystopher L. Nehaniv, Carol Britton, and Sara Jones. 2001. The Cognitive Dimensions of an Artifact vis-à -vis Individual Human Users: Studies with Notations for the Temporal Specification of Interactive Systems. In Cognitive Technology: Instruments of Mind, 4th International Conference, CT 2001, Warwick, UK, August 6--9, 2001, Proceedings. 342--355. https://doi.org/10.1007/3--540--44617--6_32Google ScholarGoogle Scholar
  65. Philipp Lengauer, Verena Bitto, Stefan Fitzek, Markus Weninger, and Hanspeter Mö ssenbö ck. 2016b. Efficient Memory Traces with Full Pointer Information. In Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, Lugano, Switzerland, August 29 - September 2, 2016. 4:1--4:11. https://doi.org/10.1145/2972206.2972220Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Philipp Lengauer, Verena Bitto, and Hanspeter Mössenböck. 2015. Accurate and Efficient Object Tracing for Java Applications. In Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering, Austin, TX, USA, January 31 - February 4, 2015. 51--62. https://doi.org/10.1145/2668930.2688037Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Philipp Lengauer, Verena Bitto, and Hanspeter Mössenböck. 2016a. Efficient and Viable Handling of Large Object Traces. In Proceedings of the 7th ACM/SPEC International Conference on Performance Engineering, ICPE 2016, Delft, The Netherlands, March 12--16, 2016. 249--260. https://doi.org/10.1145/2851553.2851555Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Philipp Lengauer, Verena Bitto, Hanspeter Mössenböck, and Markus Weninger. 2017. A Comprehensive Java Benchmark Study on Memory and Garbage Collection Behavior of DaCapo, DaCapo Scala, and SPECjvm2008. In Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering, ICPE 2017, L'Aquila, Italy, April 22--26, 2017. 3--14. https://doi.org/10.1145/3030207.3030211Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Thomas Lengauer and Robert Endre Tarjan. 1979. A Fast Algorithm for Finding Dominators in a Flowgraph. ACM Trans. Program. Lang. Syst., Vol. 1, 1 (1979), 121--141. https://doi.org/10.1145/357062.357071Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Beinan Li, John Ashley Burgoyne, and Ichiro Fujinaga. 2006. Extending Audacity for Audio Annotation. In ISMIR 2006, 7th International Conference on Music Information Retrieval, Victoria, Canada, 8--12 October 2006, Proceedings. 379--380.Google ScholarGoogle Scholar
  71. Joao Paulo Magalhaes and Luis Moura Silva. 2013. Adaptive monitoring of web-based applications: a performance study. In Proceedings of the 28th Annual ACM Symposium on Applied Computing, SAC '13, Coimbra, Portugal, March 18--22, 2013. 471--478. https://doi.org/10.1145/2480362.2480454Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. David Mapelsden, John Hosking, and John Grundy. 2002. Design Pattern Modelling and Instantiation Using DPML. In Proceedings of the Fortieth International Conference on Tools Pacific: Objects for Internet, Mobile and Embedded Applications (CRPIT '02). Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 3--11. http://dl.acm.org/citation.cfm?id=564092.564094Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Mark Marron, César Sánchez, Zhendong Su, and Manuel Fahndrich. 2013. Abstracting Runtime Heaps for Program Understanding. IEEE Trans. Software Eng., Vol. 39, 6 (2013), 774--786. https://doi.org/10.1109/TSE.2012.69Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Karen L. McGraw and Bruce A. McGraw. 1997. Wizards, Coaches, Advisors, and More: A Performance Support Primer. In Human Factors in Computing Systems, CHI '97: Looking to the Future, Extended Abstracts, Atlanta, Georgia, USA, March 22--27, 1997. 152--153. https://doi.org/10.1145/1120212.1120318Google ScholarGoogle Scholar
  75. Nick Mitchell. 2006. The Runtime Structure of Object Ownership. In ECOOP 2006 - Object-Oriented Programming, 20th European Conference, Nantes, France, July 3--7, 2006, Proceedings. 74--98. https://doi.org/10.1007/11785477_5Google ScholarGoogle Scholar
  76. Nick Mitchell, Edith Schonberg, and Gary Sevitsky. 2009. Making Sense of Large Heaps. In ECOOP 2009 - Object-Oriented Programming, 23rd European Conference, Genoa, Italy, July 6--10, 2009. Proceedings. 77--97. https://doi.org/10.1007/978--3--642-03013-0_5Google ScholarGoogle Scholar
  77. Nick Mitchell, Edith Schonberg, and Gary Sevitsky. 2010. Four Trends Leading to Java Runtime Bloat. IEEE Software, Vol. 27, 1 (2010), 56--63. https://doi.org/10.1109/MS.2010.7Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Nick Mitchell and Gary Sevitsky. 2003. LeakBot: An Automated and Lightweight Tool for Diagnosing Memory Leaks in Large Java Applications. In ECOOP 2003 - Object-Oriented Programming, 17th European Conference, Darmstadt, Germany, July 21--25, 2003, Proceedings. 351--377. https://doi.org/10.1007/978--3--540--45070--2_16Google ScholarGoogle ScholarCross RefCross Ref
  79. Nick Mitchell and Gary Sevitsky. 2007. The causes of bloat, the limits of health. In Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2007, October 21--25, 2007, Montreal, Quebec, Canada. 245--260. https://doi.org/10.1145/1297027.1297046Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. MyBatis. 2016. JPetStore. http://mybatis.org/jpetstore-6/Google ScholarGoogle Scholar
  81. Nicholas Nethercote and Julian Seward. 2003. Valgrind: A Program Supervision Framework. Electr. Notes Theor. Comput. Sci., Vol. 89, 2 (2003), 44--66. https://doi.org/10.1016/S1571-0661(04)81042--9Google ScholarGoogle ScholarCross RefCross Ref
  82. Jakob Nielsen. 1993. Usability engineering. Academic Press.Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Mie Nørgaard and Kasper Hornbæk. 2006. What do usability evaluators do in practice?: an explorative study of think-aloud testing. In Proceedings of the Conference on Designing Interactive Systems,University Park, PA, USA, June 26--28, 2006. 209--218. https://doi.org/10.1145/1142405.1142439Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. Oracle. 2014. Java Flight Recorder. https://docs.oracle.com/javacomponents/jmc-5--4/jfr-runtime-guide/about.htm#JFRUH170Google ScholarGoogle Scholar
  85. Oracle. 2018a. JConsole. https://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.htmlGoogle ScholarGoogle Scholar
  86. Oracle. 2018b. jmap. https://docs.oracle.com/javase/7/docs/technotes/tools/share/jmap.htmlGoogle ScholarGoogle Scholar
  87. Oracle. 2020 a. The HotSpot Group. http://openjdk.java.net/groups/hotspot/Google ScholarGoogle Scholar
  88. Oracle. 2020 b. HPROF: A Heap/CPU Profiling Tool. https://docs.oracle.com/javase/8/docs/technotes/samples/hprof.htmlGoogle ScholarGoogle Scholar
  89. Oracle. 2020 c. Java Mission Control. https://openjdk.java.net/projects/jmc/Google ScholarGoogle Scholar
  90. Oracle. 2020 d. JVM Tool Interface Version 1.2. https://docs.oracle.com/javase/8/docs/platform/jvmti/jvmti.htmlGoogle ScholarGoogle Scholar
  91. Oracle. 2020 e. VisualVM: All-in-One Java Troubleshooting Tool. https://visualvm.github.io/Google ScholarGoogle Scholar
  92. Kelly O'Hair. 2004. HPROF: a Heap/CPU profiling tool in J2SE 5.0. Sun Developer Network, Developer Technical Articles & Tips, Vol. 28 (2004).Google ScholarGoogle Scholar
  93. Aleksandar Prokopec, Andrea Rosà, David Leopoldseder, Gilles Duboscq, Petr Truma, Martin Studener, Lubomir Bulej, Yudi Zheng, Alex Villazón, Doug Simon, Thomas Würthinger, and Walter Binder. 2019. Renaissance: Benchmarking Suite for Parallel Applications on the JVM. In Proc. of the 40th ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI 2019).Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. Rick Rabiser, Paul Grü nbacher, and Martin Lehofer. 2012. A qualitative study on user guidance capabilities in product configuration tools. In IEEE/ACM International Conference on Automated Software Engineering, ASE'12, Essen, Germany, September 3--7, 2012. 110--119. https://doi.org/10.1145/2351676.2351693Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. Rick Rabiser, Michael Vierhauser, and Paul Grü nbacher. 2016. Assessing the usefulness of a requirements monitoring tool: a study involving industrial software engineers. In Proceedings of the 38th International Conference on Software Engineering, ICSE 2016, Austin, TX, USA, May 14--22, 2016 - Companion Volume. 122--131. https://doi.org/10.1145/2889160.2889234Google ScholarGoogle ScholarDigital LibraryDigital Library
  96. Derek Rayside and Lucy Mendel. 2007. Object ownership profiling: a technique for finding and fixing memory leaks. In 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2007), November 5--9, 2007, Atlanta, Georgia, USA. 194--203. https://doi.org/10.1145/1321631.1321661Google ScholarGoogle ScholarDigital LibraryDigital Library
  97. Steven P. Reiss. 2009. Visualizing the Java heap to detect memory problems. In Proceedings of the 5th IEEE International Workshop on Visualizing Software for Understanding and Analysis, VISSOFT 2009, Edmonton, Alberta, Canada, September 25, 2009. 73--80. https://doi.org/10.1109/VISSOF.2009.5336418Google ScholarGoogle ScholarCross RefCross Ref
  98. Jan Renz, Thomas Staubitz, Jaqueline Pollack, and Christoph Meinel. 2014. Improving the Onboarding User Experience in MOOCs. In Proc. of the 6th Int'l Conf. on Education and New Learning Technologies (EDULEARN '14).Google ScholarGoogle Scholar
  99. Nathan P. Ricci, Samuel Z. Guyer, and J. Eliot B. Moss. 2011. Elephant Tracks: generating program traces with object death records. In Proceedings of the 9th International Conference on Principles and Practice of Programming in Java, PPPJ 2011, Kongens Lyngby, Denmark, August 24--26, 2011. ACM, 139--142. https://doi.org/10.1145/2093157.2093178Google ScholarGoogle ScholarDigital LibraryDigital Library
  100. Nathan P. Ricci, Samuel Z. Guyer, and J. Eliot B. Moss. 2013. Elephant tracks: portable production of complete and precise gc traces. In International Symposium on Memory Management, ISMM 2013, Seattle, WA, USA, June 20, 2013. ACM, 109--118. https://doi.org/10.1145/2491894.2466484Google ScholarGoogle ScholarDigital LibraryDigital Library
  101. Per Runeson and Martin Höst. 2009. Guidelines for conducting and reporting case study research in software engineering. Empirical Software Engineering, Vol. 14, 2 (2009), 131--164. https://doi.org/10.1007/s10664-008--9102--8Google ScholarGoogle ScholarDigital LibraryDigital Library
  102. Anthony Savidis and Nikos Koutsopoulos. 2011. Interactive Object Graphs for Debuggers with Improved Visualization, Inspection and Configuration Features. In Advances in Visual Computing - 7th International Symposium, ISVC 2011, Las Vegas, NV, USA, September 26--28, 2011. Proceedings, Part I. 259--268. https://doi.org/10.1007/978--3--642--24028--7_24Google ScholarGoogle Scholar
  103. Roger C Schank, Tamara R Berman, and Kimberli A Macpherson. 1999. Learning by doing. Instructional-design theories and models: A new paradigm of instructional theory, Vol. 2, 2 (1999), 161--181.Google ScholarGoogle Scholar
  104. Carolyn B. Seaman. 1999. Qualitative Methods in Empirical Studies of Software Engineering. IEEE Trans. Software Eng., Vol. 25, 4 (1999), 557--572. https://doi.org/10.1109/32.799955Google ScholarGoogle ScholarDigital LibraryDigital Library
  105. Ben Shneiderman. 1996. The Eyes Have It: A Task by Data Type Taxonomy for Information Visualizations. In Proceedings of the 1996 IEEE Symposium on Visual Languages, Boulder, Colorado, USA, September 3--6, 1996. IEEE Computer Society, 336--343. https://doi.org/10.1109/VL.1996.545307Google ScholarGoogle ScholarDigital LibraryDigital Library
  106. Connie U. Smith and Lloyd G. Williams. 2000. Software performance antipatterns. In Second International Workshop on Software and Performance, WOSP 2000, Ottawa, Canada, September 17--20, 2000. 127--136. https://doi.org/10.1145/350391.350420Google ScholarGoogle Scholar
  107. Ken Soong, Xin Fu, and Yang Zhou. 2018. Optimizing New User Experience in Online Services. In 5th IEEE International Conference on Data Science and Advanced Analytics, DSAA 2018, Turin, Italy, October 1--3, 2018. 442--449. https://doi.org/10.1109/DSAA.2018.00057Google ScholarGoogle Scholar
  108. Vladimir Sor, Plumbr Ou, Tarvo Treier, and Satish Narayana Srirama. 2013. Improving Statistical Approach for Memory Leak Detection Using Machine Learning. In 2013 IEEE International Conference on Software Maintenance, Eindhoven, The Netherlands, September 22--28, 2013. 544--547. https://doi.org/10.1109/ICSM.2013.92Google ScholarGoogle Scholar
  109. Vladimir Sor and Satish Narayana Srirama. 2014. Memory leak detection in Java: Taxonomy and classification of approaches. Journal of Systems and Software, Vol. 96 (2014), 139--151. https://doi.org/10.1016/j.jss.2014.06.005Google ScholarGoogle ScholarCross RefCross Ref
  110. Doug Tidwell and Jeanette Fuccella. 1997. TaskGuides: Instant Wizards on the Web. In The 15th Annual International Conference of Computer Documentation: Crossroads in Communication, SIGDOC 1997, Salt Lake City, Utah, USA, October 19--22, 1997. 263--272. https://doi.org/10.1145/263367.263401Google ScholarGoogle Scholar
  111. Valgrind Developers. 2020. Valgrind. http://valgrind.org/Google ScholarGoogle Scholar
  112. André van Hoorn, Matthias Rohr, Wilhelm Hasselbring, Jan Waller, Jens Ehlers, Sören Frey, and Dennis Kieselhorst. 2009. Continuous Monitoring of Software Services: Design and Application of the Kieker Framework. Technical Report TR-0921. Department of Computer Science, Kiel University, Germany. 27 pages pages.Google ScholarGoogle Scholar
  113. André van Hoorn, Jan Waller, and Wilhelm Hasselbring. 2012. Kieker: a framework for application performance monitoring and dynamic software analysis. In Third Joint WOSP/SIPEW International Conference on Performance Engineering, ICPE'12, Boston, MA, USA - April 22 - 25, 2012. 247--248. https://doi.org/10.1145/2188286.2188326Google ScholarGoogle ScholarDigital LibraryDigital Library
  114. Jinshui Wang, Xin Peng, Zhenchang Xing, and Wenyun Zhao. 2011. An exploratory study of feature location process: Distinct phases, recurring patterns, and elementary actions. In IEEE 27th International Conference on Software Maintenance, ICSM 2011, Williamsburg, VA, USA, September 25--30, 2011. 213--222. https://doi.org/10.1109/ICSM.2011.6080788Google ScholarGoogle ScholarDigital LibraryDigital Library
  115. Markus Weninger et al. 2020. AntTracks - Memory Monitoring using Accurate and Efficient Object Tracing for Java Applications. http://mevss.jku.at/AntTracksGoogle ScholarGoogle Scholar
  116. Markus Weninger, Elias Gander, and Hanspeter Mössenböck. 2018a. Utilizing object reference graphs and garbage collection roots to detect memory leaks in offline memory monitoring. In Proceedings of the 15th International Conference on Managed Languages & Runtimes, ManLang 2018, Linz, Austria, September 12--14, 2018. 14:1--14:13. https://doi.org/10.1145/3237009.3237023Google ScholarGoogle ScholarDigital LibraryDigital Library
  117. Markus Weninger, Elias Gander, and Hanspeter Mössenböck. 2019 a. Analyzing Data Structure Growth Over Time to Facilitate Memory Leak Detection. In Proceedings of the 2019 ACM/SPEC International Conference on Performance Engineering, ICPE 2019, Mumbai, India, April 7--11, 2019. 273--284. https://doi.org/10.1145/3297663.3310297Google ScholarGoogle ScholarDigital LibraryDigital Library
  118. Markus Weninger, Elias Gander, and Hanspeter Mössenböck. 2019 b. Detection of suspicious time windows in memory monitoring. In Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes, MPLR 2019, Athens, Greece, October 21--22, 2019. 95--104. https://doi.org/10.1145/3357390.3361025Google ScholarGoogle ScholarDigital LibraryDigital Library
  119. Markus Weninger, Elias Gander, and Hanspeter Mössenböck. 2018b. Analyzing the Evolution of Data Structures Over Time in Trace-Based Offline Memory Monitoring. In Proc. of the 9th Symposium on Software Performance (SSP '18).Google ScholarGoogle Scholar
  120. Markus Weninger, Paul Grünbacher, Huihui Zhang, Tao Yue, and Shaukat Ali. 2018c. Tool Support for Restricted Use Case Specification: Findings from a Controlled Experiment. In 25th Asia-Pacific Software Engineering Conference, APSEC 2018, Nara, Japan, December 4--7, 2018. 21--30. https://doi.org/10.1109/APSEC.2018.00016Google ScholarGoogle ScholarCross RefCross Ref
  121. Markus Weninger, Philipp Lengauer, and Hanspeter Mössenböck. 2017. User-centered Offline Analysis of Memory Monitoring Data. In Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering, ICPE 2017, L'Aquila, Italy, April 22--26, 2017. 357--360. https://doi.org/10.1145/3030207.3030236Google ScholarGoogle ScholarDigital LibraryDigital Library
  122. Markus Weninger, Lukas Makor, Elias Gander, and Hanspeter Mössenböck. 2019 d. AntTracks TrendViz: Configurable Heap Memory Visualization Over Time. In Companion of the 2019 ACM/SPEC International Conference on Performance Engineering, ICPE 2019, Mumbai, India, April 07--11, 2019. 29--32. https://doi.org/10.1145/3302541.3313100Google ScholarGoogle Scholar
  123. Markus Weninger, Lukas Makor, and Hanspeter Mössenböck. 2019 c. Memory Leak Visualization using Evolving Software Cities. In Proc. of the 10th Symposium on Software Performance (SSP '19).Google ScholarGoogle Scholar
  124. Markus Weninger and Hanspeter Mössenböck. 2018. User-defined Classification and Multi-level Grouping of Objects in Memory Monitoring. In Proceedings of the 2018 ACM/SPEC International Conference on Performance Engineering, ICPE 2018, Berlin, Germany, April 09--13, 2018. 115--126. https://doi.org/10.1145/3184407.3184412Google ScholarGoogle ScholarDigital LibraryDigital Library
  125. Nicholas P. Wilde. 1996. Using Cognitive Dimensions in the Classroom as a Discussion Tool for Visual Language Design. In Conference on Human Factors in Computing Systems: Common Ground, CHI '96, Vancouver, BC, Canada, April 13--18, 1996, Conference Companion. ACM, 187--188. https://doi.org/10.1145/257089.257252Google ScholarGoogle ScholarDigital LibraryDigital Library
  126. Guoqing (Harry) Xu, Nick Mitchell, Matthew Arnold, Atanas Rountev, Edith Schonberg, and Gary Sevitsky. 2014. Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing. ACM Trans. Softw. Eng. Methodol., Vol. 23, 3 (2014), 23:1--23:50. https://doi.org/10.1145/2560047Google ScholarGoogle ScholarDigital LibraryDigital Library
  127. Guoqing (Harry) Xu, Nick Mitchell, Matthew Arnold, Atanas Rountev, and Gary Sevitsky. 2010. Software bloat analysis: finding, removing, and preventing performance problems in modern large-scale object-oriented applications. In Proceedings of the Workshop on Future of Software Engineering Research, FoSER 2010, at the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2010, Santa Fe, NM, USA, November 7--11, 2010. 421--426. https://doi.org/10.1145/1882362.1882448Google ScholarGoogle ScholarDigital LibraryDigital Library
  128. Guoqing (Harry) Xu and Atanas Rountev. 2008. Precise memory leak detection for java software using container profiling. In 30th International Conference on Software Engineering (ICSE 2008), Leipzig, Germany, May 10--18, 2008. 151--160. https://doi.org/10.1145/1368088.1368110Google ScholarGoogle ScholarDigital LibraryDigital Library
  129. Guoqing (Harry) Xu and Atanas Rountev. 2010. Detecting inefficiently-used containers to avoid bloat. In Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2010, Toronto, Ontario, Canada, June 5--10, 2010. 160--173. https://doi.org/10.1145/1806596.1806616Google ScholarGoogle ScholarDigital LibraryDigital Library
  130. S. Zaman, B. Adams, and A. E. Hassan. 2012. A Large Scale Empirical Study on User-Centric Performance Analysis. In 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation. 410--419. https://doi.org/10.1109/ICST.2012.121Google ScholarGoogle ScholarDigital LibraryDigital Library
  131. Thomas Zimmermann and Andreas Zeller. 2001. Visualizing Memory Graphs. In Software Visualization, International Seminar Dagstuhl Castle, Germany, May 20--25, 2001, Revised Lectures. 191--204. https://doi.org/10.1007/3--540--45875--1_15Google ScholarGoogle Scholar

Index Terms

  1. Evaluating an Interactive Memory Analysis Tool: Findings from a Cognitive Walkthrough and a User Study

                        Recommendations

                        Comments

                        Login options

                        Check if you have access through your login credentials or your institution to get full access on this article.

                        Sign in

                        Full Access

                        PDF Format

                        View or Download as a PDF file.

                        PDF

                        eReader

                        View online with eReader.

                        eReader
                        About Cookies On This Site

                        We use cookies to ensure that we give you the best experience on our website.

                        Learn more

                        Got it!