unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Lynn Winebarger <owinebar@gmail.com>
To: Yuan Fu <casouri@gmail.com>
Cc: emacs-devel <emacs-devel@gnu.org>
Subject: Re: Unboxed package manager
Date: Mon, 20 Mar 2023 04:55:37 -0400	[thread overview]
Message-ID: <CAM=F=bCeOzcfr-9roYnknmMeEWuwS9BDE8Sfz8sW+AQDb405nw@mail.gmail.com> (raw)
In-Reply-To: <57668895-8EEA-44F7-BD46-9CDFAA11FD2C@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2279 bytes --]

On Mon, Mar 20, 2023, 2:31 AM Yuan Fu <casouri@gmail.com> wrote:

>
>
> > On Mar 19, 2023, at 6:18 PM, Lynn Winebarger <owinebar@gmail.com> wrote:
> >
> > I've
> > done this manually on various systems I use with a significant
> > improvement in startup performance.
>
> It'll be interesting to see the numbers on the improvement. How much does
> it improve startup time if there is x packages and y are loaded at startup
> time?
>


Good question. The systems I've done this manually on are one-off builds of
28.x on sandboxed systems where the system emacs is 24.3.  So, I didn't
have to worry about managing package updates with any frequency.

I'm now working on unsandboxed systems where the system version is 27.2 and
I've installed 28.x, 29.x and 30.x builds into /use/local.  I don't want to
do a manual installation here because I (would like to) regularly update
packages with the package menu.   Additionally I discovered that 30.x (and
probably 29.x) has introduced a new bytecode instruction, after installing
packages under 30.x then trying to run 28.x.  So I've set up my
initialization files to use different custom-files, package archive
directories, and package-quickstart.el files tied to the major version of
emacs that's running.  Running the install through
package-install-selected-packages for each version is incredibly slow, but
seems the safest way for now.  Hence my interest in implementing a more
systematic approach now that doesn't rebuild a massive package-quickstart
file for every package installed.

I did file a bug report as a place to hang cpu and memory profiles of the
initialization when I loaded everything at startup under 27.2 - see
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61004 .  If memory serves,
locate-file took something like 75% of the cpu time, and also did an
incredible (and dominant) amount of consing. Even if the autoloads in
package-quickstart specified a full path for the library (they don't),
every "require" of an unloaded system library still has to search the
entire 2403 (or however many were in that bug report) package directories
first, for every system library required, even if no packages are actually
loaded.

I'm using 28.x as my reference build because re-dumping has been broken
under 29.x.

Lynn

[-- Attachment #2: Type: text/html, Size: 3266 bytes --]

  reply	other threads:[~2023-03-20  8:55 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-20  1:18 Unboxed package manager Lynn Winebarger
2023-03-20  6:30 ` Yuan Fu
2023-03-20  8:55   ` Lynn Winebarger [this message]
2023-03-20  9:09     ` Lynn Winebarger
2023-03-20 15:25       ` Philip Kaludercic
2023-03-20 16:12         ` Lynn Winebarger
2023-03-20 16:53           ` Philip Kaludercic
2023-03-20 18:11           ` Jonas Bernoulli
2023-03-21  1:40             ` Lynn Winebarger
2023-03-22 11:17               ` Jonas Bernoulli
2023-03-22 14:31                 ` Lynn Winebarger
2023-03-22 23:39                   ` Lynn Winebarger
2023-03-21 19:06         ` Augusto Stoffel
2023-03-21 19:10           ` Philip Kaludercic
2023-03-21 19:57             ` Augusto Stoffel
2023-03-21 20:06               ` Philip Kaludercic
2023-03-21  0:23       ` Gregory Heytings
2023-03-21  0:25         ` Gregory Heytings
2023-03-21  1:55           ` Lynn Winebarger
2023-03-21 10:36             ` Lynn Winebarger
2023-03-21 10:52               ` Gregory Heytings
2023-03-21 13:23                 ` Eli Zaretskii
2023-03-21 13:33                   ` Gregory Heytings
2023-03-21 14:13                     ` Eli Zaretskii
2023-03-21 14:20                       ` Gregory Heytings
2023-03-21 17:29                         ` Eli Zaretskii
2023-03-22  0:48                           ` Lynn Winebarger
2023-03-22 14:42                             ` Eli Zaretskii
2023-03-22 22:22                               ` Lynn Winebarger
2023-03-23  6:46                                 ` Eli Zaretskii
2023-03-23 13:30                                   ` Lynn Winebarger
2023-03-24 17:54                                     ` chad
2023-03-26  1:51                                       ` Lynn Winebarger
2023-03-23  1:44                               ` David Masterson
2023-03-23  7:02                                 ` Eli Zaretskii
2023-03-22  7:29                           ` tomas

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://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to='CAM=F=bCeOzcfr-9roYnknmMeEWuwS9BDE8Sfz8sW+AQDb405nw@mail.gmail.com' \
    --to=owinebar@gmail.com \
    --cc=casouri@gmail.com \
    --cc=emacs-devel@gnu.org \
    /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/emacs.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).