From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:59648) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAQf5-0006M0-M8 for guix-patches@gnu.org; Fri, 06 Mar 2020 23:02:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAQf4-0001L2-HO for guix-patches@gnu.org; Fri, 06 Mar 2020 23:02:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:40114) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jAQf4-0001Jk-DJ for guix-patches@gnu.org; Fri, 06 Mar 2020 23:02:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jAQf4-0004Cw-A0 for guix-patches@gnu.org; Fri, 06 Mar 2020 23:02:02 -0500 Subject: [bug#37305] Making system installation tests faster Resent-Message-ID: From: Maxim Cournoyer References: <87sgpby4p9.fsf@gmail.com> <87y2yg3t3s.fsf@gnu.org> <87k14sfaz7.fsf@gmail.com> <87lfp6b5cs.fsf_-_@gmail.com> <8736bdf5il.fsf@gnu.org> <87blpzozz7.fsf@gmail.com> <8736ba3hxo.fsf_-_@gnu.org> <87sgj8j9sf.fsf@gmail.com> <87sgj7wpqa.fsf@gmail.com> Date: Fri, 06 Mar 2020 23:01:14 -0500 In-Reply-To: <87sgj7wpqa.fsf@gmail.com> (Maxim Cournoyer's message of "Tue, 18 Feb 2020 16:27:25 -0500") Message-ID: <87eeu4ke45.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 37305@debbugs.gnu.org Hello, this is a small update, to reflect recent changes to the code base. Maxim Cournoyer 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