dotnet / dotnet/format

Performance regression in 5.0 vs. 4.1

Open
#972 6 comments 0 reactions 1 assignee Claimed by @jmarolf View on GitHub
Dominant language
No language data
Stars
1.9k
Forks
173
Avg merge
10d 13h
Merged PRs (30d)
1

Description

Using [xunit/xunit](https://github.com/xunit/xunit), running `./build AnalyzeSource --timing` with 4.1 has the following timing results:

>**4.1 Cold** _(immediately following `git clean -xdf`)_
>
>![image](https://user-images.githubusercontent.com/16944/107732362-02f9cf00-6cad-11eb-98a3-9e91fda205fb.png)

>**4.1 Warm**
>
>![image](https://user-images.githubusercontent.com/16944/107732398-1a38bc80-6cad-11eb-8c1e-7b3e3e668308.png)

Now edit `.config/dotnet-tools.json` and update `dotnet-format` to `5.0.211103`. Re-running timings:

>**5.0 Cold**
>
>![image](https://user-images.githubusercontent.com/16944/107732576-8fa48d00-6cad-11eb-881c-f80ef9a9ee37.png)

>**5.0 Warm**
>
>![image](https://user-images.githubusercontent.com/16944/107732612-a64ae400-6cad-11eb-9f68-5ae7c198db7c.png)

I'm not sure why the cold regression is so much worse than the warm regression, but that'd be extremely painful in the CI/PR process. A cold version of `./build pr` process normally takes about 2.5 minutes on my box, so an increase of nearly 1 minute would increase build time by 40%.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.