diff --git a/extensions/ql-vscode/src/common/interface-types.ts b/extensions/ql-vscode/src/common/interface-types.ts
index 8d0681cbc..2a0fb24c8 100644
--- a/extensions/ql-vscode/src/common/interface-types.ts
+++ b/extensions/ql-vscode/src/common/interface-types.ts
@@ -403,6 +403,7 @@ export interface SetPerformanceComparisonQueries {
readonly t: "setPerformanceComparison";
readonly from: PerformanceComparisonDataFromLog;
readonly to: PerformanceComparisonDataFromLog;
+ readonly comparison: boolean;
}
export type FromComparePerformanceViewMessage = CommonFromViewMessages;
diff --git a/extensions/ql-vscode/src/compare-performance/compare-performance-view.ts b/extensions/ql-vscode/src/compare-performance/compare-performance-view.ts
index d286161b1..c1633801e 100644
--- a/extensions/ql-vscode/src/compare-performance/compare-performance-view.ts
+++ b/extensions/ql-vscode/src/compare-performance/compare-performance-view.ts
@@ -66,6 +66,7 @@ export class ComparePerformanceView extends AbstractWebview<
t: "setPerformanceComparison",
from: fromPerf.getData(),
to: toPerf.getData(),
+ comparison: fromJsonLog !== "",
});
}
diff --git a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx
index 7983180c8..98925170d 100644
--- a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx
+++ b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx
@@ -216,6 +216,7 @@ const Dropdown = styled.select``;
interface PipelineStepProps {
before: number | undefined;
after: number | undefined;
+ comparison: boolean;
step: React.ReactNode;
}
@@ -223,7 +224,7 @@ interface PipelineStepProps {
* Row with details of a pipeline step, or one of the high-level stats appearing above the pipelines (evaluation/iteration counts).
*/
function PipelineStep(props: PipelineStepProps) {
- let { before, after, step } = props;
+ let { before, after, comparison, step } = props;
if (before != null && before < 0) {
before = undefined;
}
@@ -234,9 +235,11 @@ function PipelineStep(props: PipelineStepProps) {
return (
- {before != null ? formatDecimal(before) : ""}
+ {comparison && (
+ {before != null ? formatDecimal(before) : ""}
+ )}
{after != null ? formatDecimal(after) : ""}
- {delta != null ? renderDelta(delta) : | }
+ {comparison && (delta != null ? renderDelta(delta) : | )}
{step}
);
@@ -249,10 +252,11 @@ const HeaderTR = styled.tr`
interface HighLevelStatsProps {
before: PredicateInfo;
after: PredicateInfo;
+ comparison: boolean;
}
function HighLevelStats(props: HighLevelStatsProps) {
- const { before, after } = props;
+ const { before, after, comparison } = props;
const hasBefore = before.absentReason !== AbsentReason.NotSeen;
const hasAfter = after.absentReason !== AbsentReason.NotSeen;
const showEvaluationCount =
@@ -261,21 +265,25 @@ function HighLevelStats(props: HighLevelStatsProps) {
<>
- {hasBefore ? "Before" : ""}
+ {comparison && {hasBefore ? "Before" : ""}}
{hasAfter ? "After" : ""}
- {hasBefore && hasAfter ? "Delta" : ""}
+ {comparison && (
+ {hasBefore && hasAfter ? "Delta" : ""}
+ )}
Stats
{showEvaluationCount && (
)}
>(
() => new Set(),
);
@@ -478,9 +488,9 @@ function ComparePerformanceWithData(props: {
- Before
- After
- Delta
+ {comparison && Before}
+ {comparison ? "After" : "Value"}
+ {comparison && Delta}
Predicate
@@ -503,14 +513,18 @@ function ComparePerformanceWithData(props: {
- {renderAbsoluteValue(row.before, metric)}
+ {comparison && renderAbsoluteValue(row.before, metric)}
{renderAbsoluteValue(row.after, metric)}
- {renderDelta(row.diff, metric.unit)}
+ {comparison && renderDelta(row.diff, metric.unit)}
{rowNames[rowIndex]}
{expandedPredicates.has(row.name) && (
<>
-
+
{collatePipelines(
row.before.pipelines,
row.after.pipelines,
@@ -518,18 +532,23 @@ function ComparePerformanceWithData(props: {
|
- {first != null && "Before"}
+ {comparison && (
+ {first != null && "Before"}
+ )}
{second != null && "After"}
-
- {first != null && second != null && "Delta"}
-
+ {comparison && (
+
+ {first != null && second != null && "Delta"}
+
+ )}
Tuple counts for '{name}' pipeline
- {first == null
- ? " (after)"
- : second == null
- ? " (before)"
- : ""}
+ {comparison &&
+ (first == null
+ ? " (after)"
+ : second == null
+ ? " (before)"
+ : "")}
{abbreviateRASteps(first?.steps ?? second!.steps).map(
@@ -538,6 +557,7 @@ function ComparePerformanceWithData(props: {
key={index}
before={first?.counts[index]}
after={second?.counts[index]}
+ comparison={comparison}
step={step}
/>
),
@@ -556,9 +576,11 @@ function ComparePerformanceWithData(props: {
- {formatDecimal(totalBefore)}
+ {comparison && (
+ {formatDecimal(totalBefore)}
+ )}
{formatDecimal(totalAfter)}
- {renderDelta(totalDiff)}
+ {comparison && renderDelta(totalDiff)}
TOTAL