import java.util.Map;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.tracecompass.common.core.format.DataSizeWithUnitFormat;
import org.eclipse.tracecompass.internal.lttng2.ust.core.analysis.memory.UstMemoryStrings;
import org.eclipse.tracecompass.internal.tmf.core.Activator;
import org.eclipse.tracecompass.lttng2.ust.core.analysis.memory.UstMemoryAnalysisModule;
import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils;
import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfCommonXLineChartViewer;
+import org.swtchart.Chart;
/**
* Memory usage view
private final Map<Integer, Integer> fMemoryQuarks = new HashMap<>();
private final Map<Integer, String> fSeriesName = new HashMap<>();
- private static final int BYTES_TO_KB = 1024;
-
// Timeout between updates in the updateData thread
private static final long BUILD_UPDATE_TIMEOUT = 500;
*/
public MemoryUsageViewer(Composite parent) {
super(parent, Messages.MemoryUsageViewer_Title, Messages.MemoryUsageViewer_XAxis, Messages.MemoryUsageViewer_YAxis);
+ Chart chart = getSwtChart();
+ chart.getLegend().setPosition(SWT.LEFT);
+ chart.getAxisSet().getYAxis(0).getTick().setFormat(new DataSizeWithUnitFormat());
}
@Override
fYValues.put(quark, new double[xvalues.length]);
fMemoryQuarks.put(quark, ss.getQuarkRelative(quark, UstMemoryStrings.UST_MEMORY_MEMORY_ATTRIBUTE));
int procNameQuark = ss.getQuarkRelative(quark, UstMemoryStrings.UST_MEMORY_PROCNAME_ATTRIBUTE);
+ String oldSeriesName = fSeriesName.get(quark);
+ String seriesName = null;
try {
ITmfStateValue procnameValue = ss.querySingleState(start, procNameQuark).getStateValue();
String procname = ""; //$NON-NLS-1$
if (!procnameValue.isNull()) {
procname = procnameValue.unboxStr();
}
- String seriesName = procname + ' ' + '(' + ss.getAttributeName(quark) + ')';
- fSeriesName.put(quark, seriesName.trim());
+ seriesName = (procname + ' ' + '(' + ss.getAttributeName(quark) + ')').trim();
} catch (TimeRangeException e) {
- fSeriesName.put(quark, '(' + ss.getAttributeName(quark) + ')');
+ seriesName = '(' + ss.getAttributeName(quark) + ')';
+ }
+
+ if (oldSeriesName != null && !oldSeriesName.equals(seriesName)) {
+ deleteSeries(oldSeriesName);
}
+ fSeriesName.put(quark, seriesName);
}
/*
double[] values = checkNotNull(fYValues.get(quark));
try {
Integer memQuark = checkNotNull(fMemoryQuarks.get(quark));
- yvalue = ss.querySingleState(time, memQuark.intValue()).getStateValue().unboxLong() / BYTES_TO_KB;
+ yvalue = ss.querySingleState(time, memQuark.intValue()).getStateValue().unboxLong();
values[i] = yvalue;
} catch (TimeRangeException e) {
values[i] = 0;