Auflistung nach Autor:in "Weninger, Markus"
1 - 5 von 5
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.
- KonferenzbeitragHeap Evolution Analysis Using Tree Visualizations(Softwaretechnik-Trends Band 40, Heft 3, 2020) Weninger, Markus; Makor, Lukas; Mössenböck, HanspeterMemory anomalies such as memory leaks can dramatically impact application performance and can even lead to crashes. Thus, supporting developers in understanding the heap memory behavior of their systems is essential. Unfortunately, most memory analysis tools lack advanced visualizations that could facilitate developers in analyzing suspicious memory behavior. To analyze heap memory, it is common to group the heap’s objects, for example, by their types or by their allocation sites. Using multiple grouping criteria thus results in a tree-shaped representation of the heap content. Such a heap tree is then typically presented textually in a tree table. In this paper, we present ongoing research on using well-known tree visualization techniques to visualize such heap trees as well as their evolution over time. Such visualizations may ease the detection of proliferating heap objects, facilitating memory leak analysis. To demonstrate the feasibility and applicability of the presented approach, we implemented a web-based visualization tool and integrated it into AntTracks, our trace-based memory monitoring tool.
- KonferenzbeitragInvestigating High Memory Churn via Object Lifetime Analysis to Improve Software Performance(Softwaretechnik-Trends Band 40, Heft 3, 2020) Weninger, Markus; Gander, Elias; Mössenböck, HanspeterHigh memory churn occurs when many temporary objects are created and shortly thereafter collected by the garbage collector. Such excessive dynamic allocations negatively impact an application’s performance because (1) a great number of objects has to be allocated on the heap and (2) an increased number of garbage collections is required to collect them. In this paper, we present ongoing research on how to support developers in detecting, understanding and resolving high memory churn in order to improve their application’s performance. Based on a recorded memory trace, an algorithm automatically searches for memory churn hotspots and calculates the age at which objects die within it, since objects that die young are the major contributors to memory churn. Information about these objects, for example their types and allocation sites, can then be inspected in order to locate the problematic code locations. To demonstrate the feasibility and applicability of our approach, we implemented and present a new memory churn analysis feature in AntTracks, our trace-based memory monitoring tool.
- 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.
- KonferenzbeitragTrace-basierte Erkennung und Analyse von Speicheranomalien(D22, 2022) Weninger, MarkusModerne Programmiersprachen nutzen automatische Speicherbereinigung, um fehleranfällige manuelle Speicherverwaltung zu vermeiden. Dennoch können Anomalien wie Speicherlecks auftreten, die sich drastisch auf die Leistung einer Anwendung auswirken und sogar Abstürze herbeiführen können. Die meisten modernen Werkzeuge nutzen für ihre Speicheranalysen jedoch leider nur Speicherauszüge, d.h. sie inspizieren den Speicher nur an einem oder wenigen bestimmten Zeitpunkten. Diese bieten aber oft nicht genug Details, um zur Ursache des Problems vorzudringen. Unser Ansatz nutzt daher Traces, kontinuierliche Aufnahmen von Ereignissen wie beispielsweise Allokationen oder Speicherbereinigungsoperationen. Diese Arbeit zeigt, wie Traces genutzt werden können, um die (automatische) Speicherproblemerkennung und -analyse zu verbessern. Sie schlägt unter anderem Algorithmen zur Aufzeichnungsverarbeitung vor und führt neuartige Anomalieanalysen (z.B. die automatisierte Analyse des Wachstums von Datenstrukturen) sowie interaktive Visualisierungstechniken ein. Ferner untersucht sie, wie (unerfahrene) Benutzer sich bei der Speicheranalyse verhalten und wie Werkzeuge verbessert werden können, um diese Nutzer besser zu unterstützen und anzuleiten.