Auflistung nach Schlagwort "memory leak"
1 - 2 von 2
Treffer pro Seite
Sortieroptionen
- KonferenzbeitragAnalyzing the Evolution of Data Structures in Trace-Based Memory Monitoring(Softwaretechnik-Trends Band 39, Heft 3, 2019) Weninger, Markus; Gander, Elias; Mössenböck, HanspeterModern software systems are becoming increasingly complex and are thus more prone to performance degradation due to memory leaks. Memory leaks occur if objects that are not needed anymore are still unintentionally kept alive. While there exists a variety of state-of-the-art memory monitoring tools, most of them only use memory snapshots, i.e., heap dumps, to analyze an application’s live objects at a single point in time. This does not allow developers to identify data structures that grow over time. Tracebased monitoring tools tackle this problem by recording memory events, e.g., allocations or object moves performed by the garbage collector (GC), throughout an application’s run time. In this paper, we present ongoing research on the use of memory traces for detecting the root causes of memory leaks introduced by growing data structures. This encompasses (1) a domain-specific language (DSL) to describe arbitrary data structures, (2) an algorithm to detect instances of previously defined data structures in reconstructed heaps, as well as (3) techniques to analyze the temporal evolution of these data structure instances to identify those possibly involved in memory leaks. All these concepts have been integrated into AntTracks, a trace-based memory monitoring tool, to prove their feasibility.
- KonferenzbeitragMemory Leak Visualization using Evolving Software Cities(Softwaretechnik-Trends Band 39, Heft 4, 2019) Weninger, Markus; Makor, Lukas; Mössenböck, HanspeterMemory leaks occur when no longer needed objects are unnecessarily kept alive. They can have a significant performance impact, possibly leading to a crash of the application in the worst case. Most state-of-the-art memory monitoring tools lack visualizations of memory growth over time. However, domains such as software evolution and program comprehension have shown that graphically visualizing the growth and evolution of a system can help users in understanding and interpreting this growth. In this paper, we present ongoing research on how to visualize an application’s memory evolution over time using the software city metaphor. While software cities are typically used to visualize static artifacts of a software system such as classes, we use them to visualize the dynamic memory behavior of an application. In our approach, heap objects can be grouped by arbitrary properties such as their types or their allocating threads. These groups are visualized as buildings arranged in districts, where the size of a building corresponds to the number of objects it represents. Continuously updating the city over time creates the feeling of an evolving city. Users can then identify and inspect those buildings, i.e., object groups, that grow the most. We integrated our approach into AntTracks, a trace-based memory monitoring tool developed by us, to prove its feasibility.