blob: 90c01a216370637d810a68d074b58f98dbd6a86a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2008, 2020 SAP AG and IBM Corporation.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
SAP AG - initial API and implementation
Andrew Johnson (IBM Corporation) - fixes
-->
<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd" >
<reference id="task_analyzingclassloader" xml:lang="en-us">
<title>Analyze Class Loader</title>
<shortdesc>
Class loaders load classes into the memory of the JVM. When
analyzing the heap, class loaders are very important for two reasons:
First, applications typically load components using separate class
loaders. Second, the loaded classes are usually stored in a separate space (e.g. the perm space)
which can also be depleted.
</shortdesc>
<prolog>
<copyright>
<copyryear year=""></copyryear>
<copyrholder>
Copyright (c) 2008, 2010 SAP AG and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
</copyrholder>
</copyright>
</prolog>
<refbody>
<section>
<title>Class Loader Explorer</title>
<p>
To get an overview, run the
<menucascade>
<uicontrol>Query Browser</uicontrol>
<uicontrol>Java Basics</uicontrol>
<uicontrol>Class Loader Explorer</uicontrol>
</menucascade>
inspection on the heap dump.
<ul>
<li>The Memory Analyzer attaches a meaningful label to the class
loader - in the case of OSGi bundles it is the bundle id. Looking
out for duplicate entries!</li>
<li>Next to the class loader name, the table contains the defined
classes and the number of live instances. If one and the same
component is loaded multiple times, the number of live instances
can indicate which class loaders is more alive and which one
should be garbage collected.</li>
</ul>
</p>
<image href="analyzingclassloader_explorer.png">
<alt>Class Loader Explorer</alt>
</image>
<p>
Find more information in this blog posting:
<xref format="html" scope="external"
href="http://dev.eclipse.org/blogs/memoryanalyzer/2008/05/17/the-unknown-generation-perm/">The Unknown Generation: Perm</xref>
</p>
</section>
</refbody>
</reference>