<div id="maincontent">
	<div id="midcolumn">
		<h1>Memory Analyzer (MAT)</h1>

		<table>
		<tr>
		<td valign="top"><p>The Eclipse Memory Analyzer is a fast and feature-rich <b>Java heap analyzer</b> that helps you
		find memory leaks and reduce memory consumption.</p>

		<p>Use the Memory Analyzer to analyze productive heap dumps with hundreds of millions
		of objects, quickly calculate the retained sizes of objects, see who is preventing the Garbage
		Collector from collecting objects, run a report to automatically extract leak suspects.</p>
		</td>
		<td align="right" valign="top"><img src="/mat/home/mat_thumb.png" alt="Memory Analyzer Screenshot" width="250" height="282" />
		</td>
		</tr>
		</table>

		<div class = "homeitem3col">
			<h3>Links</h3>
			<ul>
				<li><a href="/mat/downloads.php">Download</a> the latest version as RCP application.</li>
				<li>Read our <a href="http://memoryanalyzer.blogspot.in">Blog</a> for background information.</li>
				<li>Post your questions to the <a href="http://www.eclipse.org/forums/eclipse.memory-analyzer">Forum</a>.</li>
			</ul>
		</div>

		<div class = "homeitem3col">
			<h3>News</h3>
			<ul class="midlist">
				<li>18 March 2020, <a href="/mat/downloads.php">Memory Analyzer Released Version 1.10.0</a>
				<br/><br/>
				Memory Analyzer 1.10.0 Release is now available for <a href="/mat/downloads.php">download</a>.
				Check the <a href="/mat/1.10.0/noteworthy.html">New and Noteworthy</a> page for an overview of new features and fixes.
				Further details are available in the <a href="https://projects.eclipse.org/projects/tools.mat/releases/1.10.0/">release record</a>.
				</li>
			</ul>
		</div>

	</div>

</div>