Would it be useful for me to wrote a script to collect performance data for
various stages? Like downloading, computing derivations, building profile
etc?

On Thu, Oct 31, 2024, 11:18 AM Runciter via Development of GNU Guix and the
GNU System distribution. <guix-devel@gnu.org> wrote:

> Suhail Singh <suhailsingh...@gmail.com> writes:
>
> > Daniel Littlewood <danielittlew...@gmail.com> writes:
> >
> >> guix pull ("38k new commits"): 21m45s
> >> guix pull immediately after: 2m25s
> >> guix shell emacs (fresh): 1m49s
> >> ...
> >>
> >> nix-channel --update: 0m23s
> >> nix shell -p emacs (fresh): 0m24s
> >
> > Those are some interesting comparisons.  Is the reason guix pull takes
> > so long as compared to updating nix-channel primarily due to the
> > authentication of commits?  Or something else?
>
> As far as the local machine computations go, clearly, authenticating the
> commits is not the bottleneck. On all machines, indexing the received
> git objects locally is much longer than authenticating the commits.
>
> On my X60, when I pull for the first time after I delete the cache, the
> indexing step alone takes more than 40 minutes.
>
> The 2m25s that Daniel had for his second git pull, that had to be spent
> mostly on computing the Guix derivation. This time is in large part
> in-compressible I guess. Not that I know of a lot about this, but by
> reading the output, it's clear that every time guix pull has to compute
> the whole derivation of the latest commit of all the
> channels. Apparently, in a pull where Guix determines that it has
> nothing to do, this step is required before Guix can make the
> determination that it has nothing to do...
>
>
>

Reply via email to