From 280d388fb3cd9a39f04124a706434713e0446ef4 Mon Sep 17 00:00:00 2001 From: Mika Cohen Date: Thu, 21 May 2026 11:18:20 -0600 Subject: [PATCH 1/5] Avoid managed provider boot probes --- apps/server/src/provider/makeManagedServerProvider.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/apps/server/src/provider/makeManagedServerProvider.ts b/apps/server/src/provider/makeManagedServerProvider.ts index 2f07c5d508c..61fb2376512 100644 --- a/apps/server/src/provider/makeManagedServerProvider.ts +++ b/apps/server/src/provider/makeManagedServerProvider.ts @@ -145,11 +145,6 @@ export const makeManagedServerProvider = Effect.fn("makeManagedServerProvider")( ), ).pipe(Effect.forkScoped); - yield* applySnapshot(initialSettings, { forceRefresh: true }).pipe( - Effect.ignoreCause({ log: true }), - Effect.forkScoped, - ); - return { maintenanceCapabilities: input.maintenanceCapabilities, getSnapshot: input.getSettings.pipe( From bf691dadd15b10711622cd2cdc9bc33f821ffee3 Mon Sep 17 00:00:00 2001 From: Mika Cohen Date: Thu, 21 May 2026 11:18:32 -0600 Subject: [PATCH 2/5] Add startup benchmark harness --- package.json | 1 + scripts/bench-startup.js | 572 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 573 insertions(+) create mode 100644 scripts/bench-startup.js diff --git a/package.json b/package.json index a1aa5d0b1cd..ca9ab4af438 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "typecheck": "turbo run typecheck", "lint": "oxlint --report-unused-disable-directives", "test": "turbo run test", + "bench:startup": "bun scripts/bench-startup.js", "test:desktop-smoke": "turbo run smoke-test --filter=@t3tools/desktop", "fmt": "oxfmt", "fmt:check": "oxfmt --check", diff --git a/scripts/bench-startup.js b/scripts/bench-startup.js new file mode 100644 index 00000000000..9c597d4253e --- /dev/null +++ b/scripts/bench-startup.js @@ -0,0 +1,572 @@ +import { spawn, spawnSync } from "node:child_process"; +import { createReadStream, existsSync, mkdirSync, rmSync } from "node:fs"; +import { dirname, join, resolve } from "node:path"; +import { createInterface } from "node:readline"; +import { fileURLToPath, pathToFileURL } from "node:url"; +import { performance } from "node:perf_hooks"; + +const RESULT_PREFIX = "T3_STARTUP_BENCH_RESULT "; +const NOOP = () => undefined; + +function repoRoot() { + return resolve(dirname(fileURLToPath(import.meta.url)), ".."); +} + +function parseArgs(argv) { + const config = { + ref: "HEAD", + projectCount: 100, + threadsPerProject: 100, + activitiesPerThread: 0, + seedMode: "projected", + serverReadyOnly: false, + keep: false, + }; + const mutable = { ...config }; + for (let index = 0; index < argv.length; index += 1) { + const arg = argv[index]; + const next = argv[index + 1]; + switch (arg) { + case "--ref": + mutable.ref = requireValue(arg, next); + index += 1; + break; + case "--project-count": + mutable.projectCount = parsePositiveInt(arg, requireValue(arg, next)); + index += 1; + break; + case "--threads-per-project": + mutable.threadsPerProject = parsePositiveInt(arg, requireValue(arg, next)); + index += 1; + break; + case "--activities-per-thread": + mutable.activitiesPerThread = parseNonNegativeInt(arg, requireValue(arg, next)); + index += 1; + break; + case "--seed-mode": + mutable.seedMode = requireValue(arg, next); + if (mutable.seedMode !== "events-only" && mutable.seedMode !== "projected") { + throw new Error("--seed-mode must be events-only or projected."); + } + index += 1; + break; + case "--server-ready-only": + mutable.serverReadyOnly = true; + break; + case "--keep": + mutable.keep = true; + break; + case "--help": + case "-h": + printUsage(); + process.exit(0); + default: + throw new Error(`Unknown argument: ${arg}`); + } + } + return mutable; +} + +function printUsage() { + console.log(`Usage: bun scripts/bench-startup.js [options] + +Options: + --ref