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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1,278 changes: 767 additions & 511 deletions packages/app-astro/ci-stats.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-astro/stats/7.1.6.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-astro/stats/7.2.10.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-astro/stats/7.3.8.json

Large diffs are not rendered by default.

1,278 changes: 767 additions & 511 deletions packages/app-astro/stats/7.4.0.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-baseline-html/ci-stats.json

Large diffs are not rendered by default.

782 changes: 549 additions & 233 deletions packages/app-baseline-html/stats/24.16.0.json

Large diffs are not rendered by default.

782 changes: 549 additions & 233 deletions packages/app-baseline-html/stats/24.18.0.json

Large diffs are not rendered by default.

782 changes: 549 additions & 233 deletions packages/app-baseline-html/stats/24.19.0.json

Large diffs are not rendered by default.

782 changes: 549 additions & 233 deletions packages/app-baseline-html/stats/24.20.0.json

Large diffs are not rendered by default.

1,222 changes: 751 additions & 471 deletions packages/app-baseline-html/stats/24.21.0.json

Large diffs are not rendered by default.

1,222 changes: 751 additions & 471 deletions packages/app-baseline-html/stats/24.22.0.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-baseline-html/stats/24.22.1.json

Large diffs are not rendered by default.

2,484 changes: 1,510 additions & 974 deletions packages/app-next-js/ci-stats.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-next-js/stats/16.1.1.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-next-js/stats/16.2.12.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-next-js/stats/16.3.8.json

Large diffs are not rendered by default.

2,484 changes: 1,510 additions & 974 deletions packages/app-next-js/stats/16.4.2.json

Large diffs are not rendered by default.

2,484 changes: 1,510 additions & 974 deletions packages/app-nuxt/ci-stats.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-nuxt/stats/4.2.2.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-nuxt/stats/4.3.1.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-nuxt/stats/4.4.8.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-nuxt/stats/4.5.2.json

Large diffs are not rendered by default.

2,484 changes: 1,510 additions & 974 deletions packages/app-nuxt/stats/4.6.2.json

Large diffs are not rendered by default.

2,484 changes: 1,510 additions & 974 deletions packages/app-pracht/ci-stats.json

Large diffs are not rendered by default.

2,484 changes: 1,510 additions & 974 deletions packages/app-pracht/stats/0.18.0.json

Large diffs are not rendered by default.

2,484 changes: 1,510 additions & 974 deletions packages/app-react-router/ci-stats.json

Large diffs are not rendered by default.

806 changes: 555 additions & 251 deletions packages/app-react-router/stats/7.10.1.json

Large diffs are not rendered by default.

806 changes: 555 additions & 251 deletions packages/app-react-router/stats/7.11.0.json

Large diffs are not rendered by default.

806 changes: 555 additions & 251 deletions packages/app-react-router/stats/7.12.0.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-react-router/stats/7.13.2.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-react-router/stats/7.14.2.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-react-router/stats/7.15.1.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-react-router/stats/7.16.0.json

Large diffs are not rendered by default.

2,484 changes: 1,510 additions & 974 deletions packages/app-react-router/stats/8.4.0.json

Large diffs are not rendered by default.

1,278 changes: 767 additions & 511 deletions packages/app-solid-start/ci-stats.json

Large diffs are not rendered by default.

1,278 changes: 767 additions & 511 deletions packages/app-solid-start/stats/2.0.6.json

Large diffs are not rendered by default.

1,278 changes: 767 additions & 511 deletions packages/app-sveltekit/ci-stats.json

Large diffs are not rendered by default.

806 changes: 555 additions & 251 deletions packages/app-sveltekit/stats/2.55.0.json

Large diffs are not rendered by default.

806 changes: 555 additions & 251 deletions packages/app-sveltekit/stats/2.56.1.json

Large diffs are not rendered by default.

806 changes: 555 additions & 251 deletions packages/app-sveltekit/stats/2.57.1.json

Large diffs are not rendered by default.

806 changes: 555 additions & 251 deletions packages/app-sveltekit/stats/2.58.0.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.59.1.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.60.1.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.61.1.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.62.0.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.63.1.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.64.0.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.65.2.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.66.0.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.67.0.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.68.0.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.69.3.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/2.70.3.json

Large diffs are not rendered by default.

1,242 changes: 755 additions & 487 deletions packages/app-sveltekit/stats/3.0.1.json

Large diffs are not rendered by default.

1,278 changes: 767 additions & 511 deletions packages/app-sveltekit/stats/3.1.0.json

