Markus Weninger,
"Detection and Analysis of Memory Anomalies in Managed Languages Using Trace-Based Memory Monitoring"
, Eigenverlag, 2021
Original Titel:
Detection and Analysis of Memory Anomalies in Managed Languages Using Trace-Based Memory Monitoring
Sprache des Titels:
Englisch
Original Kurzfassung:
Even though modern programming languages such as Java employ automatic
garbage collection to free programmers from the error-prone task of manual
memory management, anomalies such as memory leaks can still occur. Such
anomalies can dramatically impact an application?s performance and can
even lead to crashes. Thus, smart tool support is essential to help developers in understanding the memory behavior of complex software systems. Despite this, most state-of-the-art memory monitoring tools rely on rather limited heap dumps, i.e., they inspect the heap only at a few single points in time. While such approaches may reveal obvious issues, they often do not provide enough details to drill down to the root cause of more complex problems. To tackle this limitation, we propose the use of memory traces, i.e., continuous recordings of memory events such as object allocations or garbage collection operations. Such memory traces enable us to reconstruct detailed information about the monitored application?s memory evolution over time. Existing works mainly focus on the (efficient) collection of informationrich memory traces and mostly collect traces for very specific use cases. They often miss discussions of the ?big picture?, i.e., the flexibility of memory traces and how they can be used for various kinds of memory analyses. This thesis revolves around the question how general-purpose memory traces can be processed and leveraged in memory monitoring tools to improve the (semi-automatic) detection and analysis of memory anomalies. It covers data structures and algorithms for memory trace processing, novel anomaly analysis approaches such as automatic data structure growth analysis, as well as interactive visualization techniques. Furthermore, the thesis investigates how (novice) users approach the task of memory analysis and how memory monitoring tools can be improved to better support and guide these users. All ideas presented in this thesis have been implemented in the memory analysis tool AntTracks to showcase their feasibly and applicability.