Memory Analyzer is an Eclipse application for solving memory problems in user applications based on a snapshot of the contents of the heap. It has several extension points for incorporating additional function. The main arrangement of plug-ins is as follows, showing dependencies by indentation:

`org.eclipse.mat.report`
  Provides report building capabilities.
  1. query extension point
  2. rendering extension point
  3. report extension point
  `org.eclipse.mat.api`
    Allows access to data from the snapshot, such as objects and classes. It also holds the standard queries. Most user-written reports just need access to the api and report plugins.
    1. snapshot factory extension point
    2. trigger heap dump extension point
    3. name resolver extension point for object describing
    4. request resolver extension point
    5. thread resolver extension point
    6. ticketResolver extension point
    `org.eclipse.mat.parser`
      Controls the parsing of a heap dump into a snapshot, and holds the implementations of the snapshot objects and indexes. Parsers for new dump types will use facilities of this plugin.
      1. parser extension point
      `org.eclipse.mat.dtfj`
        Parses IBM DTFJ based dumps.
        1. Depends on the DTFJ feature from IBM to provide readers for system dumps, portable heap dump (PHD) files and Java core files.
        2. Calls DTFJ extensions from IBM using the DTFJ API extension point from IBM
      `org.eclipse.mat.hprof`
        Parses HPROF based dumps. Also provides an extension for the acquire (trigger) heap dump extension point to trigger a HPROF dump. Creates HPROF dumps from OpenJDK VMs running on the system on request for analysis by MAT.
        1. HPROF enhancement extension point
    `org.eclipse.mat.ibmdump`
      Creates dumps from other IBM VMs running on the system on request for analysis by MAT. This can also create HPROF heap dumps from OpenJDK VMs.
    `org.eclipse.mat.jdt`
      Links classes in the snapshot to class source code in the Eclipse IDE.
    `org.eclipse.mat.jruby.resolver`
      Displays details of JRuby and Ruby stack traces in reports using a request solver.
    `org.eclipse.mat.chart`
      Controls the generation of pie charts. Used in batch mode to generate PNG charts for HTML reports.
      `org.eclipse.mat.chart.ui`
        Displays pie charts in the MAT User Interface. Also depends on `org.eclipse.mat.ui`
    `org.eclipse.mat.ui`
      The main graphical user interface (GUI) for Eclipse Memory Analyzer.
      1. contributions to the editor tool bar extension point
      2. new panes for results extension point
      `org.eclipse.mat.ui.rcp`
        The stand-alone version of MAT uses this plugin. It is not needed when MAT is installed into an existing Eclipse IDE.
`org.eclipse.mat.ui.help`
  Provides help for Eclipse Memory Analyzer. Help is written in Darwin Information Typing Architecture (DITA) format and is converted to HTML as a manual step before being committed to GIT. Javadoc for the Java source code is automatically built and included in the help (here), and the Javadoc is also indexed with the Eclipse Help.