Large diffs are not rendered by default.

2,484 changes: 1,510 additions & 974 deletions packages/app-tanstack-start-react/ci-stats.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.145.3.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.146.3.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.147.3.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.148.0.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.149.4.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.150.0.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.151.6.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.152.0.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.153.2.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.154.14.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.155.0.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.156.0.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.157.19.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.158.4.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.159.14.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.160.2.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.161.4.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.162.9.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.163.5.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.164.1.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.166.18.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.167.65.json

Large diffs are not rendered by default.

2,448 changes: 1,498 additions & 950 deletions packages/app-tanstack-start-react/stats/1.168.59.json

Large diffs are not rendered by default.

2,484 changes: 1,510 additions & 974 deletions packages/app-tanstack-start-react/stats/1.169.3.json

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions packages/docs/src/components/SSRLoadStatsTable.astro
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ const columns = [
? `/framework/${getFrameworkSlug(row.package as string)}`
: null,
},
{ key: 'peakRequestsPerSec', header: 'Peak req/s' },
{ key: 'peakWorkers', header: 'Peak Connections' },
{ key: 'worker25P99LatencyMs', header: 'P99 @ 25' },
{ key: 'worker50P99LatencyMs', header: 'P99 @ 50' },
{ key: 'worker100P99LatencyMs', header: 'P99 @ 100' },
{ key: 'totalRequests', header: 'Total Req.' },
{ key: 'peakRequestsPerSec', header: 'Representative peak req/s' },
{ key: 'peakWorkers', header: 'Representative peak connections' },
{ key: 'worker25P99LatencyMs', header: 'Mean sweep P99 @ 25' },
{ key: 'worker50P99LatencyMs', header: 'Mean sweep P99 @ 50' },
{ key: 'worker100P99LatencyMs', header: 'Mean sweep P99 @ 100' },
{ key: 'totalRequests', header: 'Total measured requests' },
]
---

Expand Down
150 changes: 111 additions & 39 deletions packages/docs/src/content.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ const buildTimeSchema = z.union([
median: z.number(),
min: z.number(),
max: z.number(),
variance: z.number().nonnegative(),
}),
})
.refine((value) => value.iterations.length === value.runs)
Expand All @@ -35,7 +34,6 @@ const buildTimeSchema = z.union([
medianMs: value.timeMs.median,
minMs: value.timeMs.min,
maxMs: value.timeMs.max,
standardDeviationMs: Math.sqrt(value.timeMs.variance),
samplesMs: value.iterations.map((run) => run.timeMs),
})),
timeSchema,
Expand All @@ -52,7 +50,6 @@ const devServerTimeSchema = z.union([
median: z.number(),
min: z.number(),
max: z.number(),
variance: z.number().nonnegative(),
}),
})
.refine((value) => value.iterations.length === value.runs)
Expand All @@ -61,7 +58,6 @@ const devServerTimeSchema = z.union([
medianMs: value.timeMs.median,
minMs: value.timeMs.min,
maxMs: value.timeMs.max,
standardDeviationMs: Math.sqrt(value.timeMs.variance),
samplesMs: value.iterations.map((run) => run.timeMs),
})),
timeSchema,
Expand All @@ -85,7 +81,6 @@ const metricSchema = z.object({
median: z.number(),
min: z.number(),
max: z.number(),
variance: z.number().nonnegative(),
})
const ClientRenderingBenchmarkSchema = z
.object({
Expand Down Expand Up @@ -155,7 +150,6 @@ const devtimeSchema = z.object({
median: z.number(),
min: z.number(),
max: z.number(),
variance: z.number().nonnegative(),
}),
nodeModulesSizeBytes: z.number().nonnegative(),
}),
Expand Down Expand Up @@ -188,50 +182,128 @@ const devtimeSchema = z.object({
releasedAt: z.string().optional(),
})

