Visualizing Dynamic Memory Allocations Sergio Moreta and Alexandru Telea Department of Mathematics and Computer Science Technische Universiteit Eindhoven,

Slides:



Advertisements
Similar presentations
TU e technische universiteit eindhoven / department of mathematics and computer science Modeling User Input and Hypermedia Dynamics in Hera Databases and.
Advertisements

TU e technische universiteit eindhoven / department of mathematics and computer science Specification of Adaptive Behavior Using a General- purpose Design.
Dynamic Memory Management
Carnegie Mellon 1 Dynamic Memory Allocation: Basic Concepts : Introduction to Computer Systems 17 th Lecture, Oct. 21, 2010 Instructors: Randy Bryant.
Dynamic Memory Allocation I Topics Simple explicit allocators Data structures Mechanisms Policies CS 105 Tour of the Black Holes of Computing.
Chris Riesbeck, Fall 2007 Dynamic Memory Allocation Today Dynamic memory allocation – mechanisms & policies Memory bugs.
Lecture 10: Heap Management CS 540 GMU Spring 2009.
Software Visualization Using Hierarchical Edge Bundles and Massive Sequence Views Danny Holten and Jarke J. van Wijk Eindhoven University of Technology.
Garbage Collection CSCI 2720 Spring Static vs. Dynamic Allocation Early versions of Fortran –All memory was static C –Mix of static and dynamic.
Dr. Fabrizio Gala Dipartimento di Scienze di Base e Applicate Per l’Ingegneria – Sezione di Fisica Via Scarpa Rome, Italy 1.
Dialogue – Driven Intranet Search Suma Adindla School of Computer Science & Electronic Engineering 8th LANGUAGE & COMPUTATION DAY 2009.
Chapter 8 Runtime Support. How program structures are implemented in a computer memory? The evolution of programming language design has led to the creation.
Object-Oriented Analysis and Design
1 Presented by Jean-Daniel Fekete. 2  Motivation  Mélange [Elmqvist 2008] Multiple Focus Regions.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5, Analysis: Dynamic Modeling.
Dr Mohamed Menacer College of Computer Science and Engineering Taibah University CS-334: Computer.
Technology in Education Richard Anderson Department of Computer Science and Engineering University of Washington Seattle, Washington, USA March 28, 2006.
Computer Organization and Architecture
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
University of California San Diego Locality Phase Prediction Xipeng Shen, Yutao Zhong, Chen Ding Computer Science Department, University of Rochester Class.
Tal Mor  Create an automatic system that given an image of a room and a color, will color the room walls  Maintaining the original texture.
1 Chapter One A First Program Using C#. 2 Objectives Learn about programming tasks Learn object-oriented programming concepts Learn about the C# programming.
A First Program Using C#
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
By Renan Campos.  When to overload new/delete and why  Requirements of the implementing “new”  Implementing “array new”  Implementing the “delete”
UniS CS297 Graphics with Java and OpenGL Introduction.
CS3012: Formal Languages and Compilers The Runtime Environment After the analysis phases are complete, the compiler must generate executable code. The.
CS 403: Programming Languages Lecture 2 Fall 2003 Department of Computer Science University of Alabama Joel Jones.
Design patterns. What is a design pattern? Christopher Alexander: «The pattern describes a problem which again and again occurs in the work, as well as.
11 C H A P T E R Artificial Intelligence and Expert Systems.
Chapter 1 Introduction to Data Mining
CSC-115 Introduction to Computer Programming
Scientific Visualization Module 6 Volumetric Algorithms (adapted by S.V. Moore – slides deleted, modified, and added) prof. dr. Alexandru (Alex) Telea.
Se Over the past decade, there has been an increased interest in providing new environments for teaching children about computer programming. This has.
Scalable Analysis of Distributed Workflow Traces Daniel K. Gunter and Brian Tierney Distributed Systems Department Lawrence Berkeley National Laboratory.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Chapter 3.5 Memory and I/O Systems. 2 Memory Management Memory problems are one of the leading causes of bugs in programs (60-80%) MUCH worse in languages.
TAUCHI – Tampere Unit for Computer-Human Interaction Visualizing gaze path for analysis Oleg Špakov MUMIN workshop 2002, Tampere.
CHAPTER TEN AUTHORING.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-1 Process Concepts Department of Computer Science and Software.
Computer Science and Software Engineering University of Wisconsin - Platteville 2. Pointer Yan Shi CS/SE2630 Lecture Notes.
Storage Management. The stack and the heap Dynamic storage allocation refers to allocating space for variables at run time Most modern languages support.
Dynamic Object Sampling for Pretenuring Maria Jump Department of Computer Sciences The University of Texas at Austin Stephen M. Blackburn.
Stylization and Abstraction of Photographs Doug Decarlo and Anthony Santella.
Understanding Visualization through Spatial Ability Differences Maria C. Velez, Deborah Silver and Marilyn Tremaine Rutgers University 2005.
Monitoring the acquisition process by web widgets Leonardo Tininini and Antonino Virgillito ISTAT Meeting on the Management of Statistical Information.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
University of Washington Today Finished up virtual memory On to memory allocation Lab 3 grades up HW 4 up later today. Lab 5 out (this afternoon): time.
Real Time Operating Systems Memory Management & Device Control.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Lecture 7: Intro to Computer Graphics. Remember…… DIGITAL - Digital means discrete. DIGITAL - Digital means discrete. Digital representation is comprised.
Understanding the Behavior of Java Programs Tarja Systa Software Systems Lab. Tampere Univ. Sookmyung Women’s Univ. PSLAB Choi, yoon jeong.
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
Computer Graphics 3 Lecture 1: Introduction to C/C++ Programming Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
Memory Management -Memory allocation -Garbage collection.
Consider Starting with 160 k of memory do: Starting with 160 k of memory do: Allocate p1 (50 k) Allocate p1 (50 k) Allocate p2 (30 k) Allocate p2 (30 k)
Fall 2007 Week 9: UML Overview MSIS 670: Object-Oriented Software Engineering.
Improve Embedded System Stability and Performance through Memory Analysis Tools Bill Graham, Product Line Manager Development Tools November 14, 2006.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
Memory Management What if pgm mem > main mem ?. Memory Management What if pgm mem > main mem ? Overlays – program controlled.
Hand Gestures Based Applications
OPERATING SYSTEMS CS 3502 Fall 2017
Module 11: File Structure
YAHMD - Yet Another Heap Memory Debugger
Seminar in automatic tools for analyzing programs with dynamic memory
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Lecture 4: Process Memory Layout
Human Complexity of Software
Mobile Programming Dr. Mohsin Ali Memon.
Presentation transcript:

