From 62b847a7ebf29a7d0f1529a8f1036754f6dc1b95 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 22 Sep 2020 19:49:27 +0100 Subject: [PATCH] 567256: Improve help and minor updates Help updates Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=567256 Change-Id: Ibbe8bfde44b6b741f18b376934df74d850391233 --- .../mat/inspections/BigDropsQuery.java | 4 +- .../mat/inspections/ClassReferrersQuery.java | 4 +- .../mat/inspections/HistogramQuery.java | 4 +- .../mat/inspections/LeakHunterQuery2.java | 2 +- .../mat/inspections/ObjectListQuery.java | 4 +- .../component/ComponentReportQuery.java | 33 +- .../component/TopComponentsReportQuery.java | 4 +- .../MultiplePath2GCRootsQuery.java | 22 +- .../mat/parser/internal/oql/OQLQueryImpl.java | 41 +- .../gettingstarted/basictutorial.dita | 4 +- .../gettingstarted/basictutorial.html | 4 +- .../mimes/merge_shortest_paths1.png | Bin 0 -> 75050 bytes .../mimes/merge_shortest_paths2.png | Bin 0 -> 44547 bytes .../mimes/merge_shortest_paths3.png | Bin 0 -> 49463 bytes .../reference/findingmemoryleak.dita | 12 +- .../reference/findingmemoryleak.html | 12 +- .../inspections/component_report.dita | 51 + .../inspections/component_report.html | 64 + .../inspections/duplicate_classes.html | 10 +- .../inspections/immediate_dominators.html | 14 +- .../inspections/merge_shortest_paths.dita | 177 + .../inspections/merge_shortest_paths.html | 211 ++ .../inspections/path_to_gc_roots.dita | 10 +- .../inspections/path_to_gc_roots.html | 27 +- .../reference/inspections/reference_leak.dita | 97 + .../reference/inspections/reference_leak.html | 138 + .../reference/inspections/top_consumers.dita | 5 +- .../reference/inspections/top_consumers.html | 20 +- .../reference/querymatrix.dita | 87 +- .../reference/querymatrix.html | 110 +- .../styles/commonltr.css | 2990 +++++++++-------- .../styles/commonrtl.css | 563 +++- .../tasks/runningleaksuspectreport.dita | 14 +- .../tasks/runningleaksuspectreport.html | 16 +- plugins/org.eclipse.mat.ui.help/toc.ditamap | 4 + plugins/org.eclipse.mat.ui.help/toc.xml | 2 +- .../mat/ui/snapshot/panes/OverviewPane.java | 9 + 37 files changed, 3194 insertions(+), 1575 deletions(-) create mode 100644 plugins/org.eclipse.mat.ui.help/mimes/merge_shortest_paths1.png create mode 100644 plugins/org.eclipse.mat.ui.help/mimes/merge_shortest_paths2.png create mode 100644 plugins/org.eclipse.mat.ui.help/mimes/merge_shortest_paths3.png create mode 100644 plugins/org.eclipse.mat.ui.help/reference/inspections/merge_shortest_paths.dita create mode 100644 plugins/org.eclipse.mat.ui.help/reference/inspections/merge_shortest_paths.html create mode 100644 plugins/org.eclipse.mat.ui.help/reference/inspections/reference_leak.dita create mode 100644 plugins/org.eclipse.mat.ui.help/reference/inspections/reference_leak.html diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/BigDropsQuery.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/BigDropsQuery.java index e7ae7936b..efe064ebc 100644 --- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/BigDropsQuery.java +++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/BigDropsQuery.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2018 SAP AG and IBM Corporation. + * 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 v1.0 * which accompanies this distribution, and is available at @@ -30,6 +30,7 @@ import org.eclipse.mat.query.annotations.Argument; import org.eclipse.mat.query.annotations.Argument.Advice; import org.eclipse.mat.query.annotations.CommandName; +import org.eclipse.mat.query.annotations.HelpUrl; import org.eclipse.mat.query.annotations.Icon; import org.eclipse.mat.snapshot.ISnapshot; import org.eclipse.mat.snapshot.model.IObject; @@ -37,6 +38,7 @@ @CommandName("big_drops_in_dominator_tree") @Icon("/META-INF/icons/big_drops.gif") +@HelpUrl("/org.eclipse.mat.ui.help/reference/findingmemoryleak.html#ref_findingmemoryleak__big_drops") public class BigDropsQuery implements IQuery, IResultTree { private final static int ROOT_ID = -1; diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/ClassReferrersQuery.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/ClassReferrersQuery.java index fb4129b4b..4d00e15c1 100644 --- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/ClassReferrersQuery.java +++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/ClassReferrersQuery.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2010 SAP AG. + * Copyright (c) 2008, 2020 SAP AG and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -32,6 +32,7 @@ import org.eclipse.mat.query.annotations.Argument; import org.eclipse.mat.query.annotations.Category; import org.eclipse.mat.query.annotations.CommandName; +import org.eclipse.mat.query.annotations.HelpUrl; import org.eclipse.mat.query.annotations.Icon; import org.eclipse.mat.query.annotations.Menu; import org.eclipse.mat.query.annotations.Menu.Entry; @@ -48,6 +49,7 @@ @Menu( { @Entry(icon = "/META-INF/icons/class_refs_outbound.gif"), // @Entry(options = "-inbound", icon = "/META-INF/icons/class_refs_inbound.gif") // }) +@HelpUrl("/org.eclipse.mat.ui.help/reference/querymatrix.html#ref_querymatrix__show_objects_by_class") public class ClassReferrersQuery implements IQuery { diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/HistogramQuery.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/HistogramQuery.java index c2d28eeb5..f6aff4fb1 100644 --- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/HistogramQuery.java +++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/HistogramQuery.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2010 SAP AG and IBM Corporation. + * 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 v1.0 * which accompanies this distribution, and is available at @@ -18,6 +18,7 @@ import org.eclipse.mat.query.IResult; import org.eclipse.mat.query.annotations.Argument; import org.eclipse.mat.query.annotations.CommandName; +import org.eclipse.mat.query.annotations.HelpUrl; import org.eclipse.mat.query.annotations.Icon; import org.eclipse.mat.snapshot.Histogram; import org.eclipse.mat.snapshot.ISnapshot; @@ -28,6 +29,7 @@ @CommandName("histogram") @Icon("/META-INF/icons/show_histogram.gif") +@HelpUrl("/org.eclipse.mat.ui.help/reference/querymatrix.html#ref_querymatrix__histogram") public class HistogramQuery implements IQuery { public enum Grouping diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/LeakHunterQuery2.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/LeakHunterQuery2.java index 70c20f5f0..2fb3bf178 100644 --- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/LeakHunterQuery2.java +++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/LeakHunterQuery2.java @@ -37,7 +37,7 @@ */ @CommandName("leakhunter2") @Icon("/META-INF/icons/leak.gif") -@HelpUrl("/org.eclipse.mat.ui.help/tasks/runningleaksuspectreport.html") +@HelpUrl("/org.eclipse.mat.ui.help/tasks/runningleaksuspectreport.html#task_runningleaksuspectreport__compare") public class LeakHunterQuery2 extends LeakHunterQuery { diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/ObjectListQuery.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/ObjectListQuery.java index 32ce00b14..67f1725d0 100644 --- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/ObjectListQuery.java +++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/ObjectListQuery.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2010 SAP AG. + * Copyright (c) 2008, 2020 SAP AG and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -15,6 +15,7 @@ import org.eclipse.mat.query.annotations.Argument; import org.eclipse.mat.query.annotations.Category; import org.eclipse.mat.query.annotations.CommandName; +import org.eclipse.mat.query.annotations.HelpUrl; import org.eclipse.mat.query.annotations.Icon; import org.eclipse.mat.query.annotations.Menu; import org.eclipse.mat.query.annotations.Menu.Entry; @@ -29,6 +30,7 @@ @Menu( { @Entry(icon = "/META-INF/icons/list_outbound.gif"), // @Entry(options = "-inbound", icon = "/META-INF/icons/list_inbound.gif") // }) +@HelpUrl("/org.eclipse.mat.ui.help/reference/querymatrix.html#ref_querymatrix__list_objects") public class ObjectListQuery implements IQuery { @Argument diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/ComponentReportQuery.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/ComponentReportQuery.java index dea9a37e8..f1473ac4f 100644 --- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/ComponentReportQuery.java +++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/ComponentReportQuery.java @@ -859,9 +859,15 @@ private void addReferenceStatistic(SectionSpec componentReport, Histogram histog { IInstance obj = (IInstance) snapshot.getObject(objectId); - ObjectReference ref = ReferenceQuery.getReferent(obj); - if (ref != null) - referentSet.add(ref.getObjectId()); + try + { + ObjectReference ref = ReferenceQuery.getReferent(obj); + if (ref != null) + referentSet.add(ref.getObjectId()); + } + catch (SnapshotException e) + { + } if (ticks.isCanceled()) break; } @@ -946,6 +952,7 @@ private void addReferenceStatistic(SectionSpec componentReport, Histogram histog * but through others. */ int maxpaths = 10; + double factor = 0.6; /* * Examine per class of the referred-to objects - as they might have different uses. @@ -978,7 +985,7 @@ private void addReferenceStatistic(SectionSpec componentReport, Histogram histog .setArgument("objects", ai.toArray()) //$NON-NLS-1$ .setArgument("maxpaths", maxpaths) //$NON-NLS-1$ .setArgument("maxobjs", maxsuspectspertype) //$NON-NLS-1$ - .setArgument("factor", 0.6) //$NON-NLS-1$ + .setArgument("factor", factor) //$NON-NLS-1$ .execute(ticks); if (result instanceof CompositeResult) { @@ -989,6 +996,24 @@ private void addReferenceStatistic(SectionSpec componentReport, Histogram histog commentSpec.set(Params.Html.IS_IMPORTANT, Boolean.TRUE.toString()); QuerySpec child1 = new QuerySpec(MessageUtil.format(Messages.ComponentReportQuery_ExampleLeakDetails, cr.getLabel()), cr1); child1.set(Params.Html.COLLAPSED, Boolean.TRUE.toString()); + // Set the command for further analysis later + if (ai.size() <= 30) + { + try + { + StringBuilder sb = new StringBuilder("reference_leak"); //$NON-NLS-1$ + sb.append(" -maxpaths ").append(maxpaths); //$NON-NLS-1$ + sb.append(" -maxobjs ").append(maxsuspectspertype); //$NON-NLS-1$ + sb.append(" -factor ").append(factor); //$NON-NLS-1$ + for (int i : ai.toArray()) + { + sb.append(" 0x").append(Long.toHexString(snapshot.mapIdToAddress(i))); //$NON-NLS-1$ + } + child1.setCommand(sb.toString()); + } + catch (SnapshotException e) + {} // Ignore if problem + } overview.add(child1); } else diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/TopComponentsReportQuery.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/TopComponentsReportQuery.java index 56d0d992e..b22aab5b0 100644 --- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/TopComponentsReportQuery.java +++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/TopComponentsReportQuery.java @@ -124,9 +124,9 @@ private String oqlLoader(String name, long loaderAddress) //"select * from objects (select objects a from objects (dominators(-1)) a) b"+ //$NON-NLS-1$ "select objects b as \"" + name + "\" from objects (select objects a from objects (dominators(-1)) a) b"+ //$NON-NLS-1$ //$NON-NLS-2$ " where"+ //$NON-NLS-1$ - " b.@objectAddress = " + loaderAddress + "L or"+ //$NON-NLS-1$ //$NON-NLS-2$ + " b implements org.eclipse.mat.snapshot.model.IClassLoader and b.@objectAddress = " + loaderAddress + "L or"+ //$NON-NLS-1$ //$NON-NLS-2$ " b implements org.eclipse.mat.snapshot.model.IClass and b.@classLoaderAddress = " + loaderAddress + "L or"+ //$NON-NLS-1$ //$NON-NLS-2$ - " (b implements org.eclipse.mat.snapshot.model.IClassLoader) = false and (b implements org.eclipse.mat.snapshot.model.IClass) = false and b.@clazz.@classLoaderAddress = " + loaderAddress + "L"; //$NON-NLS-1$ //$NON-NLS-2$ + " b implements org.eclipse.mat.snapshot.model.IClassLoader = false and b implements org.eclipse.mat.snapshot.model.IClass = false and b.@clazz.@classLoaderAddress = " + loaderAddress + "L"; //$NON-NLS-1$ //$NON-NLS-2$ //" $ {snapshot}.isClass(b.@objectId) and b.@classLoaderAddress = " + loaderAddress + "L or"+ //$NON-NLS-1$ //$NON-NLS-2$ //" $ {snapshot}.isClassLoader(b.@objectId) = false and $ {snapshot}.isClass(b.@objectId) = false and b.@clazz.@classLoaderAddress = " + loaderAddress + "L"; //$NON-NLS-1$ //$NON-NLS-2$ } diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/internal/snapshot/inspections/MultiplePath2GCRootsQuery.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/internal/snapshot/inspections/MultiplePath2GCRootsQuery.java index c31bcde70..e9a8d5dd4 100644 --- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/internal/snapshot/inspections/MultiplePath2GCRootsQuery.java +++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/internal/snapshot/inspections/MultiplePath2GCRootsQuery.java @@ -36,6 +36,7 @@ import org.eclipse.mat.query.ResultMetaData; import org.eclipse.mat.query.annotations.Argument; import org.eclipse.mat.query.annotations.CommandName; +import org.eclipse.mat.query.annotations.HelpUrl; import org.eclipse.mat.query.annotations.Icon; import org.eclipse.mat.query.annotations.Menu; import org.eclipse.mat.query.annotations.Menu.Entry; @@ -62,6 +63,7 @@ @Entry(options = "-excludes java.lang.ref.PhantomReference:referent java.lang.ref.WeakReference:referent java.lang.ref.Finalizer:referent java.lang.Runtime:"), // @Entry(options = "-excludes java.lang.ref.Reference:referent java.lang.Runtime:") // }) +@HelpUrl("/org.eclipse.mat.ui.help/reference/inspections/merge_shortest_paths.html") public class MultiplePath2GCRootsQuery implements IQuery { public enum Grouping @@ -520,15 +522,20 @@ public String suffix(Object row) public URL getIcon(Object row) { Node n = (Node) row; - return n.paths.size() == 1 && n.paths.get(0)[0] == n.objectId - ? Icons.forObject(snapshot, n.objectId) : Icons.outbound(snapshot, n.objectId); + return hasChildren(row) + ? Icons.outbound(snapshot, n.objectId) : Icons.forObject(snapshot, n.objectId); } @Override public boolean hasChildren(Object row) { Node n = (Node) row; - return !(n.paths.size() == 1 && n.paths.get(0)[0] == n.objectId); + for (int p[] : n.paths) + { + if (p[0] != n.objectId) + return true; + } + return false; } @Override @@ -730,7 +737,7 @@ public URL getIcon(Object row) Node n = (Node) row; if (mergeFromRoots) { - if (n.paths.size() == 1 && n.level == n.paths.get(0).length - 1) + if (!hasChildren(row)) return Icons.CLASS; return Icons.CLASS_OUT; } @@ -742,7 +749,12 @@ public URL getIcon(Object row) public boolean hasChildren(Object row) { Node n = (Node) row; - return !(n.paths.size() == 1 && n.level == n.paths.get(0).length - 1); + for (int p[] : n.paths) + { + if (n.level != p.length - 1) + return true; + } + return false; } @Override diff --git a/plugins/org.eclipse.mat.parser/src/org/eclipse/mat/parser/internal/oql/OQLQueryImpl.java b/plugins/org.eclipse.mat.parser/src/org/eclipse/mat/parser/internal/oql/OQLQueryImpl.java index e9b57c2fd..3e7f9c4c0 100644 --- a/plugins/org.eclipse.mat.parser/src/org/eclipse/mat/parser/internal/oql/OQLQueryImpl.java +++ b/plugins/org.eclipse.mat.parser/src/org/eclipse/mat/parser/internal/oql/OQLQueryImpl.java @@ -1594,7 +1594,10 @@ else if (this.query.getSelectClause().getSelectList().isEmpty() || this.query.ge private Object doSubQuery(IProgressListener monitor) throws SnapshotException { - int percentages[] = new int[] {300,100}; + // If there is a WHERE clause then allocate more ticks for processing that + int percentages[] = query.getWhereClause() == null ? + new int[] {300,100} + : new int[] {200,200}; SimpleMonitor listener = new SimpleMonitor(query.toString(), monitor, percentages); OQLQueryImpl subQuery = new OQLQueryImpl(this.ctx, query.getFromClause().getSubSelect()); Object result = subQuery.internalExecute(listener.nextMonitor()); @@ -1616,13 +1619,20 @@ else if (result instanceof AbstractCustomTableResultSet) else if (result instanceof Iterable) { List r = new ArrayList(); - + if (result instanceof Collection) + { + int count = ((Collection)result).size(); + String task = query.getWhereClause() != null ? "WHERE " + query.getWhereClause() : Messages.OQLQueryImpl_Selecting; //$NON-NLS-1$ + monitor.beginTask(task, count); + } for (Object obj : (Iterable) result) { if (accept(obj, monitor)) r.add(obj); if (monitor.isCanceled()) throw new IProgressListener.OperationCanceledException(); + if (result instanceof Collection) + monitor.worked(1); } return r.isEmpty() ? null : select(r, monitor); @@ -1632,6 +1642,8 @@ else if (result.getClass().isArray()) List r = new ArrayList(); int length = Array.getLength(result); + String task = query.getWhereClause() != null ? "WHERE " + query.getWhereClause() : Messages.OQLQueryImpl_Selecting; //$NON-NLS-1$ + monitor.beginTask(task, length); for (int ii = 0; ii < length; ii++) { Object obj = Array.get(result, ii); @@ -1639,6 +1651,7 @@ else if (result.getClass().isArray()) r.add(obj); if (monitor.isCanceled()) throw new IProgressListener.OperationCanceledException(); + monitor.worked(1); } return r.isEmpty() ? null : select(r, monitor); } @@ -1835,7 +1848,9 @@ private Object doMethodCall(IProgressListener listener) throws SnapshotException this.ctx.setSubject(this.ctx.getSnapshot()); IProgressListener old = ctx.getProgressListener(); this.ctx.setProgressListener(smlistener.nextMonitor()); + this.ctx.getProgressListener().subTask("FROM "+query.getFromClause().toString()); //$NON-NLS-1$ Object result = method.compute(this.ctx); + this.ctx.getProgressListener().done(); this.ctx.setProgressListener(old); listener = smlistener.nextMonitor(); @@ -1848,13 +1863,20 @@ private Object doMethodCall(IProgressListener listener) throws SnapshotException else if (result instanceof Iterable) { List r = new ArrayList(); - + if (result instanceof Collection) + { + int length = ((Collection)result).size(); + String task = query.getWhereClause() != null ? "WHERE " + query.getWhereClause() : Messages.OQLQueryImpl_Selecting; //$NON-NLS-1$ + listener.beginTask(task, length); + } for (Object obj : (Iterable) result) { if (accept(obj, listener)) r.add(obj); if (listener.isCanceled()) throw new IProgressListener.OperationCanceledException(); + if (result instanceof Collection) + listener.worked(1); } return r.isEmpty() ? null : select(r, listener); @@ -1864,6 +1886,8 @@ else if (result.getClass().isArray()) List r = new ArrayList(); int length = Array.getLength(result); + String task = query.getWhereClause() != null ? "WHERE " + query.getWhereClause() : Messages.OQLQueryImpl_Selecting; //$NON-NLS-1$ + listener.beginTask(task, length); for (int ii = 0; ii < length; ii++) { Object obj = Array.get(result, ii); @@ -1871,6 +1895,7 @@ else if (result.getClass().isArray()) r.add(obj); if (listener.isCanceled()) throw new IProgressListener.OperationCanceledException(); + listener.worked(1); } return r.isEmpty() ? null : select(r, listener); @@ -2118,6 +2143,9 @@ private boolean accept(Object object, IProgressListener mon) throws SnapshotExce private Object filterAndSelect(IntResult objectIds, IProgressListener listener) throws SnapshotException { + String task = query.getWhereClause() != null ? "WHERE " + query.getWhereClause() : Messages.OQLQueryImpl_Selecting; //$NON-NLS-1$ + listener.beginTask(task, objectIds.size()); + IntResult filteredSet = createIntResult(objectIds.size()); for (IntIterator iter = objectIds.iterator(); iter.hasNext();) @@ -2128,6 +2156,7 @@ private Object filterAndSelect(IntResult objectIds, IProgressListener listener) int id = iter.nextInt(); if (accept(id, listener)) filteredSet.add(id); + listener.worked(1); } return filteredSet.isEmpty() ? null : select(filteredSet, listener); @@ -2223,7 +2252,8 @@ private Object filterAndSelect(IStructuredResult result, IProgressListener liste IStructuredResult irt = (IStructuredResult)result; Listelements = irt instanceof IResultTree ? ((IResultTree)irt).getElements() : null; int count = irt instanceof IResultTable ? ((IResultTable)irt).getRowCount() : elements.size(); - listener.beginTask(Messages.OQLQueryImpl_Selecting, count); + String task = query.getWhereClause() != null ? "WHERE " + query.getWhereClause() : Messages.OQLQueryImpl_Selecting; //$NON-NLS-1$ + listener.beginTask(task, count); for (int ii = 0; ii < count; ii++) { if (listener.isCanceled()) @@ -2244,7 +2274,8 @@ private Object filterAndSelect(IStructuredResult result, IProgressListener liste private Object filterAndSelect(AbstractCustomTableResultSet result, IProgressListener listener) throws SnapshotException { List r = new ArrayList(); - listener.beginTask(Messages.OQLQueryImpl_Selecting, result.getRowCount() * 2); + String task = query.getWhereClause() != null ? "WHERE " + query.getWhereClause() : Messages.OQLQueryImpl_Selecting; //$NON-NLS-1$ + listener.beginTask(task, result.getRowCount() * 2); IProgressListener old = this.ctx.getProgressListener(); this.ctx.setProgressListener(new SilentProgressListener(listener)); for (AbstractCustomTableResultSet.RowMap rowobj : result) diff --git a/plugins/org.eclipse.mat.ui.help/gettingstarted/basictutorial.dita b/plugins/org.eclipse.mat.ui.help/gettingstarted/basictutorial.dita index 84ee10865..32899176b 100644 --- a/plugins/org.eclipse.mat.ui.help/gettingstarted/basictutorial.dita +++ b/plugins/org.eclipse.mat.ui.help/gettingstarted/basictutorial.dita @@ -149,7 +149,7 @@ - + Examine the Overview @@ -198,7 +198,7 @@

- + Get the Histogram diff --git a/plugins/org.eclipse.mat.ui.help/gettingstarted/basictutorial.html b/plugins/org.eclipse.mat.ui.help/gettingstarted/basictutorial.html index 6ef595d5f..823d9530c 100644 --- a/plugins/org.eclipse.mat.ui.help/gettingstarted/basictutorial.html +++ b/plugins/org.eclipse.mat.ui.help/gettingstarted/basictutorial.html @@ -142,7 +142,7 @@

Basic Tutorial

-
  • +
  • Examine the Overview @@ -186,7 +186,7 @@

    Basic Tutorial

  • -
  • +
  • Get the Histogram diff --git a/plugins/org.eclipse.mat.ui.help/mimes/merge_shortest_paths1.png b/plugins/org.eclipse.mat.ui.help/mimes/merge_shortest_paths1.png new file mode 100644 index 0000000000000000000000000000000000000000..8f9bb5920aa0f74dd2985139c594e33340c367f6 GIT binary patch literal 75050 zcmZtt1yoc~*FTOAC0zm{jUXim64K0&BGMw#3@Q@R-7_F9C4zJ#f;1um5<_=45<_~~`4=SFS-z+Ly-Kb%D?Hg5m` zQ=q1-@XFhKuZi4(ML!h*s(qFF(>U?h0l$7uZ<&KHy?KzwYMF_R?z=VGb02ABB9%{+jJD*4+0@w+PX+=_oH3n0<-2uxO`jY;3#tp>wiHGgm_4*CeKyi&v%K z*I?5HMs_nJRZ7%tXuh89>W>eEtk!xc<51LX!)M56=;7(WjQSk~D*S)s7VNVE{>V=B zk2V0`0RO$;!TganaO~u)3~Y26HXTXxQTT_0h#w6PNuY1Y?dVUIR{J=YQ`&dX>+*^j zDgM8{AN*Bk>g-KCsa6%oEcFQGFMBnjIQQH5>DhCB&5wGnOp30U4p(@J6D4QWmNC(m zj~#W4!aJeYuHp`s)z7#ydo2}b-OvASnJi+?K~xW3Xd=Y<0&O*rd-UildQgCAhNMq7 z7n`)lC^(WP&t2n#7Y&w!4pR#&K7hpOBJ$MwK<50oNKzu2Yg51J;>63|3GzIHaATsH zrEPs}Z=ET$KN&3RI*h39W^_bvMYY3kMhagC>}H{yZW1mayV)>ma-o15RdgKDw+BK5 zOQ_mIYMw_~bx=)Py1;g!=AT}tmd6H#n2j{9w*H4zhp=o0xvL+b62q!3&9)MEeA|TV zJwN0o2vaX998D_Jh!~q>yUWw8k&lbOu)=bGuaEAfy0|#r^)>6%89sADjd;3fB~rWu z+)6(0IW4!mK>!e^TNEUe`qo+Lg#PluPymD9cD*&^Oldbz&*g!(Nb1P@!$Wr#Ck@zl zJu=fhZPeS7-|6R|^T|S0=$jD5S&Xj7TjUHq+h6C6j|Cjcd?`I)KaJkCCz!-$Nm5W8 z;@~Kc+#N-AI4z!bxjB}Y9M8eED>)sc7BPz;(}3P|%z5i7$JWI0Kurt)v9Nj)oN*eqknzDH;t3Ea=bQWE2X@ed3lAF2J*T_ZwjYyMKR0r=ZVN{>8>}beiO!*LgBm*My-SV^DZ#+CqMkq z+cdM|&>83P0=By5qsuDL<&uX)^-eq3 z;A`+DA?*6>2RuV#7>a6y`fSZ%jz>nuY9FJ|dWjK@D`TNNP|{hgr=Z#J*JA7!;Il(5~$rc>xKo8qzqAntSJ0ZIOZ5NLhmj`-;?%gceDR;KnF1u$47roDs@9CVVHucoi zx;Sq2gV%uecwI01NAT)T(qZ~dz5c^tjmFczeE)eq+#)%EK*l9Wc^vNrEQi7Y#~siG z&bA+t*A08H z%IY0ZFN}d_LFndTzUy@!fjpQ{fUM;Y$*Z~3ZFkRQwgEP%#|i@Db-cj#XD1HiJ~;wq z3D}+_M#yFkWuOz++*zWeP{f3KmjU|SA_%i7dl@=TQ>ZBO zOmXP|YPBc|BY98$4)G+b?Wp}7f#7dTZu7y6>lzQ_<~W?yf2ᖲgfo~aRV!g$pq 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

    L8^ti0r4&2)YX_FVd-4q`SE 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 literal 0 HcmV?d00001 diff --git a/plugins/org.eclipse.mat.ui.help/mimes/merge_shortest_paths2.png b/plugins/org.eclipse.mat.ui.help/mimes/merge_shortest_paths2.png new file mode 100644 index 0000000000000000000000000000000000000000..61276672be59b191d88a84b82b7f508df132e57a GIT binary patch literal 44547 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 literal 0 HcmV?d00001 diff --git a/plugins/org.eclipse.mat.ui.help/mimes/merge_shortest_paths3.png b/plugins/org.eclipse.mat.ui.help/mimes/merge_shortest_paths3.png new file mode 100644 index 0000000000000000000000000000000000000000..0e65d888607fae6395791a962d12900c5f134b09 GIT binary patch literal 49463 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 - + Dominator Tree In Dominator Tree every node is responsible for @@ -69,7 +69,7 @@ loader to reveal big memory chunks. - + Top Consumers Top Consumers query returns information about @@ -77,7 +77,7 @@ loader, and package. - + Paths to GC Roots Paths to GC Roots query helps to identify who is @@ -90,19 +90,19 @@ entry further down for more details). - + Duplicate Classes Lists classes loaded multiple times. Grouping the result by class loader points to the class loaders that load the same class multiple times. Possible cause: Several versions of the same library are deployed. - + Big Drops in Dominator Tree Query Displays memory accumulation points in the dominator tree. Displayed are objects with a big difference between the retained size of the parent and the children and the first "interesting" dominator of the accumulation point. These are places where the memory of many small objects is accumulated under one object. - + Leak Suspects Report The Leak Suspects query analyzes the heap dump, searches for memory leak and provides an illustrative description of the identified suspects. diff --git a/plugins/org.eclipse.mat.ui.help/reference/findingmemoryleak.html b/plugins/org.eclipse.mat.ui.help/reference/findingmemoryleak.html index 41ce06b1f..79e5a1a2a 100644 --- a/plugins/org.eclipse.mat.ui.help/reference/findingmemoryleak.html +++ b/plugins/org.eclipse.mat.ui.help/reference/findingmemoryleak.html @@ -64,7 +64,7 @@

    Finding Memory Leak

    most helpful in analyzing memory leak issues.

    - +
    - + - + - + - + - +
    Dominator Tree @@ -78,7 +78,7 @@

    Finding Memory Leak

    Top Consumers @@ -88,7 +88,7 @@

    Finding Memory Leak

    Paths to GC Roots @@ -103,7 +103,7 @@

    Finding Memory Leak

    Duplicate Classes @@ -111,7 +111,7 @@

    Finding Memory Leak

    Big Drops in Dominator Tree Query @@ -119,7 +119,7 @@

    Finding Memory Leak

    Leak Suspects Report diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/component_report.dita b/plugins/org.eclipse.mat.ui.help/reference/inspections/component_report.dita index 54fd4705b..6016cb08c 100644 --- a/plugins/org.eclipse.mat.ui.help/reference/inspections/component_report.dita +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/component_report.dita @@ -193,6 +193,57 @@ is stopped. + The report shows: +
      +
    • Comment + An example is the following: + A total of 217,035 java.lang.ref.SoftReference objects have been found, which softly reference 38,874 objects. +77,745 objects totalling 20.8 MB are retained (kept alive) only via soft references. +No objects totalling 0 B are softly referenced and also strongly retained (kept alive) via soft references. + +
    • +
    • Histogram of Soft References + These are the reference objects which are instances of a type or subclass of java.lang.ref.SoftReference
    • +
    • Histogram of Softly Referenced + These are the objects which the referent fields point to.
    • +
    • Only Softly Retained + These are all the objects retained the objects in the Only Softly Retained + table. All these objects could be freed in the next garbage collection cycle + if the VM was short of memory.
    • +
    • Referents strongly retained by soft reference + These could indicate a possible memory leak, as the referent field can + never be cleared while there is a strong path from the soft references + to the referenced objects.
    • +
    • If there are objects in the Referents strongly retained by soft reference + table then the Reference Leak + is run to examine the possible leaks in more detail. + + This might not show the same problems because the initial report + Referents strongly retained by soft reference is done for + all references of a particular type whereas the Reference Leak + query operates on individual references.
    • +
    +

    + +
    + Weak Reference Statistics +

    + Weak references are cleared by the virtual machine when the + object referred to by the referent is no longer strongly reachable + or softly reachable + via another path. + Usually, weak references are used to retain extra data associated + with an object in a java.util.WeakHashMap + or to maintain a canonical mapping as the canonical object can + be retrieved if it is in use anywhere, but if no longer in use + then the mapping table will not keep it alive. +

    +

    The report follows the format of the Soft Reference + section above. An example of the comment is + A total of 620 java.lang.ref.WeakReference objects have been found, which weakly reference 436 objects. +No objects totalling 0 B are retained (kept alive) only via weak references. +Possible Memory Leak 301 objects totalling 7.1 KB are weakly referenced and also strongly retained (kept alive) via weak references. +

    diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/component_report.html b/plugins/org.eclipse.mat.ui.help/reference/inspections/component_report.html index 49640b1de..7d62c568f 100644 --- a/plugins/org.eclipse.mat.ui.help/reference/inspections/component_report.html +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/component_report.html @@ -213,6 +213,70 @@

    Component Report

    + The report shows: +
      +
    • Comment + An example is the following: +

      A total of 217,035 java.lang.ref.SoftReference objects have been found, which softly reference 38,874 objects.
      +77,745 objects totalling 20.8 MB are retained (kept alive) only via soft references.
      +No objects totalling 0 B are softly referenced and also strongly retained (kept alive) via soft references.
      +

      + +
    • + +
    • Histogram of Soft References + These are the reference objects which are instances of a type or subclass of java.lang.ref.SoftReference
    • + +
    • Histogram of Softly Referenced + These are the objects which the referent fields point to.
    • + +
    • Only Softly Retained + These are all the objects retained the objects in the Only Softly Retained + table. All these objects could be freed in the next garbage collection cycle + if the VM was short of memory.
    • + +
    • Referents strongly retained by soft reference + These could indicate a possible memory leak, as the referent field can + never be cleared while there is a strong path from the soft references + to the referenced objects.
    • + +
    • If there are objects in the Referents strongly retained by soft reference + table then the Reference Leak + is run to examine the possible leaks in more detail. +
      Note: + This might not show the same problems because the initial report + Referents strongly retained by soft reference is done for + all references of a particular type whereas the Reference Leak + query operates on individual references.
      +
    • + +
    + + + + + +

    Weak Reference Statistics

    + +

    + Weak references are cleared by the virtual machine when the + object referred to by the referent is no longer strongly reachable + or softly reachable + via another path. + Usually, weak references are used to retain extra data associated + with an object in a java.util.WeakHashMap + or to maintain a canonical mapping as the canonical object can + be retrieved if it is in use anywhere, but if no longer in use + then the mapping table will not keep it alive. +

    + +
    The report follows the format of the Soft Reference + section above. An example of the comment is +

    A total of 620 java.lang.ref.WeakReference objects have been found, which weakly reference 436 objects.
    +No objects totalling 0 B are retained (kept alive) only via weak references.
    +Possible Memory Leak 301 objects totalling 7.1 KB are weakly referenced and also strongly retained (kept alive) via weak references.
    +

    +
    diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/duplicate_classes.html b/plugins/org.eclipse.mat.ui.help/reference/inspections/duplicate_classes.html index be91895a9..58dccc5ba 100644 --- a/plugins/org.eclipse.mat.ui.help/reference/inspections/duplicate_classes.html +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/duplicate_classes.html @@ -35,15 +35,15 @@

    Duplicate Classes

    Arguments

    - + - + - + - +
    ArgumentArgumentDescriptionDescription
    NoneNoneNo arguments are supplied to this queryNo arguments are supplied to this query
    @@ -71,7 +71,7 @@

    Duplicate Classes

    If there are no or few instances shown in a class loader line then that class loader might not be used anymore, but some spurious refence might be keeping the class loader alive or one of its defined classes or some of the instances alive, and so - that class loader alive. The Path to GC Roots + that class loader alive. The Path to GC Roots query can help tell why a class loader is kept alive.

    Note: Java 8 and later virtual machines create some synthetic classes diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/immediate_dominators.html b/plugins/org.eclipse.mat.ui.help/reference/inspections/immediate_dominators.html index f14f4d3dc..3bc8e9176 100644 --- a/plugins/org.eclipse.mat.ui.help/reference/inspections/immediate_dominators.html +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/immediate_dominators.html @@ -35,7 +35,7 @@

    Immediate Dominators

    To find out why a single object is still in the heap is easy: follow the - shortest path + shortest path to any GC root. But what if you have thousands of objects? Expanding every single path is too time consuming. Immediate dominators is a very effective way to find out who is keeping a set of objects @@ -85,21 +85,21 @@

    Immediate Dominators

    Arguments

    - + - + - + - + - + -
    ArgumentArgumentDescriptionDescription
    objectsobjectsAn arbitrary set of objects to be analyzed.An arbitrary set of objects to be analyzed.
    -skip-skip +

    A regular expression specifying which objects to skip while going up the dominator tree. If the dominator of an object matches the pattern, then the dominator of that dominator will be diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/merge_shortest_paths.dita b/plugins/org.eclipse.mat.ui.help/reference/inspections/merge_shortest_paths.dita new file mode 100644 index 000000000..aec4a1afd --- /dev/null +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/merge_shortest_paths.dita @@ -0,0 +1,177 @@ + + + + Merge Shortest Paths + Find out who is keeping alive a set of objects. + + + + + + Copyright (c) 2020 IBM Corporation. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + + + + +

    + Motivation +

    Having found an expensive object it is then important to find all + the reasons it is kept alive. +

    +
    +
    + Explanation +

    + Unlike the + Path to GC roots + query, this query + can operate on multiple objects. + However, it only + finds the shortest path to GC roots; there may + be other paths, but + this query does not show them. + As it operates on multiple objects + there are multiple paths, + and the query has the option to merge + objects on a path by + class. + Seeing a common path can be useful in + understanding why a + set of objects is being kept alive. +

    +
    +
    + Arguments + + + Argument + Description + + + objects + Objects for which paths to garbage collection roots should + be + found. + + + + + -excludes + + + Fields of certain classes which should be ignored when finding + paths. For example this allows paths through Weak or Soft + Reference referents to be ignored. + This is of the format + class name pattern + [: + field name + [, + field name + ]*]. + Subclasses of the class are also included. + If no field names + are specified for the class then all fields are + excluded. + + + + + -groupby + + + Whether to show: +
      +
    • + Merge Paths from GC Roots + merged paths from garbage collection roots to the objects +
    • +
    • + Merge Paths from GC Roots on Class + merged paths from garbage collection roots to the objects + grouped by class, so all objects of the same class are shown as + one +
    • +
    • + Merge to GC Roots on Class + merged paths from the objects to garbage collection roots + grouped + by class, so all objects of the same class are shown as + one +
    • +
    +
    +
    +
    +
    +
    + Result +

    + The tree shows objects or sets of objects grouped by class on a path + to or from GC roots. + The + Referenced Objects + column shows how many + of the objects supplied to this query are on a path through this + row. +

    +

    The context menu allows the objects on this segment of the path, + or the referenced objects through this path to be separately + examined with other queries. +

    + Merge shortest paths from GC roots + + + With + Merge Paths from GC Roots + and + Merge from GC Roots on Class + the arrows in each + + + icon + + points down and to the right, showing + that the objects or objects of + a line refer via the field in + bold + to the following object or objects in + the tree view which is down and + to the right. + The + Merge from GC Roots on Class + does + not show field names as different objects may refer to + the + following objects by different fields. + + Merge shortest paths from GC roots on class + + See the menu option to switch between the different groupby + options. + Merge shortest paths to GC roots on class + + + With + Merge to GC Roots on Class + the arrows in each + + + icon + + points up and to the left, showing + that the object or objects of a + line actually refer + to the preceding objects in + the tree view which is + up and to the left. + +
    + + diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/merge_shortest_paths.html b/plugins/org.eclipse.mat.ui.help/reference/inspections/merge_shortest_paths.html new file mode 100644 index 000000000..f5e1d1307 --- /dev/null +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/merge_shortest_paths.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + +Merge Shortest Paths + + + + +

    Merge Shortest Paths

    + + + + +

    Find out who is keeping alive a set of objects. +

    + +

    Motivation

    + +

    Having found an expensive object it is then important to find all + the reasons it is kept alive. +

    + +
    + +

    Explanation

    + +

    + Unlike the + Path to GC roots + query, this query + can operate on multiple objects. + However, it only + finds the shortest path to GC roots; there may + be other paths, but + this query does not show them. + As it operates on multiple objects + there are multiple paths, + and the query has the option to merge + objects on a path by + class. + Seeing a common path can be useful in + understanding why a + set of objects is being kept alive. +

    + +
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArgumentDescription
    objectsObjects for which paths to garbage collection roots should + be + found. +
    + -excludes + + Fields of certain classes which should be ignored when finding + paths. For example this allows paths through Weak or Soft + Reference referents to be ignored. + This is of the format + class name pattern + [: + field name + [, + field name + ]*]. + Subclasses of the class are also included. + If no field names + are specified for the class then all fields are + excluded. +
    + -groupby + + Whether to show: +
      +
    • + Merge Paths from GC Roots + merged paths from garbage collection roots to the objects +
    • + +
    • + Merge Paths from GC Roots on Class + merged paths from garbage collection roots to the objects + grouped by class, so all objects of the same class are shown as + one +
    • + +
    • + Merge to GC Roots on Class + merged paths from the objects to garbage collection roots + grouped + by class, so all objects of the same class are shown as + one +
    • + +
    + +
    + +
    + +

    Result

    + +

    + The tree shows objects or sets of objects grouped by class on a path + to or from GC roots. + The + Referenced Objects + column shows how many + of the objects supplied to this query are on a path through this + row. +

    + +

    The context menu allows the objects on this segment of the path, + or the referenced objects through this path to be separately + examined with other queries. +

    + + Merge shortest paths from GC roots + +
    Note: + With + Merge Paths from GC Roots + and + Merge from GC Roots on Class + the arrows in each + + + icon + + points down and to the right, showing + that the objects or objects of + a line refer via the field in + bold + to the following object or objects in + the tree view which is down and + to the right. + The + Merge from GC Roots on Class + does + not show field names as different objects may refer to + the + following objects by different fields. +
    + + Merge shortest paths from GC roots on class + +
    Note: See the menu option to switch between the different groupby + options.
    + + Merge shortest paths to GC roots on class + +
    Note: + With + Merge to GC Roots on Class + the arrows in each + + + icon + + points up and to the left, showing + that the object or objects of a + line actually refer + to the preceding objects in + the tree view which is + up and to the left. +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/path_to_gc_roots.dita b/plugins/org.eclipse.mat.ui.help/reference/inspections/path_to_gc_roots.dita index ce15297b8..8c375e796 100644 --- a/plugins/org.eclipse.mat.ui.help/reference/inspections/path_to_gc_roots.dita +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/path_to_gc_roots.dita @@ -2,7 +2,7 @@ Path to GC Roots - Find out who is keeping alive a set of objects. + Find out who is keeping alive a single object. @@ -34,7 +34,7 @@ One object for which the paths to GC roots should be found. - -excludes + -excludes Fields of certain classes which should be ignored when finding paths. For example this allows paths through Weak or Soft Reference referents to be ignored. This is of the format class name pattern[:field name[,field name]*]. Subclasses of the class are also included. @@ -42,13 +42,17 @@ - -numberofpaths + -numberofpaths The number of different paths to be displayed.
    Result + + With the arrows in each icon points up and to the left, showing + that the field in bold of the object of a line actually refers + to the preceding object in the tree view which is up and to the left.
    diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/path_to_gc_roots.html b/plugins/org.eclipse.mat.ui.help/reference/inspections/path_to_gc_roots.html index 46d7980e9..d72187e94 100644 --- a/plugins/org.eclipse.mat.ui.help/reference/inspections/path_to_gc_roots.html +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/path_to_gc_roots.html @@ -6,8 +6,8 @@ - - + + @@ -24,7 +24,7 @@

    Path to GC Roots

    -

    Find out who is keeping alive a set of objects. +

    Find out who is keeping alive a single object.

    Motivation

    @@ -36,21 +36,21 @@

    Path to GC Roots

    Arguments

    - + - + - + - + - + - - + - +
    ArgumentArgumentDescriptionDescription
    objectobjectOne object for which the paths to GC roots should be found.One object for which the paths to GC roots should be found.
    -excludes-excludesFields of certain classes which should be ignored when finding paths. For example this allows paths through Weak or Soft Reference referents to be ignored. + Fields of certain classes which should be ignored when finding paths. For example this allows paths through Weak or Soft Reference referents to be ignored. This is of the format class name pattern[:field name[,field name]*]. Subclasses of the class are also included. If no field names are specified for the class then all fields are excluded. @@ -58,9 +58,9 @@

    Path to GC Roots

    -numberofpaths-numberofpathsThe number of different paths to be displayed.The number of different paths to be displayed.
    @@ -69,6 +69,11 @@

    Path to GC Roots

    Result

    + +
    Note: With the arrows in each icon points up and to the left, showing + that the field in bold of the object of a line actually refers + to the preceding object in the tree view which is up and to the left.
    +
    diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/reference_leak.dita b/plugins/org.eclipse.mat.ui.help/reference/inspections/reference_leak.dita new file mode 100644 index 000000000..949332841 --- /dev/null +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/reference_leak.dita @@ -0,0 +1,97 @@ + + + + Reference Leak + Find incorrect uses of soft or weak references. + + + + + + Copyright (c) 2020 IBM Corporation. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + + + +
    + Motivation +

    Soft references java.lang.ref.SoftReference and + weak references java.lang.ref.WeakReference are used + to keep references to objects which can be cleared by garbage collection + if there are no other strong references.

    +

    Soft references can be used for object caching, so that + an object can usually be retained for fast access, but if + memory is tight then garbage collection can break the link and free the + object. Next time it is needed then the application program can + regenerate the object.

    +

    Weak references can be used in a weak hash map java.util.WeakHashMap to hold information associated with + another object, but if that object is no longer available + then the associated information can be freed too.

    +

    Sometimes an error in the application program can mean that + the object which is supposed to be softly or weakly referenced is + also strongly retained by the reference object. For example the + key of a weak hash map is weakly retained, but if there is a strong + reference to it from the value of the weak hash map entry then the + object will never be freed.

    +
    +
    + Operation +

    This query performs the following steps: +

      +
    1. For each reference object supplied to the query, + find the object referred to by the reference object via the + reference field.
    2. +
    3. Find all the objects strongly retained by the reference object.
    4. +
    5. Find if the object from the first step is also in the + second list. If so: +
        +
      1. Generate a tree with a path showing the reference object, the referent + and the strong path to the referent.
      2. +
      3. Generate a tree showing paths from GC roots to the + reference object including showing field names.
      4. +
      +
    6. +
    +

    +

    This type of query is also performed by the component report. +

    +
    +
    + Arguments + + + Argument + Description + + + objects + Reference objects for which the reference leaks query should be run. + + + -referent_attribute + The referent field name for the reference objects. + The default is referent + + + -maxresults + The maximum number of objects for which a tree should be shown. + + + -maxobjs + The maximum number of objects to be examined for leaks. A random selection of the total objects will be chosen. + + + -factor + For common paths, how much to truncate the path as the number of objects reduces. + + +
    +
    + Result +
    +
    +
    diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/reference_leak.html b/plugins/org.eclipse.mat.ui.help/reference/inspections/reference_leak.html new file mode 100644 index 000000000..af2a68e3a --- /dev/null +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/reference_leak.html @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + +Reference Leak + + + + +

    Reference Leak

    + + + +

    Find incorrect uses of soft or weak references. +

    + +

    Motivation

    + +

    Soft references java.lang.ref.SoftReference and + weak references java.lang.ref.WeakReference are used + to keep references to objects which can be cleared by garbage collection + if there are no other strong references.

    + +

    Soft references can be used for object caching, so that + an object can usually be retained for fast access, but if + memory is tight then garbage collection can break the link and free the + object. Next time it is needed then the application program can + regenerate the object.

    + +

    Weak references can be used in a weak hash map java.util.WeakHashMap to hold information associated with + another object, but if that object is no longer available + then the associated information can be freed too.

    + +

    Sometimes an error in the application program can mean that + the object which is supposed to be softly or weakly referenced is + also strongly retained by the reference object. For example the + key of a weak hash map is weakly retained, but if there is a strong + reference to it from the value of the weak hash map entry then the + object will never be freed.

    + +
    + +

    Operation

    + +
    This query performs the following steps: +
      +
    1. For each reference object supplied to the query, + find the object referred to by the reference object via the + reference field.
    2. + +
    3. Find all the objects strongly retained by the reference object.
    4. + +
    5. Find if the object from the first step is also in the + second list. If so: +
        +
      1. Generate a tree with a path showing the reference object, the referent + and the strong path to the referent.
      2. + +
      3. Generate a tree showing paths from GC roots to the + reference object including showing field names.
      4. + +
      + +
    6. + +
    + +
    + +

    This type of query is also performed by the component report. +

    + +
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArgumentDescription
    objectsReference objects for which the reference leaks query should be run.
    -referent_attributeThe referent field name for the reference objects. + The default is referent
    -maxresultsThe maximum number of objects for which a tree should be shown.
    -maxobjsThe maximum number of objects to be examined for leaks. A random selection of the total objects will be chosen.
    -factorFor common paths, how much to truncate the path as the number of objects reduces.
    + +
    + +

    Result

    + +
    + +
    + + + + \ No newline at end of file diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/top_consumers.dita b/plugins/org.eclipse.mat.ui.help/reference/inspections/top_consumers.dita index 8da5b1088..0c93f7019 100644 --- a/plugins/org.eclipse.mat.ui.help/reference/inspections/top_consumers.dita +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/top_consumers.dita @@ -8,7 +8,7 @@ - Copyright (c) 2008, 2010 SAP AG and others. + Copyright (c) 2008, 2020 SAP AG and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at @@ -41,6 +41,9 @@
    Result + +

    See List Biggest Objects + for more information.

    diff --git a/plugins/org.eclipse.mat.ui.help/reference/inspections/top_consumers.html b/plugins/org.eclipse.mat.ui.help/reference/inspections/top_consumers.html index 3ac0adae2..e7791d875 100644 --- a/plugins/org.eclipse.mat.ui.help/reference/inspections/top_consumers.html +++ b/plugins/org.eclipse.mat.ui.help/reference/inspections/top_consumers.html @@ -8,8 +8,8 @@ - - + + @@ -36,21 +36,21 @@

    Top Consumers

    Arguments

    - + - + - + - + - + - +
    ArgumentArgumentDescriptionDescription
    objectsobjectsSet of objects to include in the analysis.Set of objects to include in the analysis.
    ttThreshold (in percent of the total heap size) which objects have to exceed to be included in the analysis.Threshold (in percent of the total heap size) which objects have to exceed to be included in the analysis.
    @@ -59,6 +59,10 @@

    Top Consumers

    Result

    + +

    See List Biggest Objects + for more information.

    +
    diff --git a/plugins/org.eclipse.mat.ui.help/reference/querymatrix.dita b/plugins/org.eclipse.mat.ui.help/reference/querymatrix.dita index 03bd6fa88..ffe3b1a3d 100644 --- a/plugins/org.eclipse.mat.ui.help/reference/querymatrix.dita +++ b/plugins/org.eclipse.mat.ui.help/reference/querymatrix.dita @@ -1,6 +1,6 @@