unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: swedebugia@riseup.net
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: guix package is slow
Date: Sun, 01 Jul 2018 11:32:39 -0400	[thread overview]
Message-ID: <87y3evug2w.fsf@gmail.com> (raw)
In-Reply-To: <8a4e9b4cb730094a84ef3ff29233c6dd@riseup.net> (swedebugia's message of "Sat, 30 Jun 2018 08:20:48 -0700")

Hello!

swedebugia@riseup.net writes:

> Hi
>
> I would like guix package -A/s to be faster.
> There it takes >3s every time I run the command.

I agree that Guix is rather slow when comparing it to traditional
package managers such as apt; I think the main reason, as you found, is
that it has to load all the byte-compiled package definition files.

> Would it be possible to populate an index or something when pulling so
> that we have the information in a sqlite-db instead of traversing 40
> go-files with guile?

I remember asking Ludovic in #guix if Guile would be able to compete
with database software in terms of performance, and he said there are
ways we can make it faster. I'm not very knowledgeable myself about
Guile but if we could make it support static linking, to load only one
binary rather than hundreds in the case of Guix, that would be one way
to speed things. Next thing might be to implement native compilation.

> On an older guixsd with about 4k packages the delay was noticeably
> shorter. 

I guess the time it takes grows linearly (I hope!) with the number of
packages/modules it has to load. We're now at double that amount of
packages (IIRC), so Guix might take double the time it used to.

> What do you think?

Note that if you are using emacs-guix, the packages are kept in memory
so the operations there are much faster than when using the CLI.

Using an external databases to speed Guix is an interesting idea, but Id
rather have a lightning fast Guile in the longer term :)

Maxim

  parent reply	other threads:[~2018-07-01 15:32 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-30 15:20 guix package is slow swedebugia
2018-06-30 15:25 ` Pierre Neidhardt
2018-07-01 15:34   ` Maxim Cournoyer
2018-07-01 18:50     ` Pierre Neidhardt
2018-07-01 19:33       ` Maxim Cournoyer
2018-07-01 19:41         ` Pierre Neidhardt
2018-07-01 20:18           ` Maxim Cournoyer
2018-07-01 20:32             ` Pierre Neidhardt
2018-07-02  1:04           ` Oleg Pykhalov
2018-07-02 14:55             ` Maxim Cournoyer
2018-07-02 20:28               ` Alex Kost
2018-07-03 17:06                 ` swedebugia
2018-07-03 19:39                 ` Ludovic Courtès
2018-07-08 16:05                 ` Maxim Cournoyer
2018-07-09 16:42                 ` George Clemmer
2018-07-10  2:45                   ` Oleg Pykhalov
2018-07-02 20:39           ` Alex Kost
2018-07-01 15:32 ` Maxim Cournoyer [this message]
2018-07-02 10:20   ` Ludovic Courtès
2018-07-02 15:48     ` Maxim Cournoyer
2018-07-02 13:36 ` ‘package-transitive-supported-systems’ " Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y3evug2w.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=swedebugia@riseup.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).