Visualizing Dynamic Memory Allocations Sergio Moreta and Alexandru Telea Department of Mathematics and Computer Science Technische Universiteit Eindhoven, the Netherlands By: Rizal Mohd Nor

Dr. Alexandru C. Telea Sergio Moreta Department of Mathematics and Computing Science, Eindhoven University of Technology The Netherlands Research Area: scientific visualisation information visualisation multiscale visualisation interactive systems design computer imaging object-oriented and component-oriented software design compiler/interpreter design fact extraction reverse engineering Department of Mathematics and Computing Science, Eindhoven University of Technology The Netherlands Graduate Student

Motivation  To present a visualization tool for dynamic memory allocation, information obtained from instrumenting the runtime allocator used by C programs.  The goal is to convey insight in the dynamic behavior of the allocator.  The purpose is to help the allocator designers understand the performance and workings of the allocator.

Introduction  Dynamic memory allocators is a component of the runtime that is responsible for providing memory blocks, as offered by the malloc C function and new C++ operator.  Allocated blocks are returned to the runtime, via explicit calls to free (C) or delete (C++) or via garbage collection (java)  Several performance metrics are relevant: The allocator should minimize memory fragmentation the allocator should minimize waste the allocator should provide a good response time for both allocation and free requests for a wide mix of scenarios

Problem  Understanding log data to detect sub-optimal performance, and when and why this occurs, is difficult.  Typical logs can easily contain hundreds of thousands of high frequency events.  Examples are finding incorrect allocation/deallocation sequences which could lead to memory leaks, dangling pointers, or uninitialized memory reads.

Core Visualization Design(0)  Design is driven by several goals: scalability, limited cluttering, insight into fine-scale behavior, intuitiveness, and ease of use.  Use 2D instead of 3D. Justification in thesis paper not to use 3D: Object occlusion. Awkward navigation. Awkward selection. Obscured relations. Slow rendering.  Using Adapted Rainbow Color Map. Unfortunately, normal humans can only distinguish 6-10 colors.

Interactive tool for visualizing dynamic memory allocation. The Occupancy bar shows, using a blue (low) to red (high) color map, the evolution in time of the total memory allocated in the bin shown in the main view.

Core Visualization Design(1)  Showing Block Structure color blocks using flat shading, same-color neighbor blocks cannot be distinguished Drawing line borders works only for zoomed-in views, where the block sizes are larger than several pixels. Solve problem by overlaying each block using a so-called shaded cushion.

Core Visualization Design(2)  Showing Subpixel structure Many (de)allocation events can occur at very high frequencies The size of an event rectangle can easily become smaller than one pixel. Simply drawing the rectangles produces wrong effects, as a pixel will show a single rectangle, or even none, depending on round-off errors. Solution, anti-aliasing, α changes visibility, and Base changes pixel fractions

Core Visualization Design(3)  Visualizing Activity in the Occupancy Bar The occupancy bar has the same problem as the main view due to high-frequency events. An improvement is to draw black bars outlining no-activity zones which are larger than a few pixels Also add cushioning and anti-aliasing

Core Visualization Design(4)  Hierarchical Agglomerative Clustering provide a multi-level partitioning of data. Dynamic partitioning of data serves as a visual aid for supporting the user in detecting the artifact’s high-level structure.

Core Visualization Design(5)  Correlation of Multiple Views An important task is to compare different bins to detect possible unbalances, which can be further corrected by adjusting the allocator parameters Just displaying bin views in a grid layout does not allow users to easily see if certain values of interest are indeed correlated. Solution, use cushion cursors

Application

 By comparing Bins and heap occupancy visualization, it is possible to see certain patterns.  Particularly, questions such as the ones below can be answered. Are allocations always done from low to high addresses? Is activity correlated with the memory allocating functions?

My thoughts  How does this help program comprehension? Not much. Alternative ways for visualizing abundance of data that are time sensitive. Understanding memory usage for limited memory devices like embedded systems.  What else can we use it for? Maybe to understand patterns in high frequency changes between fixations for eye tracking system. Clustering method used a certain distance metric to cluster objects, this idea can be applied in fish view to reduce or amplify context view.