in packages/devtools_app/lib/src/memory/memory_events_pane.dart [239:391]
void setupTraces({bool isDarkMode = true}) {
if (_chartController.traces.isNotEmpty) {
assert(_chartController.traces.length == TraceName.values.length);
final extensionEventsIndex = TraceName.extensionEvents.index;
assert(_chartController.trace(extensionEventsIndex).name ==
TraceName.values[extensionEventsIndex].toString());
final snapshotIndex = TraceName.snapshot.index;
assert(_chartController.trace(snapshotIndex).name ==
TraceName.values[snapshotIndex].toString());
final autoSnapshotIndex = TraceName.autoSnapshot.index;
assert(_chartController.trace(autoSnapshotIndex).name ==
TraceName.values[autoSnapshotIndex].toString());
final manualGCIndex = TraceName.manualGC.index;
assert(_chartController.trace(manualGCIndex).name ==
TraceName.values[manualGCIndex].toString());
final monitorIndex = TraceName.monitor.index;
assert(_chartController.trace(monitorIndex).name ==
TraceName.values[monitorIndex].toString());
final monitorResetIndex = TraceName.monitorReset.index;
assert(_chartController.trace(monitorResetIndex).name ==
TraceName.values[monitorResetIndex].toString());
final gcIndex = TraceName.gc.index;
assert(_chartController.trace(gcIndex).name ==
TraceName.values[gcIndex].toString());
return;
}
final extensionEventsIndex = _chartController.createTrace(
trace.ChartType.symbol,
trace.PaintCharacteristics(
color: Colors.purpleAccent[100],
colorAggregate: Colors.purpleAccent[400],
symbol: trace.ChartSymbol.filledTriangle,
height: 20,
width: 20,
fixedMinY: visibleVmEvent,
fixedMaxY: extensionEvent,
),
name: TraceName.extensionEvents.toString(),
);
assert(extensionEventsIndex == TraceName.extensionEvents.index);
assert(_chartController.trace(extensionEventsIndex).name ==
TraceName.values[extensionEventsIndex].toString());
final snapshotIndex = _chartController.createTrace(
trace.ChartType.symbol,
trace.PaintCharacteristics(
color: Colors.green,
strokeWidth: 3,
diameter: 6,
fixedMinY: visibleVmEvent,
fixedMaxY: extensionEvent,
),
name: TraceName.snapshot.toString(),
);
assert(snapshotIndex == TraceName.snapshot.index);
assert(_chartController.trace(snapshotIndex).name ==
TraceName.values[snapshotIndex].toString());
// Auto-snapshot
final autoSnapshotIndex = _chartController.createTrace(
trace.ChartType.symbol,
trace.PaintCharacteristics(
color: Colors.red,
strokeWidth: 3,
diameter: 6,
fixedMinY: visibleVmEvent,
fixedMaxY: extensionEvent,
),
name: TraceName.autoSnapshot.toString(),
);
assert(autoSnapshotIndex == TraceName.autoSnapshot.index);
assert(_chartController.trace(autoSnapshotIndex).name ==
TraceName.values[autoSnapshotIndex].toString());
// Manual GC
final manualGCIndex = _chartController.createTrace(
trace.ChartType.symbol,
trace.PaintCharacteristics(
color: Colors.blue,
strokeWidth: 3,
diameter: 6,
fixedMinY: visibleVmEvent,
fixedMaxY: extensionEvent,
),
name: TraceName.manualGC.toString(),
);
assert(manualGCIndex == TraceName.manualGC.index);
assert(_chartController.trace(manualGCIndex).name ==
TraceName.values[manualGCIndex].toString());
final mainMonitorColor =
isDarkMode ? Colors.yellowAccent : Colors.yellowAccent.shade400;
// Monitor
final monitorIndex = _chartController.createTrace(
trace.ChartType.symbol,
trace.PaintCharacteristics(
color: mainMonitorColor,
strokeWidth: 3,
diameter: 6,
fixedMinY: visibleVmEvent,
fixedMaxY: extensionEvent,
),
name: TraceName.monitor.toString(),
);
assert(monitorIndex == TraceName.monitor.index);
assert(_chartController.trace(monitorIndex).name ==
TraceName.values[monitorIndex].toString());
final monitorResetIndex = _chartController.createTrace(
trace.ChartType.symbol,
trace.PaintCharacteristics.concentric(
color: Colors.grey[600],
strokeWidth: 4,
diameter: 6,
fixedMinY: visibleVmEvent,
fixedMaxY: extensionEvent,
concentricCenterColor: mainMonitorColor,
concentricCenterDiameter: 4,
),
name: TraceName.monitorReset.toString(),
);
assert(monitorResetIndex == TraceName.monitorReset.index);
assert(_chartController.trace(monitorResetIndex).name ==
TraceName.values[monitorResetIndex].toString());
// VM GC
final gcIndex = _chartController.createTrace(
trace.ChartType.symbol,
trace.PaintCharacteristics(
color: Colors.blue,
symbol: trace.ChartSymbol.disc,
diameter: 4,
fixedMinY: visibleVmEvent,
fixedMaxY: extensionEvent,
),
name: TraceName.gc.toString(),
);
assert(gcIndex == TraceName.gc.index);
assert(_chartController.trace(gcIndex).name ==
TraceName.values[gcIndex].toString());
assert(_chartController.traces.length == TraceName.values.length);
}