Hi,
Lars-Dominik Braun <ldb@leibniz-psychology.org> skribis:
Toggle quote (32 lines)
> That would have been my best guess too, but it does not seem to be the biggest> problem right now. Looking at the numbers again (both patches applied) with the> attached manifest[1], I see that:>> ---snip---> Local UNIX socket with and without --no-grafts:> N Min Max Median Avg Stddev> x 10 6.07 6.35 6.145 6.16 0.08232726> + 10 17.47 17.89 17.545 17.602 0.14351152> Difference at 99.0% confidence> 11.442 +/- 0.150576> 185.747% +/- 4.07133%>> Local UNIX socket vs. guix://localhost transport:> N Min Max Median Avg Stddev> x 10 17.47 17.89 17.545 17.602 0.14351152> + 10 17.43 18.1 17.61 17.642 0.20131788> No difference proven at 99.0% confidence>> Local UNIX socket vs ssh://localhost transport:> N Min Max Median Avg Stddev> x 10 17.47 17.89 17.545 17.602 0.14351152> + 10 33.46 35.27 34.315 34.359 0.53873205> Difference at 99.0% confidence> 16.757 +/- 0.5074> 95.1994% +/- 3.13957%> ---snap--->> So I would conclude:>> 1) Grafting still takes a lot of time and needs more work
Yes, I noticed that there’s still redundant work being done, so we mayneed global caching in addition to what58bb833365db4e8934a386497d5b00a063cfd27d did.
Toggle quote (3 lines)
> 2) Linux optimizes localhost networking pretty well> 3) Our SSH transport is terribly slow
Yes.
The patch below is a noticeable improvement for me. On my laptop,
GUIX_DAEMON_SOCKET=ssh://localhost ./pre-inst-env guix build libreoffice -n
goes from 5.8s to 3.3s. It just does the same thing as we do forguix://.
Could you check what results it gives you?
Toggle quote (5 lines)
> So, I guess it would make sense for me to look at the SSH transport itself> again and see if there are any other low-hanging fruit. Not sure how much I can> help with profiling guile/guix itself. A different/better RPC protocol is> probably GSoC/v2.0-worthy?
There’s a project to rewrite the daemon in Scheme, started by CalebRistvedt (reepa) as part of GSoC a few years ago. This could be anopportunity to add a new version of the protocol that would supportpipelining.
Thanks,Ludo’.