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

The Memory Analyzer is delivered as
  • stand-along RCP version via Eclipse.Org download server.
  • feature to be installed into an Eclipse IDE installation using an update site.

Table of Contents

Release Milestones

We plan to build and publish a stable version of the Memory Analyzer on a monthly basis.
1.04/1/2010
Tentative Release Date 1.0

Table of Contents

Target Environments

The Memory Analyzer requires Java 5 and runs on Eclipse 3.3 (Europa) and greater. A stand-alone version is provided on the download server which is build currently with Eclipse 3.5.1.

Internationalization

The Memory Analyzer is prepared to be translated. Translation relevant String constants are externalized into resource bundles.

Table of Contents

Compatibility with Previous Releases

Binary and source compatibility is expected for the Snapshot and Parser API.

Table of Contents

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…
    It should be possible to (re)order the results in an arbitrary way.

Bug Fixes

These are some of the bugs we would like to fix for the 1.0 release

  • No JvmInfo in Heap Dump details pane (272887)
  • Object reference graph incorrect (286421)
  • Wrong sizes reported for instances with a single byte field (231296)
  • Pie chart links sometimes wrong (286410)

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.

Table of Contents

view raw xml of project plan
from project meta-data key "projectplanurl"