Subject: bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?

From: Eli Zaretskii <[email-masked]>
Date: Fri, 17 Oct 2014 18:41:26 +0300

> From: Fabrice Niessen <[email-masked]>
> Date: Fri, 17 Oct 2014 17:04:29 +0200
> 
> Maybe the test is partial -- even surely.  Though, I wonder why Cygwin
> Emacs is 2 times quicker than its Windows counterpart to tangle an Org
> file, and export it to HTML?
> 
> Observations:
> 
> - With the Widows binary "GNU Emacs 24.3.94.1 (i686-pc-mingw32) of
>   2014-10-02" (compiled by Dani), it always takes around 2:35.
> 
> - With the Cygwin executable "GNU Emacs 24.3.93.1 (i686-pc-cygwin) of
>   2014-08-15", it always just takes around 1:19 for the same operation.
> 
> Needless to say: same config file, same Org mode version (8.3beta from
> Git), same machine, etc.
> 
> The file I used for the test is my Emacs configuration file, to be found
> on https://github.com/fniessen/emacs-leuven/blob/master/emacs-leuven.txt.
> 
> The command I executed, and for which I took the above measures, is:
> 
> --8<---------------cut here---------------start------------->8---
>     (defun org-save-buffer-and-do-related ()
>       "Save buffer, execute/tangle code blocks, and export to HTML."
>       (interactive)
>       (let* ((orgfile (buffer-file-name))
>              (base-name (file-name-base orgfile))
>              (htmlfile (concat base-name ".html")))
>         (save-buffer)
>         (when (derived-mode-p 'org-mode)
>           (let ((before-save-hook nil))
>             (save-buffer))
>           (org-babel-tangle)
>           (when (file-exists-p htmlfile)
>             (if (file-newer-than-file-p orgfile htmlfile)
>                 (org-html-export-to-html)
>               (message "HTML is up to date with Org file"))))))
> --8<---------------cut here---------------end--------------->8---

You forgot to tell on what OS version was that.  You also forgot to
tell what compiler options were used for each build.  E.g., if the
Cygwin build is optimized, whereas the MinGW build is not, the twofold
speedup is expected (I generally see a factor of 2.5 between an
optimized and unoptimized build).

Also, showing a profile collected by "M-x profiler-start RET" might
give some clues.