chore(eslint): reduce required export analysis - #10162
Conversation
Each consumer reparsed unchanged first-party targets because export analysis was scoped to one rule context. A 256-consumer automatic-concurrency workload reduced aggregate CPU from 2.164 to 1.784 seconds. Skipping ordinary `require()` assignments before resolution reduced aggregate CPU from 22.322 to 17.364 seconds on a 561-file cold workload. File identity metadata invalidates changed targets, and each worker retains at most 2,048 entries.
Overall package sizeSelf size: 8.77 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.4.0 | 127.33 kB | 447.04 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | dc-polyfill | 0.1.11 | 25.74 kB | 25.74 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #10162 +/- ##
==========================================
+ Coverage 91.10% 98.64% +7.53%
==========================================
Files 970 1004 +34
Lines 138842 155851 +17009
Branches 59 74 +15
==========================================
+ Hits 126490 153733 +27243
+ Misses 12352 2118 -10234
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
BenchmarksBenchmark execution time: 2026-09-04 11:31:58 Comparing candidate commit 3985fc6 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 2300 metrics, 13 unstable metrics.
|
What does this PR do?
Adds bounded process-local reuse for required-export analysis and skips ordinary
require()assignments before module resolution.Motivation
Required-export checks reparsed unchanged first-party targets for each consumer.
A 256-consumer automatic-concurrency workload reduced aggregate CPU from 2.164 to 1.784 seconds. The additional fast path reduced aggregate CPU from 22.322 to 17.364 seconds on a 561-file cold workload.
Additional Notes
This does not use a disk cache.