const ssrLoadSweepSchema = z.object({
peakWorkers: z.number(),
peakRequestsPerSec: z.number(),
peakAvgLatencyMs: z.number(),
peakP50LatencyMs: z.number(),
peakP75LatencyMs: z.number(),
peakP90LatencyMs: z.number(),
peakP99LatencyMs: z.number(),
totalRequests: z.number(),
totalErrors: z.number(),
stages: z.array(
z.object({
workers: z.number(),
durationMs: z.number(),
requests: z.number(),
errors: z.number(),
requestsPerSec: z.number(),
avgLatencyMs: z.number(),
medianLatencyMs: z.number(),
p50LatencyMs: z.number(),
p75LatencyMs: z.number(),
p90LatencyMs: z.number(),
p99LatencyMs: z.number(),
maxLatencyMs: z.number(),
bytesPerSec: z.number(),
}),
),
const ssrLoadStageSchema = z.object({
workers: z.number().int().positive(),
elapsedTimeMs: z.number().positive(),
requests: z.number().int().nonnegative(),
errors: z.number().int().nonnegative(),
requestsPerSec: z.number().nonnegative(),
avgLatencyMs: z.number().nonnegative(),
p50LatencyMs: z.number().nonnegative(),
p75LatencyMs: z.number().nonnegative(),
p90LatencyMs: z.number().nonnegative(),
p99LatencyMs: z.number().nonnegative(),
maxLatencyMs: z.number().nonnegative(),
bytesPerSec: z.number().nonnegative(),
})

const ssrLoadTestsSchema = ssrLoadSweepSchema.extend({
runs: z.number().int().positive().optional(),
samples: z.array(ssrLoadSweepSchema).nonempty().optional(),
warmupDurationMs: z.number().positive().optional(),
const ssrLoadSweepSchema = z.array(ssrLoadStageSchema).nonempty()

const ssrLoadStageSummarySchema = z.object({
connections: z.number().int().positive(),
requests: metricSchema,
errors: metricSchema,
requestsPerSec: metricSchema,
avgLatencyMs: metricSchema,
p50LatencyMs: metricSchema,
p75LatencyMs: metricSchema,
p90LatencyMs: metricSchema,
p99LatencyMs: metricSchema,
maxLatencyMs: metricSchema,
bytesPerSec: metricSchema,
})

const ssrLoadTestsSchema = z
.object({
name: z.enum(['ssrLoad', 'ssrRouterLinkLoad']),
runs: z.number().int().positive(),
iterations: z.array(ssrLoadSweepSchema).nonempty(),
configuration: z.object({
workerStages: z.array(z.number().int().positive()).nonempty(),
warmupDurationMs: z.number().positive().optional(),
recoveryMs: z.number().nonnegative().optional(),
warmupAttempts: z.number().int().positive().optional(),
stageDurationMs: z.number().positive().optional(),
}),
representativeIterationIndex: z.number().int().nonnegative(),
source: z.literal('autocannon'),
path: z.enum([
'/server-side-rendered',
'/server-side-rendered-plain-links',
]),
totalRequests: z.number().int().nonnegative(),
totalErrors: z.number().int().nonnegative(),
stage1: ssrLoadStageSummarySchema,
stage2: ssrLoadStageSummarySchema.optional(),
stage3: ssrLoadStageSummarySchema.optional(),
stage4: ssrLoadStageSummarySchema.optional(),
stage5: ssrLoadStageSummarySchema.optional(),
stage6: ssrLoadStageSummarySchema.optional(),
stage7: ssrLoadStageSummarySchema.optional(),
})
.refine(
(value) =>
value.iterations.length === value.runs &&
value.representativeIterationIndex < value.iterations.length &&
value.iterations[value.representativeIterationIndex]!.some(
(stage) => stage.errors === 0,
),
)
.transform((value) => {
const representativeSweep =
value.iterations[value.representativeIterationIndex]!
const representativePeak = representativeSweep
.filter((stage) => stage.errors === 0)
.reduce((best, stage) =>
stage.requestsPerSec > best.requestsPerSec ? stage : best,
)
return {
...value,
representativeSweep,
representativePeak,
stages: [
value.stage1,
value.stage2,
value.stage3,
value.stage4,
value.stage5,
value.stage6,
value.stage7,
].flatMap((stage) =>
stage
? [
{
workers: stage.connections,
requests: stage.requests.mean,
errors: stage.errors.mean,
requestsPerSec: stage.requestsPerSec.mean,
avgLatencyMs: stage.avgLatencyMs.mean,
p50LatencyMs: stage.p50LatencyMs.mean,
p75LatencyMs: stage.p75LatencyMs.mean,
p90LatencyMs: stage.p90LatencyMs.mean,
p99LatencyMs: stage.p99LatencyMs.mean,
maxLatencyMs: stage.maxLatencyMs.mean,
bytesPerSec: stage.bytesPerSec.mean,
},
]
: [],
),
}
})

const runtimeSchema = z.object({
name: z.string(),
type: z.string(),
package: z.string(),
isFocused: z.boolean(),
order: z.number(),
ssrRequestThroughputTests: requestThroughputContentSchema,
ssrLoadTests: ssrLoadTestsSchema.optional(),
ssrRouterLinkLoadTests: ssrLoadTestsSchema.optional(),
ssrLoadTests: ssrLoadTestsSchema
.refine((value) => value.name === 'ssrLoad')
.optional(),
ssrRouterLinkLoadTests: ssrLoadTestsSchema
.refine((value) => value.name === 'ssrRouterLinkLoad')
.optional(),
clientSideRenderedTests: z
.union([
ClientRenderingBenchmarkSchema.transform((value) => ({
Expand Down
12 changes: 4 additions & 8 deletions packages/docs/src/content/devtime/starter-astro.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@
"mean": 1122.6,
"median": 1190,
"min": 967,
"max": 1283,
"variance": 19628.3
"max": 1283
}
},
"warmBuildTime": {
Expand All @@ -64,8 +63,7 @@
"mean": 1158.2,
"median": 1194,
"min": 939,
"max": 1446,
"variance": 46260.2
"max": 1446
}
},
"order": 1,
Expand Down Expand Up @@ -116,8 +114,7 @@
"mean": 1439,
"median": 1409,
"min": 1379,
"max": 1590,
"variance": 7615.5
"max": 1590
}
},
"firstPartyDependencies": {
Expand Down Expand Up @@ -152,8 +149,7 @@
"mean": 3549.2,
"median": 4182,
"min": 1783,
"max": 4206,
"variance": 1102950.7
"max": 4206
},
"nodeModulesSizeBytes": 214360064
},
Expand Down
12 changes: 4 additions & 8 deletions packages/docs/src/content/devtime/starter-next-js.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@
"mean": 6105.8,
"median": 6030,
"min": 5759,
"max": 6638,
"variance": 104152.7
"max": 6638
}
},
"warmBuildTime": {
Expand All @@ -64,8 +63,7 @@
"mean": 2347,
"median": 2331,
"min": 2311,
"max": 2408,
"variance": 1481.5
"max": 2408
}
},
"order": 2,
Expand Down Expand Up @@ -415,8 +413,7 @@
"mean": 2863.8,
"median": 2768,
"min": 2443,
"max": 3563,
"variance": 184731.7
"max": 3563
}
},
"firstPartyDependencies": {
Expand Down Expand Up @@ -451,8 +448,7 @@
"mean": 5892.8,
"median": 6690,
"min": 2955,
"max": 6897,
"variance": 2758639.7
"max": 6897
},
"nodeModulesSizeBytes": 486125568
},
Expand Down
12 changes: 4 additions & 8 deletions packages/docs/src/content/devtime/starter-nuxt.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@
"mean": 4251.8,
"median": 4256,
"min": 3831,
"max": 4539,
"variance": 90422.70000000001
"max": 4539
}
},
"warmBuildTime": {
Expand All @@ -64,8 +63,7 @@
"mean": 4029.2,
"median": 3961,
"min": 3884,
"max": 4390,
"variance": 41714.7
"max": 4390
}
},
"order": 3,
Expand Down Expand Up @@ -119,8 +117,7 @@
"mean": 2479.6,
"median": 2468,
"min": 2409,
"max": 2570,
"variance": 3467.3
"max": 2570
}
},
"firstPartyDependencies": {
Expand Down Expand Up @@ -155,8 +152,7 @@
"mean": 4668.2,
"median": 4963,
"min": 2857,
"max": 5365,
"variance": 1087801.2
"max": 5365
},
"nodeModulesSizeBytes": 233607168
},
Expand Down
12 changes: 4 additions & 8 deletions packages/docs/src/content/devtime/starter-pracht.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@
"mean": 705.2,
"median": 697,
"min": 695,
"max": 738,
"variance": 342.19999999999993
"max": 738
}
},
"warmBuildTime": {
Expand All @@ -59,8 +58,7 @@
"mean": 699.6,
"median": 687,
"min": 681,
"max": 740,
"variance": 576.8000000000001
"max": 740
}
},
"devServerStartTime": {
Expand All @@ -87,8 +85,7 @@
"mean": 933.2,
"median": 939,
"min": 899,
"max": 967,
"variance": 668.1999999999999
"max": 967
}
},
"vendoredCoreJsSize": 0,
Expand Down Expand Up @@ -152,8 +149,7 @@
"mean": 1889,
"median": 1807,
"min": 1539,
"max": 2270,
"variance": 92357.5
"max": 2270
},
"nodeModulesSizeBytes": 138997760
},
Expand Down
Loading
Loading