<?xml version="1.0" encoding="UTF-8"?> | |
<!-- | |
Copyright (c) 2008, 2021 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 | |
IBM Corporation - updates for value tab, OQL etc. | |
--> | |
<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd" > | |
<reference id="ref_tips" xml:lang="en-us"> | |
<title>Tips and Tricks</title> | |
<shortdesc /> | |
<prolog> | |
<copyright> | |
<copyryear year=""></copyryear> | |
<copyrholder> | |
Copyright (c) 2008, 2021 SAP AG, IBM Corporation 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> | |
<p> The following tips and tricks give some helpful ideas for | |
increasing your productivity and ease the work with Memory Analyzer. | |
</p> | |
<simpletable relcolwidth="1* 4*" id="tips_table"> | |
<sthead> | |
<stentry>Tip</stentry> | |
<stentry>Description</stentry> | |
</sthead> | |
<strow> | |
<stentry>Shortcuts. Use <uicontrol>command</uicontrol> instead of <uicontrol>ctrl</uicontrol> on macOS</stentry> | |
<stentry> | |
<p><uicontrol>ctrl+Q</uicontrol> - Opens the Query Browser.</p> | |
<p><uicontrol>ctrl+H</uicontrol> - Opens the history of executed queries.</p> | |
<p><uicontrol>ctrl+page-down</uicontrol> - Next tab.</p> | |
<p><uicontrol>ctrl+page-up</uicontrol> - Previous tab.</p> | |
<p><uicontrol>shift+F10</uicontrol> - Context menu for results of queries.</p> | |
<p><uicontrol>ctrl+F10</uicontrol> - Context menu for editor tabs - to close and rearrange.</p> | |
<p><uicontrol>ctrl+shift+P</uicontrol> - Reset perspective.</p> | |
<p><uicontrol>alt+I</uicontrol> - Opens a pop-up menu that explains the icons.</p> | |
<p><uicontrol>ctrl+shift+L</uicontrol> - Opens a pop-up menu that explains the keyboard shortcuts.</p> | |
</stentry> | |
</strow> | |
<strow> | |
<stentry>Quick Search</stentry> | |
<stentry> | |
Just start to type while you are in the heap editor, all the | |
matches will be highlighted. This quick search starts is activated | |
when 3 or more letters are provided. | |
<image href="../mimes/m65d10c7b.png" align="left" placement="break"> | |
<alt>Histogram pane with user having typed | |
<userinput>jav</userinput> showing all the lines | |
containing <userinput>jav</userinput> highlighted. | |
</alt> | |
</image> | |
</stentry> | |
</strow> | |
<strow> | |
<stentry>Filter</stentry> | |
<stentry> | |
To show only rows of a table or tree matching a filter, | |
click the top row, or press enter when the top row is selected. | |
Then type the required filter for the column. Multiple filters can be used. | |
In the example the "(1,909 filtered)" on the totals row means 1909 rows have been excluded by the filter. | |
<p> | |
For text columns a regular expression is used as a filter. | |
</p> | |
<p> | |
For numeric columns a numeric comparison is used as a filter. | |
Use one of the following: | |
<ul> | |
<li>Intervals: <userinput>1000..10000</userinput> <userinput>1%..10%</userinput></li> | |
<li>Upper Boundary: <userinput><=10000</userinput> <userinput><1%</userinput></li> | |
<li>Lower Boundary: <userinput>>1000</userinput> <userinput>>=5%</userinput></li> | |
<li>Equality: <userinput>1000</userinput> <userinput>5%</userinput> <userinput>NaN</userinput> <userinput>∞</userinput></li> | |
<li>Inequality: <userinput>!=1000 <>5%</userinput> <userinput>!=NaN</userinput><note type="restriction">Experimental</note></li> | |
<li>Complement of interval: <userinput>!1000..10000</userinput> <userinput>!1%..10%</userinput> (all values including NaN except those in the interval [logical negation of range])<note type="restriction">Experimental</note></li> | |
<li>Complement of interval: U\1000..10000 U\1%..10% (all values excluding NaN except those in the interval [universal set difference from range])<note type="restriction">Experimental</note></li> | |
</ul> | |
</p> | |
<image href="../mimes/filter.png" align="left" placement="break" /> | |
To move between columns of the filter row, click on the required cell, or once one cell | |
is selected move to others with <uicontrol>tab</uicontrol> or <uicontrol>shift+tab</uicontrol>. | |
Use <uicontrol>esc</uicontrol> to cancel or <uicontrol>enter</uicontrol> to finish modifying the filters, or click on another row to continue to work | |
with the tree or table, or use | |
<uicontrol>ctrl+tab</uicontrol> or <uicontrol>command+tab</uicontrol> to navigate another pane. | |
<uicontrol>tab</uicontrol> or <uicontrol>shift+tab</uicontrol> will then revert to normal navigation. | |
</stentry> | |
</strow> | |
<strow> | |
<stentry>Resize and reorder columns</stentry> | |
<stentry> | |
To resize or rearrange columns using the keyboard select a filter entry | |
for the column as above. | |
<ul> | |
<li>Use <uicontrol>ctrl</uicontrol> or <uicontrol>command</uicontrol> | |
up and down cursor keys to resize the column.</li> | |
<li>Use <uicontrol>shift</uicontrol> up and down cursor keys to change the position of the column.</li> | |
<li>Use use <uicontrol>ctrl</uicontrol> or <uicontrol>command</uicontrol> <uicontrol>numpad plus</uicontrol> when not in edit filter mode to expand | |
columns to full width.</li> | |
</ul> | |
</stentry> | |
</strow> | |
<strow> | |
<stentry>Keyboard navigation of trees</stentry> | |
<stentry> | |
<ul> | |
<li>Use <uicontrol>numpad-plus</uicontrol> or <uicontrol>enter</uicontrol> to expand a row.</li> | |
<li>Use <uicontrol>shift+numpad-plus</uicontrol> to expand selected rows by one level.</li> | |
<li>Use <uicontrol>numpad-minus</uicontrol> or <uicontrol>enter</uicontrol> to collapse a row.</li> | |
<li>Use <uicontrol>numpad-multiply</uicontrol> to fully expand a row and its descendants. Use <uicontrol>escape</uicontrol> to cancel further expansion.</li> | |
<li>Use <uicontrol>numpad-divide</uicontrol> to fully collapse all selected rows and their descendants.</li> | |
</ul> | |
</stentry> | |
</strow> | |
<strow> | |
<stentry>Notes, Hyperlinks in Notes View</stentry> | |
<stentry> | |
Notes View recognizes and highlights object addresses. Activating | |
the hyperlink brings up a context menu which contains actions for | |
this particular object. Activate the hyperlink using the <uicontrol>control</uicontrol> key | |
and a mouse click (or <uicontrol>command</uicontrol> + click). | |
<image href="../mimes/m4d2fff8d.png" align="left" placement="break" /> | |
</stentry> | |
</strow> | |
<strow> | |
<stentry>Undo/redo in Notes View, OQL Pane</stentry> | |
<stentry> | |
There is undo/redo using <uicontrol>ctrl+Z</uicontrol> / <uicontrol>ctrl+Y</uicontrol> in the Notes View and | |
the OQL Pane. The navigator pane can also be used to retrieve | |
previous OQL statements. | |
</stentry> | |
</strow> | |
<strow> | |
<stentry>Copy To Clipboard</stentry> | |
<stentry> | |
Use <uicontrol>ctrl+C</uicontrol> to copy the selection to the clipboard. The data will | |
keep its structure: | |
<image href="../mimes/1af34c1.png" align="left" placement="break" /> | |
</stentry> | |
</strow> | |
<strow> | |
<stentry> Manage the history of opened heap dumps</stentry> | |
<stentry> | |
Heap Dump History view offers a set of context menu actions to | |
manage the history of opened heap dumps: | |
<image href="../mimes/691a2594.png" align="left" placement="break" /> | |
<p> | |
<uicontrol>Delete Heap Dump</uicontrol>> | |
action removes the heap dump from the history, but not from the | |
file system. To find a heap dump in the file system use | |
<uicontrol>Explore in File System</uicontrol>> | |
context menu action | |
</p> | |
</stentry> | |
</strow> | |
<strow id="editor_tabs"> | |
<stentry>Manage editor tabs</stentry> | |
<stentry> | |
Right click on the Heap Editor tab will open a context menu to | |
manage the tabs. It might be very helpful when many tabs are open. | |
<image href="../mimes/7df38219.png" align="left" placement="break" /> | |
Memory Analyzer 1.11 has the menu options | |
<ul> | |
<li><uicontrol>Close</uicontrol></li> | |
<li><uicontrol>Close Others</uicontrol></li> | |
<li><uicontrol>Close Tabs to the Left</uicontrol></li> | |
<li><uicontrol>Close Tabs to the Right</uicontrol></li> | |
<li><uicontrol>Move Tab <shortcut>L</shortcut>eft</uicontrol></li> | |
<li><uicontrol>Move Tab <shortcut>R</shortcut>ight</uicontrol></li> | |
<li><uicontrol>Close All</uicontrol></li> | |
</ul> | |
To use keyboard navigation, perform the following: | |
<ol> | |
<li>Use <uicontrol>tab</uicontrol> key | |
to move to the tab bar</li> | |
<li>Use | |
<ul> | |
<li><uicontrol>left-arrow</uicontrol></li> | |
<li><uicontrol>right-arrow</uicontrol></li> | |
</ul> | |
to select a tab</li> | |
<li>Use <uicontrol>ctrl+F10</uicontrol> to bring up the context menu</li> | |
<li>Use | |
<ul> | |
<li><menucascade><uicontrol>Move Tab <shortcut>L</shortcut>eft</uicontrol></menucascade> or the <uicontrol>L</uicontrol> key</li> | |
<li><menucascade><uicontrol>Move Tab <shortcut>R</shortcut>ight</uicontrol></menucascade> or the <uicontrol>R</uicontrol> key</li> | |
</ul> | |
to move the tab.</li> | |
</ol> | |
<image href="../mimes/movetab.png" align="left" placement="break" scale="60" /> | |
</stentry> | |
</strow> | |
<strow> | |
<stentry> Link Inspector View with Heap Editor</stentry> | |
<stentry> | |
Object Inspector View shows the details for the single selected | |
object. The view updates itself with every change in the | |
selection. Sometimes it is interesting to compare two or more | |
objects or just to capture the view. To do so use | |
<cmdname>Link with Snapshot</cmdname> | |
context menu. The Inspector view will keep its data. To have | |
another Inspector view, open it via | |
<menucascade> | |
<uicontrol>View</uicontrol> | |
<uicontrol>Inspector</uicontrol> | |
</menucascade> | |
<image href="../mimes/link_with_snapshot.png" align="left" placement="break" /> | |
</stentry> | |
</strow> | |
<strow id="value_tab"> | |
<stentry>Value tab in Inspector View</stentry> | |
<stentry> | |
The Object Inspector View shows the details for the single selected | |
object. The value tab shows the value as given by the | |
<xref href="../doc/org_eclipse_mat_api_nameResolver.html" format="html"> | |
name resolver</xref> extension point. | |
<image href="../mimes/inspector_value.png" align="left" placement="break" /> | |
</stentry> | |
</strow> | |
<strow> | |
<stentry>Image and Color objects</stentry> | |
<stentry> | |
The Object Inspector View | |
recreates Eclipse colors and images from the information in the heap dump and | |
displays the information in the lower left corner of the inspector. | |
<p> | |
<image href="../mimes/nn_inspector_imagedata.png" /> | |
<image href="../mimes/nn_inspector_rgb.png" /> | |
</p> | |
</stentry> | |
</strow> | |
<strow> | |
<stentry>Class Hierarchy in Inspector</stentry> | |
<stentry> | |
The inspector now displays the full class hierarchy of any selected object. | |
One can drill-down via context menus. | |
<image href="../mimes/nn_inspector_class_hierarchy.png" align="left" placement="break" /> | |
</stentry> | |
</strow> | |
<strow> | |
<stentry>Context menu for totals row</stentry> | |
<stentry> | |
The totals row now represents all the additional entries in a tree or table. | |
If the totals row is selected then the context menu will operate on all the unshown | |
entries in the tree or table. If all the rows are selected, for example using <uicontrol>ctrl+A</uicontrol>, | |
then the displayed rows are selected and the totals row is selected and then | |
the context menu will operate on all the entries in the tree and table. | |
Filtering operates as normal, and the rows excluded by the filter are not part of | |
the entries obtained by selecting the totals row. | |
<image href="../mimes/totals_menu.png" align="left" placement="break" /> | |
</stentry> | |
</strow> | |
<strow> | |
<stentry id="oqlcompletion">OQL autocompletion</stentry> | |
<stentry> | |
The Object Query Language (OQL) pane has syntax highlighting for OQL | |
keywords. It also offers suggestions for class names for the | |
<keyword>SELECT</keyword> <keyword>FROM</keyword> clause, both simple class names and regular expressions. | |
The class name list is brought up on typing a dot '.'. <uicontrol>ctrl+space</uicontrol> | |
can also be used to bring up the list. | |
<image href="../mimes/oql_completion1.png" align="left" placement="break" /> | |
The regular expression list appears on typing a double-quote '"'. | |
<image href="../mimes/oql_completion2.png" align="left" placement="break" /> | |
Autocompletion | |
for <keyword>SELECT</keyword> and <keyword>WHERE</keyword> clauses | |
can also supply field names. The class | |
for the field names is selected in the <keyword>FROM</keyword> clause by typing space | |
after the class name. This brings up a context information box, and | |
selects that class as the active class for field names. | |
<image href="../mimes/oql_completion3.png" align="left" placement="break"> | |
<alt><userinput>select s from java.util.ArrayList</userinput> | |
<systemoutput>java.util.ArrayList</systemoutput> | |
</alt> | |
</image> | |
Suggestions are then provided in the <keyword>SELECT</keyword> or | |
<keyword>WHERE</keyword> clauses on typing '<userinput>.</userinput>' or '<userinput>@</userinput>' or <uicontrol>ctrl+space</uicontrol>. | |
<image href="../mimes/oql_completion4.png" align="left" placement="break"> | |
</image> | |
Attributes begin with '@' and the autocompletion is filtered based on | |
what has been typed so far. | |
<image href="../mimes/oql_completion5.png" align="left" placement="break"> | |
</image> | |
In <keyword>SELECT</keyword> and <keyword>WHERE</keyword> clauses there are also suggestions for methods on | |
key Memory Analyzer objects representing contents of the snapshot. | |
<image href="../mimes/oql_completion6.png" align="left" placement="break"> | |
</image> | |
Pressing enter adds the selected text to the command window. | |
<image href="../mimes/oql_completion7.png" align="left" placement="break"> | |
</image> | |
</stentry> | |
</strow> | |
<strow id="piechartlinks"> | |
<stentry>Links in Pie Chart Image</stentry> | |
<stentry> | |
Memory Analyzer 1.11 adds hot-spots to the pie chart. | |
The legend entries now link to the referenced object. | |
<image href="../mimes/piechartlinks.png" align="left" placement="break" scale="50"> | |
<alt>Pie Chart showing links from legend</alt> | |
</image> | |
</stentry> | |
</strow> | |
</simpletable> | |
</section> | |
</refbody> | |
</reference> |