mirror of
https://github.com/hanzoai/next.js.git
synced 2026-10-30 14:46:38 +00:00
Removing the automatic `serde` derives from `#[turbo_tasks::value]` should remove most of the macro expansion. I'll follow up with removing all the manual derives.
This also removes `Serialize` from `NextConfig`, leaving only `Deserialize`. The `Serialization` derive is no longer needed after some of @mischnic's fixes to edge templates.
Because this is trivially-eliminated dead code, there should be no user-facing benefit from removing this code, but there should be some improvements to our own workflows.
## Build Time: `cargo build -p next-swc-napi`
This gives a ~2% improvement to cold cargo build times with the debug profile.
```
$ hyperfine -w 1 -r 10 -p 'git co 3bb0bcbf82 && cargo clean' -p 'git co bgw/rm-value-serde && cargo clean' 'cargo build -p next-swc-napi' 'cargo build -p next-swc-napi'
Benchmark 1: cargo build -p next-swc-napi
Time (mean ± σ): 226.424 s ± 2.819 s [User: 1943.869 s, System: 85.058 s]
Range (min … max): 222.736 s … 232.369 s 10 runs
Benchmark 2: cargo build -p next-swc-napi
Time (mean ± σ): 220.957 s ± 6.535 s [User: 1940.188 s, System: 87.074 s]
Range (min … max): 213.891 s … 231.464 s 10 runs
Summary
cargo build -p next-swc-napi ran
1.02 ± 0.03 times faster than cargo build -p next-swc-napi
```
This is in addition to the ~2% improvement observed in https://github.com/vercel/next.js/pull/86631
**Percentage improvements to incremental build times are likely greater than shown here**, as cold builds include all of our dependencies, which are not touched by this PR.