Claude posting for Erik Darling
PerformanceStudio changed the last rows of its Runtime Summary (erikdarlingdata/PerformanceStudio#613, fixed by erikdarlingdata/PerformanceStudio#614). The shared plan viewer in PerformanceMonitor still uses the old order, so the two apps now show different Runtime Summaries for the same plan.
The change in Studio
- "CE model" moved up, above "Optimization".
- "Early abort" is on the row under "Optimization", and its label is indented 12px. The early abort reason is part of the optimization result, so it reads as a detail of that row. Its value stays in the same column as the other values.
- If a plan has an early abort reason but no optimization level, the "Early abort" row is not indented.
Where PerformanceMonitor has the old order
PerformanceMonitor.PlanAnalysis/PlanDisplayText.cs: BuildRuntimeSummaryRows adds Optimization (line 252), Early abort (line 254), and then CE model (line 256). The doc comment above the method lists the same order.
RuntimeSummaryRow (line 11 of the same file) cannot mark a row as nested. To indent a row, the renderer must know that the row is nested. One way is a Nested field on RuntimeSummaryRow.
PerformanceMonitor.Ui/PlanViewerControl.Properties.cs:1643 renders the rows, for Lite and for the Darling Viewer.
Darling/Darling.Tests/Viewer4570Tests.cs:135 expects the old order ("Optimization", then "CE model").
Expected
BuildRuntimeSummaryRows returns CE model, then Optimization, then Early abort. The Early abort row is nested when the Optimization row is present.
- The plan viewer indents the label of a nested row by 12px and does not move its value.
- The order test expects "CE model" before "Optimization". New tests cover the nested row and the case with no Optimization row.
Studio's tests for the same change are RuntimeSummaryEarlyAbortTests and HtmlExporterTests.Export_RuntimeCard_ListsCeModelAboveOptimization.
Claude posting for Erik Darling
PerformanceStudio changed the last rows of its Runtime Summary (erikdarlingdata/PerformanceStudio#613, fixed by erikdarlingdata/PerformanceStudio#614). The shared plan viewer in PerformanceMonitor still uses the old order, so the two apps now show different Runtime Summaries for the same plan.
The change in Studio
Where PerformanceMonitor has the old order
PerformanceMonitor.PlanAnalysis/PlanDisplayText.cs:BuildRuntimeSummaryRowsadds Optimization (line 252), Early abort (line 254), and then CE model (line 256). The doc comment above the method lists the same order.RuntimeSummaryRow(line 11 of the same file) cannot mark a row as nested. To indent a row, the renderer must know that the row is nested. One way is aNestedfield onRuntimeSummaryRow.PerformanceMonitor.Ui/PlanViewerControl.Properties.cs:1643renders the rows, for Lite and for the Darling Viewer.Darling/Darling.Tests/Viewer4570Tests.cs:135expects the old order ("Optimization", then "CE model").Expected
BuildRuntimeSummaryRowsreturns CE model, then Optimization, then Early abort. The Early abort row is nested when the Optimization row is present.Studio's tests for the same change are
RuntimeSummaryEarlyAbortTestsandHtmlExporterTests.Export_RuntimeCard_ListsCeModelAboveOptimization.