-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Investigate performance regressions on Windows CI #4171
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Do we have a general benchmarking suite for rubygems? Should we add one? |
Any improvements you feel worth adding are welcome 🤷♂️. I just noticed this issue because I know windows is inherently slow when it comes to launching processes from ruby, but it could certainly be faster, since ruby 2.4 was. |
Maybe we could use something like this? https://github.com/nmeans/minitest-profile |
Having experienced this before, and also having just switched to a new desktop, tried locally. Installing gems runs an endless loop? Was on current master... I've also got Ubuntu 20.04 running, so busy with that... |
@MSP-Greg Sorry I never got back to you about this. How did you try to install gems? To get setup, you should
Running specs on Windows is very slow, you I think more like an endless loop, it's a slow loop 😅. The problem is that, talking about our CI, while specs take ~40 minutes on Ruby 2.4, they take ~1h or more on later rubies. I guess you could try running subsets of the suite like a single file, or a single spec, and see if that 50% decrease in performance is maintained. That would go a long way in being closer to produce something easily reproducible the can be reported to ruby-core. |
As to the Windows speed, using the Windows file system with Ruby is slow, and Bundler CI creates a lot of small files.
I can't recall.
No problem. You're doing a lot of great work here. I've still got a lot of code running under Windows Ruby (like https://msp-greg.github.io/), but I spend more time in WSL2/Ubuntu (which has things like I'll try to revisit things in a few days. I think... |
I'm wondering why running the bundler specs locally takes so long in general. Even on my Mac, I saw this:
I'll post my Windows results once it's finished, but it's been running for hours at this point. |
Wow, 3 specs took 62.5% of your tests runtime time. There's definitely something going on there. If you rerun tests, do you get similar results? Bundler tests are indeed very slow, because they are all integration tests which completely run |
Hm, parallel_rspec didn't seem to work for me:
|
Just |
Same:
BTW, running the specs locally again on my Mac were faster, down to about an hour:
|
Windows bundler tests seemed to be hung up on something until I manually hit the return key this morning, then they progressed again. Still running.... |
You need to run |
Aha, thanks. Any chance we could update the CONTRIBUTING.md file with this tidbit? |
Definitely ran faster with parallel_rspec, though it does generate confused output in conjunction with the |
I thought it was already documented, we should definitely update |
Updated! #4831 |
FWIW, keeping in mind that I think one of these was "stuck" until I manually hit a carriage return.
|
I think it's the first test of each parallel run that it's very slow, because dummy test repos are built on the fly and they are apparently quite costly to build. I have an idea on how to improve that. |
Describe the problem as clearly as you can
This is most likely a third party issue, but it'd be nice to do some research so a proper issue can be reported to ruby-core.
Since we added a Windows CI for bundler, it's been the bottleneck of our CI since it's quite slow.
I can live with that for the moment, but a first observation is that CI seems consistently 50% slower on Windows 2.5-2.7 that on Windows 2.4.
So maybe there's some performance regression on ruby on Windows that we could report to ruby-core and if fixed, it would not only benefit our CI, but windows ruby users in general.
This is mostly likely related to process creation which seems particularly slow on Windows, and which bundler CI makes heavy use of.
Post steps to reproduce the problem
Go to the "Actions" tab and compare the build times of bundler on windows.
The text was updated successfully, but these errors were encountered: