-
Notifications
You must be signed in to change notification settings - Fork 99
Decoding performance regression from 3.6.12 to 3.7.4 (Windows) #729
Description
I just upgraded from 3.6.12 to 3.7.4 (all the versions in between are yanked) and CI on Windows started to take absurd amount of time.
Here is the commit, which upgrades parity-scale-codec and parity-scale-codec-derive: nazar-pc/abundance@9e10736
Look at the root Cargo.toml and Cargo.lock specifically, nothing has changed except the version there, no code changes were done either.
Now CI run right before that commit (63.127s total):
https://github.com/nazar-pc/abundance/actions/runs/14859021046/job/41719016206#step:5:314
With that commit (887.445s total):
https://github.com/nazar-pc/abundance/actions/runs/14858533562/job/41718379958?pr=233#step:5:314
The slow part appears to be the decoding of Segment data structure:
https://github.com/nazar-pc/abundance/blob/d714ed30986ad5dd3c63c47d7cb97eda946076eb/crates/shared/ab-archiving/src/archiver.rs#L42-L191
It is a custom implementation and it is very simple.
I wasn't able to reproduce it locally on x86-64 Linux (both debug build and optimized), but it certainly happens reproducibly in CI on Windows.