guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#37305] Making system installation tests faster


From: Maxim Cournoyer
Subject: [bug#37305] Making system installation tests faster
Date: Fri, 06 Mar 2020 23:01:14 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hello, this is a small update, to reflect recent changes to the code
base.

Maxim Cournoyer <address@hidden> writes:

> Hello Ludovic!
>
> I have more benchmark results.  Not to be compared with the previous
> results, as these were executed on a much faster machine (24 cores vs 4
> cores), with an SSD instead of a rotative disk.
>
>
> Commands used:
>
> current-guix/pre-built:
>
> time ./pre-inst-env guix system build -e \
> '(begin
>   (use-modules
>    (gnu packages package-management))
>   (parameterize
>       ((current-guix-package
>       (current-guix/pre-built)))
>     ((@@
>       (gnu tests install)
>       operating-system-with-current-guix)
>      (@@
>       (gnu tests install)
>       %btrfs-root-os))))'
>
>
> current-guix (old fashionned):
>
> time ./pre-inst-env guix system build -e \
> '(begin
>   (use-modules
>    (gnu packages package-management))
>   (parameterize
>       ((current-guix-package
>       (current-guix)))
>     ((@@
>       (gnu tests install)
>       operating-system-with-current-guix)
>      (@@
>       (gnu tests install)
>       %btrfs-root-os))))'
>
>
> new current-guix (guix self):
>
> time ./pre-inst-env guix system build -e \
> '(begin
>    (use-modules ((gnu ci) #:select (channel-instance->package))
>               (guix monads)
>               (guix channels)
>               (guix store)
>               ((guix status) #:select (with-status-verbosity))
>               ((guix git-download) #:select (git-predicate))
>               (guix utils)
>               (gnu packages package-management))
>    (with-store store
>      (with-status-verbosity 2
>        (run-with-store store
>        (mlet* %store-monad
>            ((source-dir -> "/home/mcournoyer/src/guix")
>             (source (interned-file source-dir
>                                    "guix-source"
>                                    #:recursive? #t
>                                    #:select? (or (git-predicate source-dir)
>                                                  (const #t))))
>             (instance -> (checkout->channel-instance source))
>             (new-guix-current -> (channel-instance->package instance)))
>          (return  (parameterize ((current-guix-package new-guix-current))
>                     ((@@ (gnu tests install) 
> operating-system-with-current-guix)
>                      (@@ (gnu tests install) %btrfs-root-os)))))))))'

There have been some changes made to the modules used in the benchmark code
above.  Here's an updated version:

--8<---------------cut here---------------start------------->8---
time ./pre-inst-env guix system build -e \
'(begin
   (use-modules ((gnu ci) #:select (channel-source->package))
                (guix monads)
                (guix channels)
                (guix store)
                ((guix status) #:select (with-status-verbosity))
                ((guix git-download) #:select (git-predicate))
                (guix utils)
                (gnu packages package-management))
   (with-store store
     (with-status-verbosity 2
       (run-with-store store
         (mlet* %store-monad
             ((source-dir -> "/home/mcournoyer/src/guix")
              (source (interned-file source-dir
                                     "guix-source"
                                     #:recursive? #t
                                     #:select? (or (git-predicate source-dir)
                                                   (const #t))))
              (instance -> (checkout->channel-instance source))
              (new-guix-current -> (channel-source->package instance)))
           (return  (parameterize ((current-guix-package new-guix-current))
                      ((@@ (gnu tests install) 
operating-system-with-current-guix)
                       (@@ (gnu tests install) %btrfs-root-os)))))))))'
--8<---------------cut here---------------end--------------->8---

Time taken:

real    7m39.912s
user    0m57.129s
sys     0m0.499s

Compared to recycling the Guix development copy from the work tree:

real    0m48.297s
user    0m2.516s
sys     0m0.229s

Maxim





reply via email to

[Prev in Thread] Current Thread [Next in Thread]