public sealed class ProfilerViewThe CPU profiler panel: a source, a capture, a flame chart and a table.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
Doc 20's E4 in one panel, and its exit criterion is the first thing the strip says. "A frame of the editor and a frame of a running game are both profilable in the same panel" is a dropdown — the panel has no idea which process it is looking at, which is what IProfileSource is for.
⚠ The chart and the table answer different questions and both are here. A flame chart shows one frame's shape; a table shows which scope costs the most across the whole capture. Shipping only the chart is the mistake that makes a profiler pretty and useless at any capture longer than a frame.
⚠ The table is rebuilt on change rather than every frame. A capture's summary is fixed the moment the capture is — nothing about it moves while it is on screen — so the only thing that ticks here is the model's drain of the rings.
Fields and properties (14)
protected override string TagNameThe element name this type answers to when a caller does not choose one.
protected override bool AcceptsFocusWhether the focus can rest on this kind of control at all.
public ProfilerModel? ModelWhat it is showing.
public UiElement ToolbarThe strip along the top.
public Select SourcesWhich process is being profiled.
public Button RecordStarts and stops a capture.
public Button BaselineMakes the current capture the one later ones are compared with.
public Select ThreadsWhich thread's chart is on screen.
public Select FramesWhich frame, or all of them.
public UiElement StatusThe line under the strip saying what the capture holds.
public FlameChartView ChartThe chart.
public DataGrid TableThe table under it.
public DataGrid ComparisonThe table that replaces it once there is a baseline to compare against.
public UiElement DetailWhat the selected bar says about itself.
Methods (4)
public void Show(ProfilerModel profiler)Points the panel at a model.
public void Tick(TimeSpan now = default(TimeSpan))Drains the rings, if a capture is running.
protected override void OnCreated()Builds whatever this element is made of, once, as it joins a document.
protected override void OnRemoved()Called once, as the element leaves the document.
Used by (2)
- DiagnosticsModuleVixen.Editor.Diagnostics
- DiagnosticsPanelTestsVixen.Editor.App.Tests