Skip to content

Commit d5d856c

Browse files
authoredJan 13, 2025··
perf(es/minifier): Adjust parallel threshold (#9872)
**Description:** I profiled each one each time by using `--save-baseline` and `--baseline`, and selected the options that produces the best result.
1 parent 46e3d77 commit d5d856c

File tree

5 files changed

+27
-20
lines changed

5 files changed

+27
-20
lines changed
 

‎.changeset/tasty-mugs-sniff.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
swc_ecma_minifier: minor
3+
swc_core: minor
4+
swc_ecma_transforms_optimization: minor
5+
---
6+
7+
perf(es/minifier): Make `Finalizer` more parallel

‎crates/swc_ecma_minifier/src/compress/pure/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ impl Pure<'_> {
184184
where
185185
N: for<'aa> VisitMutWith<Pure<'aa>> + Send + Sync,
186186
{
187-
self.maybe_par(cpu_count(), nodes, |v, node| {
187+
self.maybe_par(cpu_count() * 8, nodes, |v, node| {
188188
node.visit_mut_with(v);
189189
});
190190
}

‎crates/swc_ecma_minifier/src/pass/precompress.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use swc_ecma_transforms_base::perf::{Parallel, ParallelExt};
66
use swc_ecma_utils::{ExprCtx, ExprExt, Value::Known};
77
use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
88

9-
use crate::CPU_COUNT;
9+
use crate::HEAVY_TASK_PARALLELS;
1010

1111
/// Optimizer invoked before invoking compressor.
1212
///
@@ -60,37 +60,37 @@ impl VisitMut for PrecompressOptimizer {
6060
}
6161

6262
fn visit_mut_stmts(&mut self, n: &mut Vec<Stmt>) {
63-
self.maybe_par(*CPU_COUNT, n, |v, n| {
63+
self.maybe_par(*HEAVY_TASK_PARALLELS, n, |v, n| {
6464
n.visit_mut_with(v);
6565
});
6666
}
6767

6868
fn visit_mut_module_items(&mut self, n: &mut Vec<ModuleItem>) {
69-
self.maybe_par(*CPU_COUNT, n, |v, n| {
69+
self.maybe_par(*HEAVY_TASK_PARALLELS, n, |v, n| {
7070
n.visit_mut_with(v);
7171
});
7272
}
7373

7474
fn visit_mut_exprs(&mut self, n: &mut Vec<Box<Expr>>) {
75-
self.maybe_par(*CPU_COUNT, n, |v, n| {
75+
self.maybe_par(*HEAVY_TASK_PARALLELS, n, |v, n| {
7676
n.visit_mut_with(v);
7777
});
7878
}
7979

8080
fn visit_mut_opt_vec_expr_or_spreads(&mut self, n: &mut Vec<Option<ExprOrSpread>>) {
81-
self.maybe_par(*CPU_COUNT, n, |v, n| {
81+
self.maybe_par(*HEAVY_TASK_PARALLELS, n, |v, n| {
8282
n.visit_mut_with(v);
8383
});
8484
}
8585

8686
fn visit_mut_expr_or_spreads(&mut self, n: &mut Vec<ExprOrSpread>) {
87-
self.maybe_par(*CPU_COUNT, n, |v, n| {
87+
self.maybe_par(*HEAVY_TASK_PARALLELS, n, |v, n| {
8888
n.visit_mut_with(v);
8989
});
9090
}
9191

9292
fn visit_mut_var_declarators(&mut self, n: &mut Vec<VarDeclarator>) {
93-
self.maybe_par(*CPU_COUNT, n, |v, n| {
93+
self.maybe_par(*HEAVY_TASK_PARALLELS, n, |v, n| {
9494
n.visit_mut_with(v);
9595
});
9696
}

‎crates/swc_ecma_transforms_optimization/src/simplify/branch/mod.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -1219,31 +1219,31 @@ impl VisitMut for Remover {
12191219
}
12201220

12211221
fn visit_mut_prop_or_spreads(&mut self, n: &mut Vec<PropOrSpread>) {
1222-
self.maybe_par(cpu_count(), n, |v, n| {
1222+
self.maybe_par(cpu_count() * 8, n, |v, n| {
12231223
n.visit_mut_with(v);
12241224
})
12251225
}
12261226

12271227
fn visit_mut_expr_or_spreads(&mut self, n: &mut Vec<ExprOrSpread>) {
1228-
self.maybe_par(cpu_count(), n, |v, n| {
1228+
self.maybe_par(cpu_count() * 8, n, |v, n| {
12291229
n.visit_mut_with(v);
12301230
})
12311231
}
12321232

12331233
fn visit_mut_opt_vec_expr_or_spreads(&mut self, n: &mut Vec<Option<ExprOrSpread>>) {
1234-
self.maybe_par(cpu_count(), n, |v, n| {
1234+
self.maybe_par(cpu_count() * 8, n, |v, n| {
12351235
n.visit_mut_with(v);
12361236
})
12371237
}
12381238

12391239
fn visit_mut_exprs(&mut self, n: &mut Vec<Box<Expr>>) {
1240-
self.maybe_par(cpu_count(), n, |v, n| {
1240+
self.maybe_par(cpu_count() * 8, n, |v, n| {
12411241
n.visit_mut_with(v);
12421242
})
12431243
}
12441244

12451245
fn visit_mut_var_declarators(&mut self, n: &mut Vec<VarDeclarator>) {
1246-
self.maybe_par(cpu_count(), n, |v, n| {
1246+
self.maybe_par(cpu_count() * 8, n, |v, n| {
12471247
n.visit_mut_with(v);
12481248
})
12491249
}
@@ -1261,7 +1261,7 @@ impl Remover {
12611261

12621262
let mut new_stmts = Vec::with_capacity(stmts.len());
12631263

1264-
self.maybe_par(cpu_count(), &mut *stmts, |visitor, stmt| {
1264+
self.maybe_par(cpu_count() * 8, &mut *stmts, |visitor, stmt| {
12651265
visitor.normal_block = true;
12661266
stmt.visit_mut_with(visitor);
12671267
});

‎crates/swc_ecma_transforms_optimization/src/simplify/dce/mod.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@ impl TreeShaker {
591591
}
592592
}
593593

594-
self.visit_mut_par(cpu_count(), stmts);
594+
self.visit_mut_par(cpu_count() * 8, stmts);
595595

596596
stmts.retain(|s| match s.as_stmt() {
597597
Some(Stmt::Empty(..)) => false,
@@ -845,11 +845,11 @@ impl VisitMut for TreeShaker {
845845
}
846846

847847
fn visit_mut_expr_or_spreads(&mut self, n: &mut Vec<ExprOrSpread>) {
848-
self.visit_mut_par(cpu_count(), n);
848+
self.visit_mut_par(cpu_count() * 8, n);
849849
}
850850

851851
fn visit_mut_exprs(&mut self, n: &mut Vec<Box<Expr>>) {
852-
self.visit_mut_par(cpu_count(), n);
852+
self.visit_mut_par(cpu_count() * 8, n);
853853
}
854854

855855
fn visit_mut_for_head(&mut self, n: &mut ForHead) {
@@ -947,11 +947,11 @@ impl VisitMut for TreeShaker {
947947
}
948948

949949
fn visit_mut_opt_vec_expr_or_spreads(&mut self, n: &mut Vec<Option<ExprOrSpread>>) {
950-
self.visit_mut_par(cpu_count(), n);
950+
self.visit_mut_par(cpu_count() * 8, n);
951951
}
952952

953953
fn visit_mut_prop_or_spreads(&mut self, n: &mut Vec<PropOrSpread>) {
954-
self.visit_mut_par(cpu_count(), n);
954+
self.visit_mut_par(cpu_count() * 8, n);
955955
}
956956

957957
fn visit_mut_script(&mut self, m: &mut Script) {
@@ -1095,7 +1095,7 @@ impl VisitMut for TreeShaker {
10951095
}
10961096

10971097
fn visit_mut_var_declarators(&mut self, n: &mut Vec<VarDeclarator>) {
1098-
self.visit_mut_par(cpu_count(), n);
1098+
self.visit_mut_par(cpu_count() * 8, n);
10991099

11001100
n.retain(|v| {
11011101
if v.name.is_invalid() {

0 commit comments

Comments
 (0)
Please sign in to comment.