-
Notifications
You must be signed in to change notification settings - Fork 3
/
querymatrix.dita
247 lines (241 loc) · 8.03 KB
/
querymatrix.dita
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2008, 2023 SAP AG.
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
-->
<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd" >
<reference id="ref_querymatrix" xml:lang="en-us">
<title>Query Matrix</title>
<shortdesc>
There is no exact algorithm for memory analysis. The following
table divides existing heap dump queries by the usage
categories.
</shortdesc>
<prolog>
<copyright>
<copyryear year=""></copyryear>
<copyrholder>
Copyright (c) 2008, 2023 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>Overview</title>
<simpletable relcolwidth="2* 3*" id="querymatrixoverview">
<strow id="histogram">
<stentry>Histogram</stentry>
<stentry>
Class histogram is a list of all the objects in
the heap dump. You see the number of objects,
shallow and retained sizes for every class. The
sorting order of the list can be changed by
clicking the column header. Histogram gives you
a good starting point for further analysis.
Histogram can be opened by pressing the toolbar
button
<image href="../mimes/i-histogram.png">
<alt>
Histogram toolbar button with three vertical bars.
</alt>
</image>
or by activating the action link on the Overview
pane. See the <xref href="../gettingstarted/basictutorial.dita#task_basictutorial/histogram">Basic Tutorial</xref>
for more information.
</stentry>
</strow>
<strow>
<stentry id="top_consumers">Top Consumers</stentry>
<stentry>
Top Consumers query returns information about
the biggest objects grouped by class, class
loader, and package as HTML page. The total heap
is included in the analysis.
</stentry>
</strow>
<strow id="heap_dump_overview">
<stentry>Heap Dump Overview</stentry>
<stentry>
<p>
When a heap dump is opened the Overview
editor already provides a first analysis on
the heap dump:
</p>
<ul>
<li>
Check the size of the heap dump, how
many object, classes, class loaders it
has.
</li>
<li>Look at the biggest objects.</li>
</ul>
<p>
The Heap Dump Overview report can be opened
via the toolbar:
</p>
<image href="../mimes/6f9c3893.png">
<alt>
Heap Dump Overview menu item from Run Expert System Test drop-down menu.
</alt>
</image>
<p>Overview report contains a histogram and a top consumers overview.</p>
</stentry>
</strow>
<strow id="list_objects">
<stentry>List Objects</stentry>
<stentry>
<p>
This shows the selected objects in a tree view.
With each object the class specific name of the referenced object is
also shown, if it is a known type such as <codeph>java.lang.String</codeph>,
<codeph>byte[]</codeph> etc.
The suffix field shows whether the object is
a <xref href="../concepts/gcroots.dita">garbage collection root</xref>.
</p>
<p>
The <xref href="iconassist.dita">icon</xref> shows whether the object is a
<dl>
<dlentry>
<dt>
<xref href="iconassist.dita">
<image href="../mimes/i-arrayobject.png">
<alt>
Icon for an array using brackets
</alt>
</image>
</xref>
</dt>
<dd>an array object</dd>
</dlentry>
<dlentry>
<dt>
<xref href="iconassist.dita">
<image href="../mimes/i-classloaderobject.png">
<alt>
Icon for a class loader showing a jar container.
</alt>
</image>
</xref>
</dt>
<dd>a class loader object</dd>
</dlentry>
<dlentry>
<dt>
<xref href="iconassist.dita">
<image href="../mimes/i-classobject.png">
<alt>
Icon for a class object showing a letter 'C'.
</alt>
</image>
</xref>
</dt>
<dd>a class object</dd>
</dlentry>
<dlentry>
<dt>
<xref href="iconassist.dita">
<image href="../mimes/i-otherobject.png">
<alt>
An icon for a standard object as a blank
piece of paper.
</alt>
</image>
</xref>
</dt>
<dd>a standard object</dd>
</dlentry>
</dl>
</p>
<p>
With the standard mode then expanding an object
shows the outbound references in rows below
and to the right of the object,
indicated by
the field name or array index as a prefix in <b>bold</b>.
The <xref href="iconassist.dita">icons</xref> have an arrow which points down and to the right
<xref href="iconassist.dita">
<image href="../mimes/i-horefbelow.png">
<alt>
Icon of a piece of paper
with an arrow at the bottom right pointing down and to the right.
</alt>
</image>
</xref>
.
</p>
<p>
In inbound mode the query shows which objects point to the
expanded object. In this mode the arrows on the <xref href="iconassist.dita">icons</xref>
point up and to the left
<xref href="iconassist.dita">
<image href="../mimes/i-horefabove.png">
<alt>
Icon of a piece of paper
with an arrow at the top left pointing up and to the left.
</alt>
</image>.
</xref>
</p>
</stentry>
</strow>
<strow id="show_objects_by_class">
<stentry>Show Objects by Class</stentry>
<stentry>
This works rather like the <cmdname>List objects</cmdname>
query except that it groups objects of the same class at
the same level into one row.
The inspector view shows the actual class; the context menu
allows operations on all the objects of that class in that row.
<p>The color of the class <xref href="iconassist.dita">icon</xref> shows if all the objects in that
row are new or not. If the <xref href="iconassist.dita">icon</xref> is
<xref href="iconassist.dita">
<image href="../mimes/i-class.png">
<alt>
Green circle icon with a letter 'C'.
</alt>
</image>
</xref>
green
then none of the objects have been shown further up the tree.
If the <xref href="iconassist.dita">icon</xref> is
<xref href="iconassist.dita">
<image href="../mimes/i-class_old.png">
<alt>
Gray circle icon with a letter 'C'.
</alt>
</image>
</xref>
gray
then all of the objects have been shown further up the tree.
If the <xref href="iconassist.dita">icon</xref> is
<xref href="iconassist.dita">
<image href="../mimes/i-class_mixed.png">
<alt>
Circle icon with a letter 'C',
green on the top half and gray at the bottom.
</alt>
</image>
</xref>
green and gray
then some of the objects have been shown further up the tree.
This can be useful when expanding the tree to see whether you
are still finding new objects or whether they link back to
objects you have already seen.
</p>
<p>This query can also operate in <parmname>inbound</parmname> mode.</p>
</stentry>
</strow>
</simpletable>
</section>
</refbody>
</reference>