* Fwd: emacs empty startup time increased from v 27.1 to 29.0 by factor 3? [not found] ` <CAJnXXohhSOxg82bw3aZn5tjUBmAOkStaNQFjUrV5FhHFpRO34g@mail.gmail.com> @ 2023-01-27 17:20 ` John Yates 2023-01-28 9:00 ` Lynn Winebarger 2023-01-28 12:22 ` Fwd: " Eli Zaretskii 0 siblings, 2 replies; 3+ messages in thread From: John Yates @ 2023-01-27 17:20 UTC (permalink / raw) To: Emacs developers; +Cc: Andrea Corallo [-- Attachment #1: Type: text/plain, Size: 1090 bytes --] Reposting to emacs-devel at Eli's behest. Re my suggested parallel, Eli asked: > How many hundreds? Emacs 29 loads almost 300 *.eln files at startup. I have never needed to answer that question. I work on the code generation middle-end. When I modify one of its fundamental headers over 350 modules get rebuilt. (That number reflects poor dependency management, which is being addressed.) There are probably just as many modules unrelated to code generation (e.g. UI, graphics, etc). /john ---------- Forwarded message --------- From: John Yates <john@yates-sheets.org> Date: Thu, Jan 26, 2023 at 8:16 PM Subject: Re: emacs empty startup time increased from v 27.1 to 29.0 by factor 3? To: <help-gnu-emacs@gnu.org> I work on a product whose structure involves literally hundreds of DLLs / SOs. We tolerate slow start-up in-house because it optimizes the compile / edit / debug cycle. Packaging the final product involves an extra step to collapse our hundreds of images into just a handful via a secondary link step. I wonder if there is anything analogous that Emacs could do. [-- Attachment #2: Type: text/html, Size: 2416 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: emacs empty startup time increased from v 27.1 to 29.0 by factor 3? 2023-01-27 17:20 ` Fwd: emacs empty startup time increased from v 27.1 to 29.0 by factor 3? John Yates @ 2023-01-28 9:00 ` Lynn Winebarger 2023-01-28 12:22 ` Fwd: " Eli Zaretskii 1 sibling, 0 replies; 3+ messages in thread From: Lynn Winebarger @ 2023-01-28 9:00 UTC (permalink / raw) To: John Yates; +Cc: Emacs developers, Andrea Corallo [-- Attachment #1: Type: text/plain, Size: 2621 bytes --] Hi, John, The closest thing in Emacs to what you describe is dumping, which currently isn't supported for native compilation, unless something has changed that I'm not aware of. Last summer I did an experiment and modified 28.1 to support dumping native compilation. I had a startup that was loading all libraries included with emacs and approximately an additional 1000 packages installed in site-lisp (lots of manual modifications to make that happen). Loading those packages at startup as regular packages, after ensuring all were compiled ahead of time, increased startup time to 15 minutes or more. The dumped version only took 5 seconds or so. I discarded that experiment, but have done a similar site-lisp installation with maybe half of those additional packages. The dump produced by "dump-emacs-portable" starts almost instantly. Even without dumping, startup time is only 30 seconds or so. For that matter, it takes 12 minutes to dump the byte-compiled function, where dumping the natively compiled version would take over 30 minutes. It's not a completely fair comparison since (if memory serves) the natively compiled version loaded 4000-5000 files where this version is only loading ~2200 libraries. Loading natively compiled libraries does do some additional checking to compare source file to the compiled library by checksum. Maybe that's part of the 3x you're seeing? Lynn On Fri, Jan 27, 2023, 12:22 PM John Yates <john@yates-sheets.org> wrote: > Reposting to emacs-devel at Eli's behest. > > Re my suggested parallel, Eli asked: > > > How many hundreds? Emacs 29 loads almost 300 *.eln files at startup. > > I have never needed to answer that question. > > I work on the code generation middle-end. When I modify one of its > fundamental headers over 350 modules get rebuilt. (That number > reflects poor dependency management, which is being addressed.) > There are probably just as many modules unrelated to code generation > (e.g. UI, graphics, etc). > > /john > ---------- Forwarded message --------- > From: John Yates <john@yates-sheets.org> > Date: Thu, Jan 26, 2023 at 8:16 PM > Subject: Re: emacs empty startup time increased from v 27.1 to 29.0 by > factor 3? > To: <help-gnu-emacs@gnu.org> > > > I work on a product whose structure involves literally hundreds of > DLLs / SOs. We tolerate slow start-up in-house because it optimizes > the compile / edit / debug cycle. > > Packaging the final product involves an extra step to collapse our > hundreds of images into just a handful via a secondary link step. > I wonder if there is anything analogous that Emacs could do. > > [-- Attachment #2: Type: text/html, Size: 4457 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Fwd: emacs empty startup time increased from v 27.1 to 29.0 by factor 3? 2023-01-27 17:20 ` Fwd: emacs empty startup time increased from v 27.1 to 29.0 by factor 3? John Yates 2023-01-28 9:00 ` Lynn Winebarger @ 2023-01-28 12:22 ` Eli Zaretskii 1 sibling, 0 replies; 3+ messages in thread From: Eli Zaretskii @ 2023-01-28 12:22 UTC (permalink / raw) To: John Yates; +Cc: emacs-devel, akrl > From: John Yates <john@yates-sheets.org> > Date: Fri, 27 Jan 2023 12:20:57 -0500 > Cc: Andrea Corallo <akrl@sdf.org> > > Re my suggested parallel, Eli asked: > > > How many hundreds? Emacs 29 loads almost 300 *.eln files at startup. > > I have never needed to answer that question. > > I work on the code generation middle-end. When I modify one of its > fundamental headers over 350 modules get rebuilt. (That number > reflects poor dependency management, which is being addressed.) > There are probably just as many modules unrelated to code generation > (e.g. UI, graphics, etc). > > /john > ---------- Forwarded message --------- > From: John Yates <john@yates-sheets.org> > Date: Thu, Jan 26, 2023 at 8:16 PM > Subject: Re: emacs empty startup time increased from v 27.1 to 29.0 by factor 3? > To: <help-gnu-emacs@gnu.org> > > I work on a product whose structure involves literally hundreds of > DLLs / SOs. We tolerate slow start-up in-house because it optimizes > the compile / edit / debug cycle. > > Packaging the final product involves an extra step to collapse our > hundreds of images into just a handful via a secondary link step. > I wonder if there is anything analogous that Emacs could do. How exactly do you "collapse the hundreds of shared libraries into just a handful by a secondary link step"? ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-01-28 12:22 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <873581tkc0.fsf@no.workgroup> [not found] ` <83pmb5i90e.fsf@gnu.org> [not found] ` <87a624zw0e.fsf@no.workgroup> [not found] ` <CAJnXXohhSOxg82bw3aZn5tjUBmAOkStaNQFjUrV5FhHFpRO34g@mail.gmail.com> 2023-01-27 17:20 ` Fwd: emacs empty startup time increased from v 27.1 to 29.0 by factor 3? John Yates 2023-01-28 9:00 ` Lynn Winebarger 2023-01-28 12:22 ` Fwd: " Eli Zaretskii
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).