MassifG is an application for visualizing the output of valgrinds massif tool. See the first release announcement for more info. Here is the high level list of changes since version 0.1:
- Graphing component ported to use GOffice – graphs are much nicer now
- A detailed view has been implemented
- Parses the heap trees found in massif snapshots
- Menu entry for directly exporting graph to a PNG file
- gtk-doc based API documentation
Of course there were also many minor changes, fixes and improvements. Here is how it looks now (simple and detailed view, respectively):
The tarball can be found here. Packages for Arch are in AUR. I’m also hoping to make packages for Ubuntu and Fedora in the next couple of days.
Roadmap
I will probably move my focus over to C++ and other tasks now, so MassifG progress will be slower, but here is what I’d like to see going forward.
- Show name of the function when hovering over the graph.
Minor thing, but it will increase usability a lot as it can be very hard to see which legend entry the data corresponds to in the detailed view. Requires support in GOffice - Add axis labels and title with information from the massif file.
- Improve usability on small screen/window size.
- The detailed view currently needs a lot of space, and does not work nicely when this is not available. Need to ask the GOffice people for some hints and tips here.
- Make an API and UI for running massif.
This so that users don’t have to invoke massif manually, and then open the file in MassifG to visualize the results. Would additionally be nice if the graph was updated interactively while massif runs, but that is secondary. - Make a UI widget for visualizing the heap tree.
Possibly a GtkTreeView. I’m open for suggestions here. - Expose a public library with the relevant parts of the API.
This way, others applications can use it – if anyone is interested I’d love to have some feedback on the API. I am of course open to changing it if necessary. Support for GObject introspection would be nice too.
If anyone would like to work on any of this, give me a hint so we don’t duplicate effort. Let me know if you have any other good ideas too.