Skip to content

Decoding performance regression from 3.6.12 to 3.7.4 (Windows) #729

@nazar-pc

Description

@nazar-pc

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions