-
Notifications
You must be signed in to change notification settings - Fork 18
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
From 6 seconds to almost forever #57
Comments
Thanks for this. |
It does look like the symptoms of #51. That using My gut feel at the slowdown is that there is sufficient multi-threading going on in these tests that the serializing of the coverage hit recording is dominating the run-time (probably that tight loop interfering with everything else). Addressing that without unfixing #42 is going to be interesting. |
That makes sense. I do believe there is a fair amount of multi-threading in play. |
Using
I think this is going to end up with a number of options available to tune the recording to the individual scenario, rather than trying for a one-size fits all. |
Well I will certainly let you prioritize your own work, but getting AltCover working with the sawdust code base isn't terribly important for me. I submitted it here just in case it was useful to you as a reproduceable test case. But one of the things I say in the README for the sawdust repo is that it isn't a code base I currently plan to work on very much. So if you are considering fixes or enhancements that are likely to improve AltCover for sawdust without much chance of benefiting other projects, I would suggest maybe not. :-) Thanks! |
On the assumption that this is the same underlying issue as #51, I now have something tractable to work on for that issue. And most of the remaining roadmap items are just boring XML manipulation. |
Having made a number of experimental forays, the root cause is that the set of tests presented are compute bound, and make in excess of 1.3E10 recordable visits, and hence the recording overheads dominate, even in experiments when buffered to memory rather than promptly written to file. Experimental results suggest that the best-case scenario would be "only" about 100x slowdown, and be limited by whether the in-memory record can be serialized out in the short time window available to the .net core For the record, the 1.3E10 number is a couple of orders of magnitude more coverage visits than I've seen even in large-scale system testing during my career, admittedly in systems that were constrained by I/O in its broadest sense. |
Interesting. I guess the sawdust test suite is kind of a pathological case. I was hoping sawdust as an example might have been more helpful to you, but alas... |
Release v5.3.675 makes some significant speed-ups for On my machine, the test set takes about 35 minutes to record 12,999,758,207 visits, compared with 13s without instrumentation, for a factor of only ~160 slowdown. |
I'm logging a separate issue for this because I'm not sure it is the same as #56 or #51, although it might be.
In this repo:
https://github.com/ericsink/sawdust
If I cd into the
sd_tests
directory and typedotnet test
, it takes about six seconds (on my machine).OTOH, when I did:
It ran for hours before I killed it, consuming a large amount of disk space.
Anyway, I thought perhaps having another repro case might be helpful.
The text was updated successfully, but these errors were encountered: