d54d43d4ed
During build, there's no need to start N workers for type checking and linting, because there's no concurrency at all for these tasks (both TypeScript and ESLint are checking all files globally). During my test of `next build` for a small size project of 5 pages, this change reduces the peak memory usage by 545MB (as each worker holds a huge dependency chain). Before (there are too many worker threads initiated): <img width="1278" alt="before" src="https://user-images.githubusercontent.com/3676859/217116925-5594a45c-f1bb-4d11-8699-f6fe12ce7ee5.png"> After: <img width="1189" alt="CleanShot-2023-02-07-WfQTnB1D@2x" src="https://user-images.githubusercontent.com/3676859/217116940-a08a256e-b80d-4836-8b97-2837c845435e.png"> It improves the CPU usage as well. In the future we can spin up multiple workers and assign sub-task for each, but that only makes sense when the number of pages is large. NEXT-470 |
||
---|---|---|
.. | ||
create-next-app | ||
eslint-config-next | ||
eslint-plugin-next | ||
font | ||
next | ||
next-bundle-analyzer | ||
next-codemod | ||
next-env | ||
next-mdx | ||
next-plugin-storybook | ||
next-polyfill-module | ||
next-polyfill-nomodule | ||
next-swc | ||
react-dev-overlay | ||
react-refresh-utils |