decompals / decompals/wibo

Severe performance regression in v1.0.0

Open
#104 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
168
Forks
44
PR merge metrics
No merged PRs in 30d

Description

I am testing updating the build of doldecomp/melee from wibo 0.7.0 to 1.0.0 and am noticing a huge (~25x) slowdown in the new version.

Before (0.7.0):

$ time ninja
<snip>
Executed in   25.31 secs    fish           external
   usr time  339.17 secs    0.38 millis  339.17 secs
   sys time  148.99 secs    1.26 millis  148.99 secs

After (1.0.0):

$ time ninja
<snip>
Executed in  632.48 secs    fish           external
   usr time  139.64 mins    0.20 millis  139.64 mins
   sys time   78.02 mins    1.70 millis   78.02 mins

Note that I am not using prebuilt static wibo binaries - I am building using Nix and dynamically linking against system libraries (libclang, mimalloc). https://github.com/doldecomp/melee/blob/8a5d975fbd3debea3db7aa5f4851aea5222d5344/.nix/wibo.nix
That being said, I am doing this for both 0.7.0 and 1.0.0 and I don't think that alone can explain such a severe performance regression.

Edit: I have updated the build to use the project-provided statically-built wibo-i686 from the releases page and can confirm a similar slowdown.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the reported ninja build slowdown with wibo 0.7.0 and 1.0.0, using both the Nix configuration in .nix/wibo.nix and the project-provided statically built wibo-i686 binary. Compare the builds and execution measurements to identify where the regression occurs; done means the cause is isolated and the v1.0.0 performance is verified against the earlier release.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, linux
Domain
performance, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.