Index conditional CSS import deduplication
perfloop/esbuild · INEFFICIENT ALGORITHM
https://perfloop.ai/t/oss/case_c30r8wd9tr
Verdict
VERIFIED · settled 2026-08-17
What happened: The paired measurements met the required improvement.
Hypothesis
The target stores duplicate positions in slices and repeatedly scans them at lines 3573-3580, 3583-3593, and 3695-3739; each candidate invokes isConditionalImportRedundant, which compares condition tokens. Its returned order is consumed as importsInChunkInOrder by computeChunks, which calls this once for each eligible CSS chunk (a CSS entry point or a JS entry point with imported CSS) on each chunk-computation run. I ran a temporary, no-error CLI fixture with one shared stylesheet imported under distinct layer(lNNNNN) conditions: normal bundle elapsed time was 61.5 ms at 1,000 imports, 178.7 ms at 2,000, and 658.1 ms at 4,000. The CLI's built-in repeated-run --cpuprofile on the 2,000-import fixture attributed 74.87% cumulative samples to findImportedFilesInCSSOrder and 68.07% to isConditionalImportRedundant, with token comparison beneath it. That measures this synthetic repeated-import trigger, not its prevalence or hotness in production; the proposed index is hypothesized to remove the incompatible pairwise token comparisons while retaining the predicate for compatible candidates. A case session should benchmark 1,000/2,000/4,000 repeated imports plus representative CSS graphs, require the target/helper CPU share and superlinear curve to fall, and run a baseline output differential covering equal and distinct nested layer, supports, and media condition prefixes.
Change to test: Maintain a collision-checked condition-prefix index within each source/path and layer duplicate group, so the existing redundancy predicate only validates compatible later imports instead of scanning every prior duplicate; preserve the current last-wins order and emitted import-order semantics.
Where it lives
perfloop/esbuild · pkg/api/api_impl.go
Evidence
Bundle=true API Context.Rebuild of a CSS entry point with 1,000 shared imports under distinct layers · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
36235588 |
4253168 |
−88.3% (−31994525) |
−32236942 to −31725041 |
< −1811779 |
PASSED |
Bundle=true API Context.Rebuild of a CSS entry point with 2,000 shared imports under distinct layers · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
134188721 |
7685976 |
−94.3% (−126592904) |
−128093827 to −125246953 |
< −6709436 |
PASSED |
Bundle=true API Context.Rebuild of a CSS entry point with 4,000 shared imports under distinct layers · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
520064296 |
15319394 |
−97% (−504558693) |
−510275320 to −502394639 |
< −26003215 |
PASSED |
B/op |
12082566 |
12426833 |
+2.8% (+343274) |
+175281 to +347941 |
≤ 500000 |
PASSED |
allocs/op |
81173 |
81253 |
+0.1% (+78) |
+1 to +90 |
≤ 250 |
PASSED |
Bundle=true API Context.Rebuild of a CSS entry point with 1,000 same-layer imports under distinct media conditions · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
61139729 |
4988310 |
−91.6% (−55991883) |
−58171277 to −55301612 |
< −3056986 |
PASSED |
Bundle=true API Context.Rebuild of a CSS entry point with 2,000 same-layer imports under distinct media conditions · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
225829325 |
9390871 |
−95.9% (−216480522) |
−218817366 to −214963576 |
< −11291466 |
PASSED |
Bundle=true API Context.Rebuild of a CSS entry point with 4,000 same-layer imports under distinct media conditions · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
917395333 |
18475524 |
−98% (−899076786) |
−915868913 to −881003472 |
< −45869767 |
PASSED |
B/op |
14984108 |
15298821 |
+2.1% (+314888) |
+284349 to +342599 |
≤ 500000 |
PASSED |
allocs/op |
125219 |
125241 |
+20.5 |
−49 to +68 |
≤ 250 |
PASSED |
Bundle=true API Context.Rebuild of a CSS entry point with 1,000 imports of the same external URL under distinct media conditions · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
59053046 |
3561867 |
−94.1% (−55544675) |
−56533013 to −54755709 |
< −2952652 |
PASSED |
Bundle=true API Context.Rebuild of a CSS entry point with 2,000 imports of the same external URL under distinct media conditions · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
224375073 |
6495890 |
−97.1% (−217816135) |
−221304808 to −216038346 |
< −11218754 |
PASSED |
Bundle=true API Context.Rebuild of a CSS entry point with 4,000 imports of the same external URL under distinct media conditions · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
932219769 |
13118932 |
−98.6% (−918822727) |
−936491367 to −894291358 |
< −46610988 |
PASSED |
Bundle=false default-mode API Context.Rebuild of a CSS entry point with 1,000 shared imports under distinct layers · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
35280233 |
3165442 |
−91% (−32112932) |
−32637674 to −32009745 |
< −1764012 |
PASSED |
Bundle=false default-mode API Context.Rebuild of a CSS entry point with 2,000 shared imports under distinct layers · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
133025081 |
5445401 |
−95.9% (−127551738) |
−130141818 to −126159614 |
< −6651254 |
PASSED |
Bundle=false default-mode API Context.Rebuild of a CSS entry point with 4,000 shared imports under distinct layers · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
513002204 |
10308327 |
−98% (−502680800) |
−508724011 to −499978287 |
< −25650110 |
PASSED |
Bundle=true API Context.Rebuild of a JavaScript entry point importing 2,000 distinct CSS layers · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
134728784 |
8082637 |
−93.9% (−126521021) |
−127739073 to −125858859 |
< −6736439 |
PASSED |
Bundle=true API Context.Rebuild of a CSS entry point with 1,000 repeated full import conditions · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
3037033 |
3121204 |
+1.9% (+58916) |
+29428 to +100514 |
≤ 151852 |
PASSED |
Bundle=true API Context.Rebuild of a CSS entry point with a representative import graph of 512 files · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
23555108 |
23535794 |
+0.1% (+17154) |
−308525 to +356679 |
≤ 500000 |
PASSED |
Bundle=true API Context.Rebuild of a CSS entry point with a shared nested layer prefix across 256 imports · 10 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
ns/op |
15034616 |
13000647 |
−13.8% (−2073269) |
−2207764 to −1893679 |
≤ 400000 |
PASSED |
Checks: 4 of 4 passed. Verification: no defect found.
Timeline
2026-07-18· Case opened2026-07-22· Attempt selected