From: Christoph Scholtes <cschol2112@googlemail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Emacs build times on Windows
Date: Sat, 21 Apr 2012 06:05:42 -0600 [thread overview]
Message-ID: <4F92A296.3000604@gmail.com> (raw)
In-Reply-To: <83vckth7ah.fsf@gnu.org>
Hi Eli,
On 4/21/2012 1:29 AM, Eli Zaretskii wrote:
> On my i7 desktop (4 hyper-threaded cores), it takes 9 minutes, if I
> use the -j10 switch to Make. I suggest that you try -j6 in your
> builds (if you use anything older than the current CVS of GNU Make,
> you will also have to use the XMFLAGS="-j6" kludge as well, see
> nt/INSTALL). A parallel build should be faster.
Thanks. Does this work with mingw32-make also or do I have to use Cygwin
(or MSYS?) to obtain gmake?
I tried building with mingw32-make -j2 but it did not result in any
significant speedup.
> The extra build with a large PURESIZE is not the problem. Each one of
> the 2 compilations of the Emacs sources takes 20 seconds on my machine
> (using "make -j10"), which is negligibly short compared to the
> compilation of Lisp files. ("make -j10 info" takes another 5 seconds,
> but only on the trunk, where I recently made the 'info' target of
> nt/makefile.w32-in more parallel-friendly.)
On my system the extra PURESIZE build takes a lot longer than 20
seconds, but hopefully I can reduce that by using parallel compilation.
> Very simple: the byte compilation on Posix platforms can run in
> parallel, because it uses a generic .el.elc rule. By contrast, on
> Windows we compile them sequentially, one after the other, because the
> recipe says:
>
> compile-CMD:
> # -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g
> for %%f in ($(COMPILE_FIRST)) do \
> $(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f
> for %%f in (. $(WINS)) do for %%g in (%%f/*.el) do \
> $(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f/%%g
>
> IOW, we use a shell-level loop to compile the files one by one.
>
> So if you are looking for the place to significantly speed up the
> bootstrap, the first place to look is to make the byte compilation use
> a similar setup to what you see in lisp/Makefile.in.
I see. I will look into that. Thanks.
Christoph
next prev parent reply other threads:[~2012-04-21 12:05 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-21 3:50 Emacs build times on Windows Christoph Scholtes
2012-04-21 7:29 ` Eli Zaretskii
2012-04-21 12:05 ` Christoph Scholtes [this message]
2012-04-21 13:52 ` Eli Zaretskii
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F92A296.3000604@gmail.com \
--to=cschol2112@googlemail.com \
--cc=eliz@gnu.org \
--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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.