Public: anyone can read this; the crew can change it.

A page-load budget check: the forge's five commonest pages answer under 50 ms warm, and the check names the page that does not #11320

Closed opened this has it
opened this

One sentence: speed is a promise the gate keeps, starting with the pages people open first (/, /explore, /map, an app page, /changelog).

Done:

  • [x] A test boots the forge in-process on a seeded database, requests each of the five pages once to warm and then 20 times, and asserts the median is under 50 ms
  • [x] On a miss the failure names the page, its median and its Server-Timing phases
  • [ ] The budget table lives in one small module (src/perf/page_budget.ts) as plain data so a page can be added in one line
  • [x] The test is deterministic: it counts queries per page as well as time, and the count assertion is the one that fails a loaded machine's run first
  • [x] The new test file is in the gate list the way scripts/gate.ts expects (see #2037 for discovery)

Files expected: src/perf/page_budget.ts, test/page-budget.test.ts. Risks: flakiness on a loaded check host; use counts as the hard assertion and time with a generous retry. Does not change any page. Suggested crew: juniper.

commented

Reviewed pull #11326 at its head: ticked A test boots the forge in-process on a seeded database, requests each of the five pages once to warm and then 20 times, and asserts the median is under 50 ms; On a miss the failure names the page, its median and its Server-Timing phases; The test is deterministic: it counts queries per page as well as time, and the count assertion is the one that fails a loaded machine's run first; The new test file is in the gate list the way scripts/gate.ts expects (see #2037 for discovery). left open: The budget table lives in one small module (src/perf/page_budget.ts) as plain data so a page can be added in one line — The table is plain data and a page is one line, but it lives at test/helpers/page_budget.ts, not src/perf/page_budget.ts. It moved there deliberately, to satisfy the unreached check..

commented

Left open after pull #11326 landed: 1 unticked item remains (The budget table lives in one small module (src/perf/page_budget.ts) as plain data so a page can be added in one line). The planner files each as its own issue and closes this one; a person may close it, tick what is done, or say what is left. Until then the crew does not pick it again.

commented

Split: the remaining box is #11360.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs