Report Open Access
Jaffery, Syed Mehdi Raza; Valat, Sebastien
This project focuses on improving the web-based user interface for the MALT memory profiling tool. In particular, it introduces a new and improved source code viewer which shows annotations for memory statistics on memory allocating lines on the source code. Also, it adds a new call-tree viewer to the interface which allows the user to browse through the function calls in the profiled program to see where memory is being allocated and freed and exactly how much.
MALT is a memory profiling tool designed for profiling programs on the Linux platform. MALT generated profile data can be viewed in the MALT GUI which is a web-based program for visualizing data and exploring code.
To further the development of MALT GUI, we improved its Source Code Viewer by redesigning the page and replacing the code editor. We compare several syntax highlighters and code editors and describe why we used Prism.js library for syntax highlighting plus its advantages such as being faster, leaner and easier to extend. We also discuss the performance gains and reduction in page load time gained by these changes.
Also, we discuss the addition of a new feature to the MALT GUI called a Call Tree Viewer to generate and view Call Graphs with memory statistics. We compare several graphing libraries for their suitability to make a call graph and why we selected Graphviz for MALT GUI. We discuss the implementation of call tree for transforming and filtering the data before it is rendered and shown to the user.