unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org, dmoncayo@gmail.com
Subject: Re: Two strange messages while building Emacs on MS-Windows
Date: Mon, 10 Dec 2012 00:00:10 +0200	[thread overview]
Message-ID: <838v96dgyd.fsf@gnu.org> (raw)
In-Reply-To: <jwvzk1nb53u.fsf-monnier+emacs@gnu.org>

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: dmoncayo@gmail.com,  emacs-devel@gnu.org
> Date: Sun, 09 Dec 2012 10:50:31 -0500
> 
> > The more important reason is that byte compilation on Windows during
> > bootstrap is done sequentially, whereas on Unix it's done in parallel
> > (under "make -j").
> 
> I do "make -j2" and get about %170 of cpu utilisation (most of the
> less-than-100% is due to phases in the build process where we only have
> one process running, such as when running `configure'), so presumably my
> 6min would turn into no more than 10min if run sequentially.

Indeed, I get 10min 40sec for sequential compilation with Emacs whose
byte compiler was byte-compiled.  This is on a 3.4GHz Core i7, which
is probably faster than your cores.

With the changes I committed in revision 111166, lisp/makefile.w32-in
now allows for 4-way parallelism while byte-compiling, which slashes
the byte compilation times from 10:40 to 3:35 if I use "make -jN" with
N >= 4.

The above is with byte-compiled byte compiler.  If I do the same with
the interpreted byte compiler, the sequential compilation takes 12:30
while the parallel compilation takes 4:40 -- slower, but not by a
large margin, only 25% slowdown.  A full bootstrap with "make -j8"
takes about 6 minutes.

> Still pretty far from his 30min, so while "make -j" would help, the
> inefficiency of the bootstrap is at least as important in his specific
> case, I think.

I cannot explain 30 min, since I never get such long times here.  One
possible reason could be that Dani uses an MSYS Make, which doesn't
support parallel execution (the MinGW Make does in its latest
builds).  Another potential difference between what I do and what Dani
does is that Dani uses MSYS Bash, while I use cmd.exe.  But I can
hardly believe that MSYS Bash slows down things so much.

Yet another possible reason could be that Dani runs a 64-bit Windows 7
while I did the above measurements on a 32-bit XPSP3.  Recently I
found out that running 32-bit executables on 64-bit Windows OS incurs
a tangible penalty.  But my own measurements of byte compilation on
Windows 7 show only 2-fold slowdown, which still brings us only to
around 20 min or so, not 30.  A mystery.



  parent reply	other threads:[~2012-12-09 22:00 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-07 19:21 Two strange messages while building Emacs on MS-Windows Dani Moncayo
2012-12-07 19:54 ` Glenn Morris
2012-12-07 19:57   ` Glenn Morris
2012-12-07 20:17     ` Dani Moncayo
2012-12-07 21:35       ` Eli Zaretskii
2012-12-07 22:11         ` Dani Moncayo
2012-12-07 22:35           ` Stefan Monnier
2012-12-08  8:02           ` Eli Zaretskii
2012-12-08  8:43             ` Dani Moncayo
2012-12-08  9:24               ` Eli Zaretskii
2012-12-08 23:06               ` Stefan Monnier
2012-12-09  3:44                 ` Eli Zaretskii
2012-12-09 15:50                   ` Stefan Monnier
2012-12-09 18:15                     ` Óscar Fuentes
2012-12-09 18:52                       ` Eli Zaretskii
2012-12-09 19:31                         ` Óscar Fuentes
2012-12-09 22:14                           ` Eli Zaretskii
2012-12-09 22:44                             ` Óscar Fuentes
2012-12-10  6:06                               ` Eli Zaretskii
2012-12-10 11:11                                 ` Óscar Fuentes
2012-12-10 14:37                                   ` Eli Zaretskii
2012-12-10 15:42                                     ` Óscar Fuentes
2012-12-10 16:20                                       ` Eli Zaretskii
2012-12-09 22:00                     ` Eli Zaretskii [this message]
2012-12-09 23:31                       ` Dani Moncayo
2012-12-10  6:13                         ` Eli Zaretskii
2012-12-10 20:57                           ` Dani Moncayo
2012-12-10 21:08                             ` Eli Zaretskii
2012-12-10 21:33                               ` Dani Moncayo
2012-12-11  6:49                                 ` Eli Zaretskii
2012-12-11  7:18                                   ` Dani Moncayo
2012-12-11  7:51                                     ` Eli Zaretskii
2012-12-11 20:41                                       ` Dani Moncayo
2012-12-11 21:00                                         ` Eli Zaretskii
2012-12-11 20:41                               ` Dani Moncayo
2012-12-11 21:05                                 ` Eli Zaretskii
2012-12-11 21:58                                   ` Dani Moncayo
2012-12-11 22:55                                     ` Stefan Monnier
2012-12-12  3:50                                       ` Eli Zaretskii
2012-12-12 14:26                                         ` Stefan Monnier
2012-12-12 17:18                                           ` Eli Zaretskii
2012-12-12 18:42                                       ` Eli Zaretskii
2012-12-12  3:48                                     ` Eli Zaretskii
2012-12-12 18:41                                       ` Eli Zaretskii
2012-12-11  7:57                             ` Daniel Colascione
2012-12-11 20:42                               ` Dani Moncayo
2012-12-11 20:47                                 ` Daniel Colascione
2012-12-11 20:58                                   ` Dani Moncayo
2012-12-11 20:59                                     ` Daniel Colascione
2012-12-11 21:01                                       ` Dani Moncayo
2012-12-11 21:02                                         ` Daniel Colascione
2012-12-10  9:59                     ` Eli Zaretskii
2012-12-10 10:37                       ` Romain Francoise
2012-12-10 14:42                         ` Eli Zaretskii
2012-12-10 15:33                           ` Romain Francoise
2012-12-10 16:04                             ` Eli Zaretskii
2012-12-10 14:44                       ` Eli Zaretskii
2012-12-07 22:57         ` joakim
2012-12-08  8:08           ` Eli Zaretskii
2012-12-08 10:58             ` joakim
2012-12-08 11:35               ` Óscar Fuentes
2012-12-08 12:12                 ` Óscar Fuentes
2012-12-08 12:44                   ` Eli Zaretskii
2012-12-08 13:24                     ` Óscar Fuentes
2012-12-08 13:38                       ` Eli Zaretskii
2012-12-09  1:18                         ` Óscar Fuentes
2012-12-08 12:33               ` Eli Zaretskii
2012-12-07 21:35       ` Stefan Monnier
2012-12-09  3:20       ` Jason Rumney
2012-12-07 20:17   ` Dani Moncayo
2012-12-07 21:24     ` Stefan Monnier

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=838v96dgyd.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=dmoncayo@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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).