-
Notifications
You must be signed in to change notification settings - Fork 12
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
reduce client runtime #193
Comments
Any further improvements, in other words getting the subtest runtime < 0.4 seconds, would require some sort of IPC setup that avoids the startup cost (python module import for the selftest case) 1700 times but this seems like a lot of work |
I thinking moving to IPC is actually the right move. The test harness could feed in one command per line, for example, and a client could even do an exec per command if it wanted to, but it would open up the possibility of keeping a warmed up, potentially JITed process running, instead of the high level of overhead inherent in process spawn we're locked into right now |
Yep, agreed about IPC being a long-term requirement (at least, certainly for clients that have beefy runtimes e.g. anything on JVM). Another thing we can do here for the runtime itself (but not necessarily the resources needed) is use (One blocker for parallelization is that we currently use subtests for the CPython bundle tests, and subtests don't compose with xdist. But it wouldn't be very hard to remove subtests in favor of parametrization and parallelize from there.) |
As an update on this:
|
Based on #188 I started to look at why the test suite feels so slow:
sigstore --help
takes > 0.4 seconds.--offline
and that does make some sense: there is going to be a minimum of one TLS handshake and two requests here without--offline
So a significant issue is that we start 1700 client processes during the test: this likely means 1700 TLS handshakes and 3400 HTTP requests. there seems to be a couple of possible improvements:
--offline
argument (we would just have to make sure the client TUF cache is hot enough, this could be done by running the client once before the test suite runs)The text was updated successfully, but these errors were encountered: