Project Plan For Memory Analyzer, version 1.0
Introduction
The Memory Analyzer has a rich set of features to analyze heap dumps from various VM vendors. The main focus is now on growing the community around the tool and maturing from incubation.
During the incubation we managed to create some community around the tool, to extend the list of involved committer companies (now SAP and IBM), to become part of the Galileo simultaneous release, and to reach a download-rate of around 1000 downloads weakly for the standalone RCP version of the Memory Analyzer. With these achievements behind, our next steps will be focused on the maturing of the project.
This project plan describes the improvements we target for our first mature release 1.0
Release Deliverables
- stand-along RCP version via Eclipse.Org download server.
- feature to be installed into an Eclipse IDE installation using an update site.
Release Milestones
1.0 | 4/1/2010 | Tentative Release Date 1.0 |
Target Environments
Internationalization
Compatibility with Previous Releases
Themes and Priorities
New Features
These are some new features that we would like to finish for the 1.0 release
-
Interactively Acquire Heap Dumps (229449)
This feature adds a wizard to acquire a heap dump from a virtual machine running on the local computer. The goal is to ease interactive analysis of an application and reduce the time for novices to get started. -
Expose Callstack Information for Threads (268458)
Certain heap dump (from 1.6_14 and higher Sun JVM, IBM DTFJ formatted system dumps) contain information about the callstacks of threads. Such information could be extremely helpful for the analysis of a series of problems, and therefore it will be exposed from the Memory Analyzer. -
Report Possible Memory Leaks in WeakHashMaps (296826)
A WeakHashMap is expected to get rid of its entries for which the key is only weakly referenced. One common problem causing lots of memory leaks is to have a (strong) reference chain from the value of the WeakHashMap$Entry to its key. Such a hinder the "weakness" of the map. MAT will provide means to automatically detect this anti-pattern. -
Improved Comparison Functionality (298078)
The current comparison features of MAT are very limited - only the class histograms of two different heap dumps can be compared.
It should be possible to compare in MAT two and more arbitrary result tables which have similar columns, for example two histograms, two retained sets, two results from the "groub by value", etc… These result tables can be from one and the same heap dump, or from two or more different heap dumps. Having this functionality one can do things like:- Compare the retained heap of the session for userA and userB (both within the same heap dump) and see why one is bigger than the other
- Analyze how the retained set of userA’s session is changing over time (comparing heap dumps from different tests)
- Compare several group_by_value results and find which Strings appear in one set and are missing in another one, how the number of occurrence changes, etc…
Bug Fixes
These are some of the bugs we would like to fix for the 1.0 release
Documentation Improvement
The Memory Analyzer documentation is available as (a) help plug-in, (b) WIKI pages and (c) blog postings for special topics.
- Review the existing documentation
Currently existing documentation should be reviewed and outdated parts have to be adjusted. -
Document new features
The newly developed features have to be properly documented. - Publish the Help Plug-in contents on the Eclipse.Org Page.
Additionally delivering the help content via web pages will make them searchable via search engines like Google. This should attract new users to the tool.
Building A Community
A vibrant community is essential for the long term health of any project. The Memory Analyzer is in a difficult position, because it is a niche tool which not only requires some significant domain knowledge about memory analysis but also is utilized only sporadically during the development of big applications.
- Participate in the Helios Simultaneous Release.
- Be responsive to questions posted to the newsgroup and Bugzilla reports.
- Regularly blog about memory related topics.