Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions src/sandbox/generate-svg.ts
Original file line number Diff line number Diff line change
Expand Up @@ -266,27 +266,32 @@ ${sponsorImages.length > 0 ? (() => {
const total = r.iterations.length;
const rank = i + 1;
const medianMs = r.summary.ttiMs.median;
const allFailed = ok === 0;
const score = r.compositeScore !== undefined ? r.compositeScore.toFixed(1) : '--';

// Color code based on speed
let speedClass = 'fast';
if (medianMs > 2000) speedClass = 'slow';
else if (medianMs > 1000) speedClass = 'medium';
let speedClass = allFailed ? 'slow' : 'fast';
if (!allFailed && medianMs > 2000) speedClass = 'slow';
else if (!allFailed && medianMs > 1000) speedClass = 'medium';

// Rank styling
let rankClass = 'rank';
if (rank === 1) rankClass = 'rank rank-1';
else if (rank === 2) rankClass = 'rank rank-2';
else if (rank === 3) rankClass = 'rank rank-3';

const medianDisplay = allFailed ? '--' : formatSeconds(medianMs);
const p95Display = allFailed ? '--' : formatSeconds(r.summary.ttiMs.p95);
const p99Display = allFailed ? '--' : formatSeconds(r.summary.ttiMs.p99);

svg += `
<!-- Row ${rank} -->
<text class="${rankClass}" x="${cols.rank}" y="${y}">${rank}</text>
<text class="row provider" x="${cols.provider}" y="${y}">${formatProviderName(r.provider)}</text>
<text class="row median" x="${cols.score}" y="${y}">${score}</text>
<text class="row median ${speedClass}" x="${cols.median}" y="${y}">${formatSeconds(medianMs)}</text>
<text class="row" x="${cols.p95}" y="${y}">${formatSeconds(r.summary.ttiMs.p95)}</text>
<text class="row" x="${cols.p99}" y="${y}">${formatSeconds(r.summary.ttiMs.p99)}</text>
<text class="row median ${speedClass}" x="${cols.median}" y="${y}">${medianDisplay}</text>
<text class="row" x="${cols.p95}" y="${y}">${p95Display}</text>
<text class="row" x="${cols.p99}" y="${y}">${p99Display}</text>
<text class="row status" x="${cols.status}" y="${y}">${ok}/${total}</text>
`;

Expand Down
7 changes: 4 additions & 3 deletions src/sandbox/table.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,13 @@ export function printResultsTable(results: BenchmarkResult[]): void {
? result.compositeScore.toFixed(1)
: '--';

const allFailed = successful === 0;
console.log([
pad(result.provider, nameWidth),
pad(score, 8),
pad(formatSeconds(result.summary.ttiMs.median), colWidth),
pad(formatSeconds(result.summary.ttiMs.p95), colWidth),
pad(formatSeconds(result.summary.ttiMs.p99), colWidth),
pad(allFailed ? '--' : formatSeconds(result.summary.ttiMs.median), colWidth),
pad(allFailed ? '--' : formatSeconds(result.summary.ttiMs.p95), colWidth),
pad(allFailed ? '--' : formatSeconds(result.summary.ttiMs.p99), colWidth),
pad(`${successful}/${total} OK`, 10),
].join(' | '));
}
Expand Down
17 changes: 11 additions & 6 deletions src/storage/generate-svg.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,27 +184,32 @@ ${sponsorImages.length > 0 ? (() => {
const total = r.iterations.length;
const rank = i + 1;
const downloadMs = r.summary.downloadMs.median;
const allFailed = ok === 0;
const score = r.compositeScore !== undefined ? r.compositeScore.toFixed(1) : '--';

// Color code based on download speed
let speedClass = 'fast';
if (downloadMs > 5000) speedClass = 'slow';
else if (downloadMs > 2000) speedClass = 'medium';
let speedClass = allFailed ? 'slow' : 'fast';
if (!allFailed && downloadMs > 5000) speedClass = 'slow';
else if (!allFailed && downloadMs > 2000) speedClass = 'medium';

// Rank styling
let rankClass = 'rank';
if (rank === 1) rankClass = 'rank rank-1';
else if (rank === 2) rankClass = 'rank rank-2';
else if (rank === 3) rankClass = 'rank rank-3';

const downloadDisplay = allFailed ? '--' : formatSeconds(downloadMs);
const throughputDisplay = allFailed ? '--' : formatMbps(r.summary.throughputMbps.median);
const uploadDisplay = allFailed ? '--' : formatSeconds(r.summary.uploadMs.median);

svg += `
<!-- Row ${rank} -->
<text class="${rankClass}" x="${cols.rank}" y="${y}">${rank}</text>
<text class="row provider" x="${cols.provider}" y="${y}">${formatProviderName(r.provider)}</text>
<text class="row download" x="${cols.score}" y="${y}">${score}</text>
<text class="row download ${speedClass}" x="${cols.download}" y="${y}">${formatSeconds(downloadMs)}</text>
<text class="row" x="${cols.throughput}" y="${y}">${formatMbps(r.summary.throughputMbps.median)}</text>
<text class="row" x="${cols.upload}" y="${y}">${formatSeconds(r.summary.uploadMs.median)}</text>
<text class="row download ${speedClass}" x="${cols.download}" y="${y}">${downloadDisplay}</text>
<text class="row" x="${cols.throughput}" y="${y}">${throughputDisplay}</text>
<text class="row" x="${cols.upload}" y="${y}">${uploadDisplay}</text>
<text class="row status" x="${cols.status}" y="${y}">${ok}/${total}</text>
`;

Expand Down
6 changes: 5 additions & 1 deletion src/update-readme.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,13 @@ function buildTable(results: BenchmarkResult[]): string {
} else {
const ok = r.iterations.filter(i => !i.error).length;
const total = r.iterations.length;
const allFailed = ok === 0;
const score = r.compositeScore !== undefined ? r.compositeScore.toFixed(1) : '--';
const median = allFailed ? '--' : formatSeconds(r.summary.ttiMs.median);
const p95 = allFailed ? '--' : formatSeconds(r.summary.ttiMs.p95);
const p99 = allFailed ? '--' : formatSeconds(r.summary.ttiMs.p99);
lines.push(
`<tr><td>${capitalize(r.provider)}</td><td align="center"><b>${score}</b></td><td align="center">${formatSeconds(r.summary.ttiMs.median)}</td><td align="center">${formatSeconds(r.summary.ttiMs.p95)}</td><td align="center">${formatSeconds(r.summary.ttiMs.p99)}</td><td align="center">${ok}/${total}</td></tr>`
`<tr><td>${capitalize(r.provider)}</td><td align="center"><b>${score}</b></td><td align="center">${median}</td><td align="center">${p95}</td><td align="center">${p99}</td><td align="center">${ok}/${total}</td></tr>`
);
}
}
Expand Down
Loading