From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Two strange messages while building Emacs on MS-Windows Date: Mon, 10 Dec 2012 00:00:10 +0200 Message-ID: <838v96dgyd.fsf@gnu.org> References: <83mwxpmtp6.fsf@gnu.org> <83fw3hm0nn.fsf@gnu.org> <83k3srdh3d.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1355090427 17667 80.91.229.3 (9 Dec 2012 22:00:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 9 Dec 2012 22:00:27 +0000 (UTC) Cc: emacs-devel@gnu.org, dmoncayo@gmail.com To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Dec 09 23:00:40 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ThovP-0003HS-QN for ged-emacs-devel@m.gmane.org; Sun, 09 Dec 2012 23:00:39 +0100 Original-Received: from localhost ([::1]:51328 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ThovD-0001Xv-G1 for ged-emacs-devel@m.gmane.org; Sun, 09 Dec 2012 17:00:27 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:47555) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ThovB-0001Xe-DJ for emacs-devel@gnu.org; Sun, 09 Dec 2012 17:00:26 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Thov9-0002kH-OS for emacs-devel@gnu.org; Sun, 09 Dec 2012 17:00:25 -0500 Original-Received: from mtaout22.012.net.il ([80.179.55.172]:54524) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Thov9-0002kA-GR for emacs-devel@gnu.org; Sun, 09 Dec 2012 17:00:23 -0500 Original-Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0MES00000A815E00@a-mtaout22.012.net.il> for emacs-devel@gnu.org; Mon, 10 Dec 2012 00:00:21 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MES00MPKAGLX6A0@a-mtaout22.012.net.il>; Mon, 10 Dec 2012 00:00:21 +0200 (IST) In-reply-to: X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.172 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:155407 Archived-At: > From: Stefan Monnier > 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.