Skip to content

Commit be52ca5

Browse files
authored
Merge branch 'hackathon/compare-perf' into asgerf/highlevel-stats
2 parents 2b1eb20 + c08ef0e commit be52ca5

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type { ChangeEvent } from "react";
12
import { useMemo, useState, Fragment } from "react";
23
import type {
34
SetPerformanceComparisonQueries,
@@ -184,6 +185,8 @@ const PipelineStepTR = styled.tr`
184185
}
185186
`;
186187

188+
const SortOrderDropdown = styled.select``;
189+
187190
interface PipelineStepProps {
188191
before: number | undefined;
189192
after: number | undefined;
@@ -253,6 +256,20 @@ function HighLevelStats(props: HighLevelStatsProps) {
253256
);
254257
}
255258

259+
type TRow = {
260+
name: string;
261+
before: PredicateInfo;
262+
after: PredicateInfo;
263+
diff: number;
264+
};
265+
266+
function getSortOrder(sortOrder: "delta" | "absDelta") {
267+
if (sortOrder === "absDelta") {
268+
return orderBy((row: TRow) => -Math.abs(row.diff));
269+
}
270+
return orderBy((row: TRow) => row.diff);
271+
}
272+
256273
function Chevron({ expanded }: { expanded: boolean }) {
257274
return <Codicon name={expanded ? "chevron-down" : "chevron-right"} />;
258275
}
@@ -296,6 +313,8 @@ export function ComparePerformance(_: Record<string, never>) {
296313

297314
const [hideCacheHits, setHideCacheHits] = useState(false);
298315

316+
const [sortOrder, setSortOrder] = useState<"delta" | "absDelta">("delta");
317+
299318
if (!datasets) {
300319
return <div>Loading performance comparison...</div>;
301320
}
@@ -329,7 +348,7 @@ export function ComparePerformance(_: Record<string, never>) {
329348
return { name, before, after, diff };
330349
})
331350
.filter((x) => !!x)
332-
.sort(orderBy((row) => row.diff));
351+
.sort(getSortOrder(sortOrder));
333352

334353
let totalBefore = 0;
335354
let totalAfter = 0;
@@ -363,6 +382,15 @@ export function ComparePerformance(_: Record<string, never>) {
363382
</label>
364383
</WarningBox>
365384
)}
385+
<SortOrderDropdown
386+
onChange={(e: ChangeEvent<HTMLSelectElement>) =>
387+
setSortOrder(e.target.value as "delta" | "absDelta")
388+
}
389+
value={sortOrder}
390+
>
391+
<option value="delta">Delta</option>
392+
<option value="absDelta">Absolute delta</option>
393+
</SortOrderDropdown>
366394
<Table>
367395
<thead>
368396
<tr>

0 commit comments

Comments
 (0)