-
-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dont use workers for swc & esbuild minify #580
Comments
@ronakj Can you provide profiling? Because we use parallelization to compress multiple files and avoid memory problems with real big files |
Will you accept a PR? SWC uses thread locals, and the worker thread causes segfaults on some platforms. As a side note, next.js does not use workers for the SWC minifier because it's better for performance. I don't have the perf profile at the moment, but the parallelism of SWC is primarily managed by node.js worker threads (using napi), so it should be faster to call directly. |
I tried, and using terser-webpack-plugin/src/index.js Line 415 in be98c73
|
Modification Proposal
SWC and ESBuild minify both run off-thread though native bindings. We don't need to create workers to parallelize workloads for them, unlike terser or uglify-js which block the event loop if not run on separate worker. This should have performance improvement for people who have many output chunk files. I will try this out later and add some numbers to verify.
Expected Behavior / Situation
We simply use promise concurrenctly instead of workers to parallelize.
Actual Behavior / Situation
Workers are created regardless of minification implementation.
The text was updated successfully, but these errors were encountered: