webpack-contrib / terser-webpack-plugin

Terser Plugin
MIT License
1.95k stars 157 forks source link

Dont use workers for swc & esbuild minify #580

Open ronakj opened 1 year ago

ronakj commented 1 year ago

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.

alexander-akait commented 11 months ago

@ronakj Can you provide profiling? Because we use parallelization to compress multiple files and avoid memory problems with real big files