| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> |
| <?xml-stylesheet type="text/xsl" href="http://www.eclipse.org/projects/project-plan.xsl"?> |
| <plan plan-format="1.0" xmlns="http://www.eclipse.org/project/plan" |
| xmlns:html="http://www.w3.org/1999/xhtml" name="Eclipse Memory Analyzer"> |
| <release projectid="technology.mat" version="0.8" /> |
| <introduction> |
| <html:div xmlns="http://www.w3.org/1999/xhtml"> |
| <p>The Memory Analyzer has a rich set of features to analyze heap dumps |
| from various VM vendors. The main focus is now on |
| <strong>growing the community</strong> around the tool and, |
| hopefully, eventually maturing from incubation.</p> |
| |
| <p>The next step is releasing the currently available code base as |
| version <strong>0.7</strong>. The rationale is this: First of all, |
| we have external dependencies (the DTFJ Parser provided by IBM and |
| distributed via IBM's Alphaworks page) which require a stable version. |
| Secondly, we hope to increase community interest by providing |
| a released version.</p> |
| |
| <p>This project plan is concerned with the development wave beyond |
| this initial 0.7 release.</p> |
| </html:div> |
| </introduction> |
| <release_deliverables> |
| <html:div xmlns="http://www.w3.org/1999/xhtml"> |
| The Memory Analyzer is delivered as |
| <ul> |
| <li>stand-along RCP version via Eclipse.Org download server.</li> |
| <li>feature to be installed into an Eclipse IDE installation using an update site.</li> |
| </ul> |
| </html:div> |
| </release_deliverables> |
| <release_milestones> |
| <preamble> |
| <html:div xmlns="http://www.w3.org/1999/xhtml"> |
| We plan to build and publish a stable version of the Memory Analyzer on a monthly basis. |
| </html:div> |
| </preamble> |
| <milestone date="11/15/2008" milestone="0.7"> |
| <html:div>Tentative Release Date 0.7</html:div> |
| </milestone> |
| <milestone date="3/1/2009" milestone="0.8"> |
| <html:div>Tentative Release Date 0.8</html:div> |
| </milestone> |
| <postamble /> |
| </release_milestones> |
| <target_environments> |
| <html:div xmlns="http://www.w3.org/1999/xhtml"> |
| 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 with the latest |
| available platform (currently Eclipse 3.4 Ganymede). |
| </html:div> |
| <internationalization> |
| <html:div>Currently, the Memory Analyzer is not prepared to be translated. String constants |
| are not yet externalized into resource bundles.</html:div> |
| </internationalization> |
| </target_environments> |
| <compatibility_with_previous_releases> |
| <html:div xmlns="http://www.w3.org/1999/xhtml">Binary and source compatibility is expected for the Snapshot and Parser API.</html:div> |
| </compatibility_with_previous_releases> |
| <themes_and_priorities> |
| <preamble /> |
| <theme name="Comparing Heap Dumps"> |
| <description> |
| <html:div xmlns="http://www.w3.org/1999/xhtml"> |
| <p>A heap dump contains a snapshot of the Java heap at one point in time. |
| Every address is uniquely identified by its address. However, the addresses |
| do not remain stable because the Garbage Collector is constantly moving |
| objects around and thereby changing their addresses. Therefore only aggregates |
| can be compared easily.</p> |
| <ul> |
| <li><em>Compare Multiple Heap Dumps (not only two) on the Basis |
| of the Class Histogram, Class Loader Histogram and Packages.</em><br /> |
| The idea is to create a wizard which guides the user step-by-step |
| from the selection of the heap dumps to the results. |
| </li> |
| <li><em>Research Ways to Detect Leak Suspects Based on Comparing Heap Dumps.</em><br /> |
| This is a rather open topic. The idea is to find growing structures |
| like maps which could indicate a leak suspect. |
| </li> |
| </ul> |
| </html:div> |
| </description> |
| </theme> |
| <theme name="Usability Features"> |
| <description> |
| <html:div xmlns="http://www.w3.org/1999/xhtml"> |
| <p>Usability of the Memory Analyzer is important in order to attract new user groups.</p> |
| <ul> |
| <li><em>Interactively Acquire Heap Dumps. (<a |
| href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=229449">229449</a>)</em><br /> |
| The latest virtual machines provide interfaces to acquire a heap dump on demand. For example, |
| Sun Java 6 VM provides a JMX extension, on Unix platforms the command-line utility jmap is |
| available. 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. |
| </li> |
| <li><em>Extend OQL to Handle Query Commands.</em><br /> |
| Reports like the component report aggregate a lot of data into a single HTML page. |
| To be able to drill down, it must be possible to go back to the heap dump |
| and retrieve the objects. This requires an extension to the OQL to |
| execute queries and a mechanism identify rows / tree nodes from the result. |
| </li> |
| <li><em>Equinox OSGi Bundle Explorer</em><br /> |
| It should be possible to extract from the heap dump the state of the Equinox |
| runtime: bundles and their status, dependencies, registered and used services, |
| extension points etc. For a live system, this is available via the Plug-In Registry |
| Viewer (if installed), in the post-mortem case the MAT can help. |
| </li> |
| </ul> |
| </html:div> |
| </description> |
| </theme> |
| <theme name="Documentation Improvement"> |
| <description> |
| <html:div xmlns="http://www.w3.org/1999/xhtml"> |
| <p>The Memory Analyzer documentation is available as (a) help plug-in, (b) WIKI pages |
| and (c) blog postings for special topics. The documentation covers a broad range |
| of topics, but we acknowledge that it is often brief and not easily accessible |
| to non-domain experts.</p> |
| <ul> |
| <li><em>Restructure the documentation along tasks.</em><br /> |
| The documentation should concentrate on tasks ("find leaks" or "reduce footprint") |
| instead of features. This should reduce the learning curve of new users. |
| </li> |
| <li><em>Improve the context help available for heap dump inspections.</em><br /> |
| Today MAT displays a help button if a particular inspection provides context help. |
| However, right now help is only available for immediate dominators and the |
| component report. More context help is needed. |
| </li> |
| <li><em>Publish the Help Plug-in contents on the Eclipse.Org Page.</em><br /> |
| 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. |
| </li> |
| </ul> |
| </html:div> |
| </description> |
| </theme> |
| <theme name="Building A Community"> |
| <description> |
| <html:div xmlns="http://www.w3.org/1999/xhtml"> |
| <p>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. |
| </p> |
| <ul> |
| <li>Participate in the Galileo Simultaneous Release.</li> |
| <li>Demo the Memory Analyzer at the Eclipse Summit Europe.</li> |
| <li>Be responsive to questions posted to the newsgroup and Bugzilla reports.</li> |
| <li>Regularly blog about memory related topics.</li> |
| </ul> |
| </html:div> |
| </description> |
| </theme> |
| </themes_and_priorities> |
| </plan> |