* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
@ 2014-10-17 15:04 Fabrice Niessen
2014-10-17 15:41 ` Eli Zaretskii
0 siblings, 1 reply; 14+ messages in thread
From: Fabrice Niessen @ 2014-10-17 15:04 UTC (permalink / raw)
To: 18752-ubl+/3LiMTaZdePnXv/OxA
Hello,
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---
Would it make sense, I can make a video of them side by side...
Best regards.
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
2014-10-17 15:04 bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs? Fabrice Niessen
@ 2014-10-17 15:41 ` Eli Zaretskii
[not found] ` <86h9z2rb42.fsf-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org>
0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2014-10-17 15:41 UTC (permalink / raw)
To: Fabrice Niessen; +Cc: 18752
> From: Fabrice Niessen <fni-news@pirilampo.org>
> 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.
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
[not found] ` <86h9z2rb42.fsf-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org>
@ 2014-10-17 21:08 ` Fabrice Niessen
2014-10-17 22:12 ` Ken Brown
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Fabrice Niessen @ 2014-10-17 21:08 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 18752-ubl+/3LiMTaZdePnXv/OxA, cygwin
Eli Zaretskii wrote:
> From: Fabrice Niessen
>>
>> I wonder why Cygwin Emacs is 2 times quicker than its Windows
>> counterpart to tangle an Org file, and export it to HTML?
>>
>> - 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.
>>
>> 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.
Windows 8.
> 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).
I have no idea how Cygwin Emacs gets compiled, nor Windows Emacs (done
by Dani). Putting them in Cc.
> Also, showing a profile collected by "M-x profiler-start RET" might
> give some clues.
Here it is:
--8<---------------cut here---------------start------------->8---
- ... 4223 100%
- #<lambda 0x5b72713> 4117 97%
- org-display-inline-images 4117 97%
- if 4117 97%
- progn 4117 97%
- save-excursion 4117 97%
- org-element-property 4107 97%
- org-element-at-point 4107 97%
- save-excursion 4107 97%
- save-restriction 4107 97%
- save-excursion 4082 96%
- let 4082 96%
- mapc 4082 96%
- if 4082 96%
- org-babel-tangle-collect-blocks 4082 96%
- let 4082 96%
- let* 4082 96%
- let 4082 96%
- unwind-protect 4082 96%
- progn 4082 96%
- while 4082 96%
- if 4077 96%
- progn 4009 94%
- let 4009 94%
- let* 4000 94%
- if 3972 94%
- if 3842 90%
- setq 3842 90%
- cons 3841 90%
- cons 3841 90%
- cons 3841 90%
- org-babel-tangle-single-block 3841 90%
- let* 3841 90%
- org-babel-get-src-block-info 3539 83%
- let 3538 83%
- if 3538 83%
- save-excursion 3521 83%
- setq 3521 83%
- org-babel-parse-src-block-match 3521 83%
- let* 3521 83%
- list 3519 83%
- apply 3515 83%
- append 3494 82%
- org-babel-params-from-properties 3494 82%
- let 3494 82%
- unwind-protect 3494 82%
- progn 3494 82%
- list 3494 82%
- let 3489 82%
- org-babel-parse-multiple-vars 3489 82%
- delq 3487 82%
- mapcar 3486 82%
- #<lambda 0x282bbc17> 3484 82%
- and 3484 82%
- setq 3481 82%
- org-entry-get 3480 82%
- let 3479 82%
- save-excursion 3473 82%
- save-excursion 3469 82%
- save-restriction 3467 82%
- if 3458 81%
- org-entry-get-with-inheritance 3453 81%
- let 3450 81%
- save-excursion 3433 81%
- save-restriction 3433 81%
- catch 3413 80%
- while 3410 80%
- if 1884 44%
- setq 1883 44%
- org-entry-get 1879 44%
- let 1875 44%
- save-excursion 1870 44%
- save-excursion 1854 43%
- save-restriction 1853 43%
- if 1820 43%
- if 1819 43%
- save-excursion 1798 42%
- save-restriction 1796 42%
- let 1793 42%
- org-get-property-block 1740 41%
- catch 1739 41%
- save-excursion 1721 40%
- let* 1718 40%
- or 1382 32%
- and 1181 27%
- not 1005 23%
- outline-next-heading 976 23%
- re-search-forward 973 23%
- apply 972 23%
- ad-Advice-re-search-forward 969 22%
- let 968 22%
- if 967 22%
- setq 960 22%
- with-no-warnings 956 22%
funcall 952 22%
- not 5 0%
fancy-narrow-active-p 1 0%
- org-before-first-heading-p 174 4%
- save-excursion 159 3%
- null 100 2%
- re-search-backward 97 2%
- apply 96 2%
- ad-Advice-re-search-backward 95 2%
- let 92 2%
- if 92 2%
- setq 87 2%
- with-no-warnings 84 1%
funcall 79 1%
last 1 0%
- not 2 0%
fancy-narrow-active-p 1 0%
- end-of-line 55 1%
- apply 55 1%
- ad-Advice-end-of-line 55 1%
- let 55 1%
- if 55 1%
- setq 44 1%
- with-no-warnings 41 0%
funcall 36 0%
last 1 0%
- not 6 0%
fancy-narrow-active-p 3 0%
- progn 192 4%
- org-back-to-heading 189 4%
- condition-case 189 4%
- outline-back-to-heading 163 3%
- re-search-backward 81 1%
- apply 81 1%
- ad-Advice-re-search-backward 80 1%
- let 77 1%
- if 75 1%
- setq 71 1%
- with-no-warnings 69 1%
funcall 62 1%
- not 3 0%
fancy-narrow-active-p 3 0%
- outline-on-heading-p 36 0%
- beginning-of-line 22 0%
- apply 20 0%
- ad-Advice-beginning-of-line 19 0%
- let 19 0%
- if 19 0%
- setq 15 0%
- with-no-warnings 10 0%
funcall 5 0%
last 2 0%
not 4 0%
- beginning-of-line 28 0%
- apply 27 0%
- ad-Advice-beginning-of-line 26 0%
- let 24 0%
- if 22 0%
- setq 14 0%
- with-no-warnings 10 0%
funcall 4 0%
- not 6 0%
fancy-narrow-active-p 3 0%
- if 294 6%
- re-search-forward 286 6%
- apply 282 6%
- ad-Advice-re-search-forward 279 6%
- let 277 6%
- if 276 6%
- setq 268 6%
- with-no-warnings 264 6%
funcall 258 6%
last 2 0%
- not 7 0%
fancy-narrow-active-p 2 0%
if 2 0%
- goto-char 34 0%
- apply 34 0%
- ad-Advice-goto-char 33 0%
- let 29 0%
- if 28 0%
- setq 23 0%
- with-no-warnings 21 0%
funcall 17 0%
last 1 0%
- not 3 0%
fancy-narrow-active-p 2 0%
- if 49 1%
- and 48 1%
- save-excursion 45 1%
- re-search-forward 34 0%
- apply 24 0%
- ad-Advice-re-search-forward 24 0%
- let 24 0%
- if 23 0%
- setq 20 0%
- with-no-warnings 19 0%
funcall 19 0%
not 2 0%
- concat 9 0%
- org-re-property 9 0%
- concat 7 0%
- format 3 0%
if 2 0%
- goto-char 9 0%
- apply 9 0%
- ad-Advice-goto-char 9 0%
- let 7 0%
- if 6 0%
- setq 6 0%
- with-no-warnings 6 0%
funcall 6 0%
not 1 0%
- cdr 3 0%
- assoc 3 0%
- org-entry-properties 3 0%
- save-excursion 3 0%
- save-restriction 3 0%
- let 3 0%
- save-excursion 3 0%
- save-excursion 3 0%
- save-restriction 3 0%
- let 3 0%
- if 3 0%
- and 2 0%
- condition-case 2 0%
- progn 2 0%
- org-back-to-heading 2 0%
- condition-case 2 0%
- outline-back-to-heading 2 0%
outline-on-heading-p 1 0%
- beginning-of-line 1 0%
- apply 1 0%
ad-Advice-beginning-of-line 1 0%
- progn 1 0%
if 1 0%
- goto-char 26 0%
- apply 22 0%
- ad-Advice-goto-char 21 0%
- let 14 0%
- if 14 0%
- setq 9 0%
with-no-warnings 6 0%
- not 3 0%
fancy-narrow-active-p 1 0%
or 2 0%
- or 1523 36%
- condition-case 1520 35%
- progn 1518 35%
- org-up-heading-safe 1506 35%
- if 1506 35%
- progn 1322 31%
- let 1321 31%
- and 1261 29%
- re-search-backward 1210 28%
- apply 1193 28%
- ad-Advice-re-search-backward 1190 28%
- let 1189 28%
- if 1188 28%
- setq 1185 28%
- with-no-warnings 1183 28%
funcall 1176 27%
last 1 0%
- not 3 0%
fancy-narrow-active-p 2 0%
- funcall 45 1%
- org-outline-level 45 1%
- save-excursion 41 0%
- if 39 0%
- not 28 0%
- condition-case 27 0%
- progn 27 0%
- org-back-to-heading 26 0%
- condition-case 26 0%
- outline-back-to-heading 26 0%
- outline-on-heading-p 11 0%
- beginning-of-line 6 0%
- apply 6 0%
ad-Advice-beginning-of-line 4 0%
- beginning-of-line 3 0%
- apply 3 0%
- ad-Advice-beginning-of-line 3 0%
- let 2 0%
if 2 0%
- 1- 4 0%
- 1 0%
- 1- 56 1%
- funcall 55 1%
- org-outline-level 51 1%
- save-excursion 45 1%
- if 42 0%
- not 28 0%
- condition-case 26 0%
- progn 22 0%
- org-back-to-heading 17 0%
- condition-case 17 0%
outline-back-to-heading 16 0%
- 1- 6 0%
- 4 0%
- condition-case 179 4%
- progn 179 4%
- org-back-to-heading 176 4%
- condition-case 175 4%
- outline-back-to-heading 159 3%
- re-search-backward 64 1%
- apply 63 1%
- ad-Advice-re-search-backward 62 1%
- let 62 1%
- if 60 1%
- setq 55 1%
- with-no-warnings 51 1%
funcall 46 1%
- not 3 0%
fancy-narrow-active-p 1 0%
- outline-on-heading-p 42 0%
- beginning-of-line 29 0%
- apply 29 0%
- ad-Advice-beginning-of-line 27 0%
- let 27 0%
- if 25 0%
- setq 19 0%
- with-no-warnings 15 0%
funcall 6 0%
last 2 0%
- not 3 0%
fancy-narrow-active-p 2 0%
- beginning-of-line 31 0%
- apply 31 0%
- ad-Advice-beginning-of-line 30 0%
- let 28 0%
- if 25 0%
- setq 17 0%
- with-no-warnings 14 0%
funcall 7 0%
last 1 0%
- not 8 0%
fancy-narrow-active-p 3 0%
- org-set-regexps-and-options 8 0%
- if 8 0%
- progn 8 0%
- let 8 0%
- save-excursion 8 0%
- save-restriction 8 0%
- while 8 0%
- re-search-forward 6 0%
- apply 6 0%
- ad-Advice-re-search-forward 6 0%
- let 6 0%
- if 6 0%
- setq 6 0%
- with-no-warnings 6 0%
funcall 6 0%
- or 2 0%
- and 2 0%
- re-search-forward 2 0%
- apply 2 0%
- ad-Advice-re-search-forward 2 0%
- let 2 0%
- if 2 0%
- setq 2 0%
- with-no-warnings 2 0%
funcall 2 0%
- funcall 2 0%
- emacs-lisp-mode 2 0%
- run-mode-hooks 2 0%
- apply 2 0%
- run-hooks 2 0%
- flyspell-prog-mode 2 0%
- flyspell-mode 2 0%
- flyspell-mode-on 2 0%
- flyspell-accept-buffer-local-defs 2 0%
- ispell-accept-buffer-local-defs 2 0%
- ispell-buffer-local-dict 2 0%
- ispell-internal-change-dictionary 2 0%
- ispell-kill-ispell 2 0%
- delete-process 2 0%
- redisplay_internal (C function) 1 0%
- eval 1 0%
- let* 1 0%
- list 1 0%
- funcall 1 0%
- powerline-arrow-right 1 0%
- let* 1 0%
- if 1 0%
- puthash 1 0%
- apply 1 0%
- #<compiled 0x14dda2b> 1 0%
- pl/pattern-to-string 1 0%
mapconcat 1 0%
- org-table-map-tables 2 0%
- save-excursion 2 0%
- save-restriction 2 0%
- while 2 0%
- re-search-forward 2 0%
- apply 2 0%
- ad-Advice-re-search-forward 2 0%
- let 2 0%
- if 2 0%
- setq 2 0%
- with-no-warnings 2 0%
funcall 2 0%
- org-set-regexps-and-options-for-tags 2 0%
- if 2 0%
- progn 2 0%
- let 2 0%
- save-excursion 2 0%
- save-restriction 2 0%
- while 2 0%
- re-search-forward 2 0%
- apply 2 0%
- ad-Advice-re-search-forward 2 0%
- let 2 0%
- if 2 0%
- setq 2 0%
- with-no-warnings 2 0%
funcall 2 0%
- let 18 0%
- unwind-protect 18 0%
- progn 18 0%
- catch 18 0%
- condition-case 18 0%
- progn 18 0%
- while 18 0%
- or 18 0%
- org-up-heading-safe 18 0%
- if 18 0%
- progn 17 0%
- let 17 0%
- and 16 0%
- re-search-backward 15 0%
- apply 15 0%
- ad-Advice-re-search-backward 15 0%
- let 15 0%
- if 15 0%
- setq 15 0%
- with-no-warnings 15 0%
funcall 15 0%
- 1- 1 0%
- funcall 1 0%
- org-outline-level 1 0%
- save-excursion 1 0%
- if 1 0%
- not 1 0%
- condition-case 1 0%
- progn 1 0%
- org-back-to-heading 1 0%
- condition-case 1 0%
outline-back-to-heading 1 0%
- condition-case 1 0%
- progn 1 0%
- org-back-to-heading 1 0%
- condition-case 1 0%
outline-back-to-heading 1 0%
- setq 9 0%
- or 9 0%
cdr 8 0%
- and 1 0%
- if 1 0%
eq 1 0%
- goto-char 7 0%
- apply 6 0%
- ad-Advice-goto-char 5 0%
- let 5 0%
- if 5 0%
not 2 0%
- setq 2 0%
- with-no-warnings 2 0%
funcall 2 0%
- cons 3 0%
- org-babel-read 1 0%
- if 1 0%
- or 1 0%
- org-babel-number-p 1 0%
- if 1 0%
and 1 0%
- mapcar 1 0%
- mapcar 1 0%
- org-babel-combine-header-arg-lists 1 0%
let 1 0%
- let 2 0%
- mapc 2 0%
- #<lambda 0x1f5f795a> 2 0%
- if 2 0%
eq 2 0%
- org-babel-parse-header-arguments 4 0%
- org-entry-get 4 0%
- let 4 0%
- save-excursion 4 0%
- save-excursion 4 0%
- save-restriction 4 0%
- if 4 0%
- org-entry-get-with-inheritance 4 0%
- let 3 0%
- save-excursion 1 0%
- save-restriction 1 0%
- catch 1 0%
- while 1 0%
or 1 0%
- setq 1 0%
or 1 0%
- if 1 0%
- progn 1 0%
- org-babel-parse-header-arguments 1 0%
- org-entry-get 1 0%
- let 1 0%
- save-excursion 1 0%
- save-excursion 1 0%
- save-restriction 1 0%
- if 1 0%
- org-entry-get-with-inheritance 1 0%
let 1 0%
- org-babel-merge-params 21 0%
- let* 20 0%
- mapc 20 0%
- #<lambda 0x1f091fa5> 16 0%
- mapc 16 0%
- #<lambda 0x1f02ea92> 16 0%
- cond 16 0%
- setq 10 0%
- funcall 10 0%
- #<lambda 0x1f6ce7b8> 9 0%
- let 9 0%
- mapc 8 0%
- #<lambda 0x3cf38738> 8 0%
- mapc 7 0%
- #<lambda 0x7610e1e> 6 0%
- mapc 4 0%
- #<lambda 0x37cd50e7> 4 0%
- if 4 0%
- progn 4 0%
- mapcar 3 0%
- #<lambda 0x1824625f> 2 0%
setq 1 0%
- setq 2 0%
- org-uniquify 2 0%
let 1 0%
split-string 1 0%
eql 1 0%
- #<lambda 0x612f607> 4 0%
- let 4 0%
- setq 3 0%
- cons 3 0%
cons 2 0%
- let 4 0%
- save-current-buffer 2 0%
- unwind-protect 1 0%
- and 1 0%
- kill-buffer 1 0%
helm-kill-buffer-hook 1 0%
org-no-properties 1 0%
- setq 11 0%
- org-babel-where-is-src-block-head 11 0%
- let 11 0%
- or 11 0%
- save-excursion 11 0%
- and 11 0%
or 1 0%
- progn 5 0%
- let* 5 0%
- setcar 4 0%
- org-babel-process-params 4 0%
- let* 4 0%
- append 2 0%
- org-babel-get-header 1 0%
- delq 1 0%
- mapcar 1 0%
#<lambda 0x17af2610> 1 0%
split-string 1 0%
- if 1 0%
- org-babel-disassemble-tables 1 0%
- let 1 0%
list 1 0%
- mapcar 1 0%
- org-babel-get-header 1 0%
- delq 1 0%
- mapcar 1 0%
- #<lambda 0x17af2610> 1 0%
if 1 0%
- save-restriction 194 4%
- + 194 4%
line-number-at-pos 194 4%
- let 96 2%
- org-no-properties 95 2%
- org-store-link 95 2%
- if 94 2%
- let* 94 2%
- let 93 2%
- cond 64 1%
- cond 62 1%
- if 57 1%
- progn 54 1%
- let* 54 1%
- if 36 0%
- progn 36 0%
- setq 36 0%
- concat 34 0%
- condition-case 34 0%
- org-make-org-heading-search-string 34 0%
- let 34 0%
- or 33 0%
- and 33 0%
- save-excursion 33 0%
- org-element-property 32 0%
- org-element-at-point 32 0%
- save-excursion 32 0%
- save-restriction 32 0%
- let 32 0%
- cond 32 0%
- org-element-headline-parser 30 0%
- save-excursion 30 0%
- let* 30 0%
- let 20 0%
- save-excursion 14 0%
- let* 13 0%
- outline-next-heading 11 0%
- re-search-forward 11 0%
- apply 11 0%
- ad-Advice-re-search-forward 11 0%
- let 11 0%
- if 11 0%
- setq 11 0%
- with-no-warnings 11 0%
funcall 11 0%
- org-get-limited-outline-regexp 1 0%
- cond 1 0%
let* 1 0%
- while 1 0%
- and 1 0%
- re-search-forward 1 0%
- apply 1 0%
- ad-Advice-re-search-forward 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- org-element-put-property 2 0%
- if 1 0%
setcar 1 0%
- list 2 0%
- nconc 2 0%
- list 2 0%
if 1 0%
- org-heading-components 5 0%
- save-excursion 4 0%
- if 4 0%
- if 3 0%
- list 3 0%
- org-match-string-no-properties 2 0%
- if 2 0%
match-string-no-properties 1 0%
length 1 0%
let 1 0%
- and 2 0%
- progn 2 0%
- goto-char 1 0%
- apply 1 0%
- ad-Advice-goto-char 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- min 2 0%
- save-excursion 2 0%
- org-end-of-subtree 2 0%
- let 2 0%
- funcall 1 0%
org-outline-level 1 0%
if 1 0%
- beginning-of-line 1 0%
- apply 1 0%
- ad-Advice-beginning-of-line 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- org-back-to-heading 1 0%
- condition-case 1 0%
- outline-back-to-heading 1 0%
- re-search-backward 1 0%
- apply 1 0%
- ad-Advice-re-search-backward 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- setq 1 0%
- replace-regexp-in-string 1 0%
funcall 1 0%
- or 2 0%
- nth 2 0%
- condition-case 2 0%
- progn 2 0%
- org-heading-components 2 0%
- save-excursion 2 0%
if 1 0%
- org-back-to-heading 1 0%
condition-case 1 0%
- org-element-at-point 18 0%
- save-excursion 18 0%
- save-restriction 18 0%
- let 18 0%
- cond 17 0%
- org-element--parse-to 11 0%
- catch 11 0%
- save-excursion 11 0%
- save-restriction 11 0%
- let* 11 0%
- and 11 0%
- org-element--cache-find 11 0%
- let 11 0%
- while 11 0%
- let* 10 0%
- cond 7 0%
- and 5 0%
- not 5 0%
- org-element--cache-key-less-p 3 0%
if 2 0%
- org-element--cache-key 1 0%
or 1 0%
- org-element-property 3 0%
- if 3 0%
plist-get 1 0%
- if 5 0%
- progn 5 0%
- if 5 0%
- org-element--cache-sync 5 0%
- if 5 0%
- progn 5 0%
- save-current-buffer 5 0%
- let 5 0%
- if 3 0%
- org-element--cache-set-timer 3 0%
- setq 3 0%
- run-with-idle-timer 3 0%
- timer-activate-when-idle 3 0%
- timer--activate 2 0%
timer--time-less-p 2 0%
- catch 2 0%
- while 2 0%
- org-element--cache-process-request 1 0%
- catch 1 0%
if 1 0%
- let* 1 0%
org-at-heading-p 1 0%
- end-of-line 1 0%
- apply 1 0%
- ad-Advice-end-of-line 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
last 1 0%
- org-in-regexp 3 0%
- catch 3 0%
- let 3 0%
- save-excursion 2 0%
- while 2 0%
- re-search-forward 2 0%
- apply 2 0%
- ad-Advice-re-search-forward 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- and 2 0%
- or 2 0%
- and 1 0%
- org-entry-get 1 0%
- let 1 0%
- save-excursion 1 0%
- save-excursion 1 0%
save-restriction 1 0%
- and 2 0%
derived-mode-p 1 0%
- if 29 0%
- or 29 0%
- and 29 0%
- org-make-link-string 29 0%
- setq 27 0%
- cond 27 0%
- string-match 20 0%
- org-image-file-name-regexp 20 0%
- if 20 0%
- image-file-name-regexp 20 0%
- regexp-opt 19 0%
- regexp-opt-group 18 0%
- regexp-opt-group 18 0%
- regexp-opt-group 17 0%
- regexp-opt-group 15 0%
- regexp-opt-group 14 0%
- regexp-opt-group 12 0%
- regexp-opt-group 9 0%
- regexp-opt-group 8 0%
- regexp-opt-group 8 0%
- regexp-opt-group 5 0%
- regexp-opt-group 5 0%
- regexp-opt-group 4 0%
- regexp-opt-group 2 0%
- regexp-opt-group 1 0%
regexp-opt-group 1 0%
mapcar 1 0%
regexp-opt-charset 2 0%
- mapcar 1 0%
#<compiled 0x4d0bbb> 1 0%
mapcar 1 0%
- mapcar 1 0%
#<compiled 0x4d0bbb> 1 0%
sort 1 0%
- concat 5 0%
- org-link-escape 5 0%
- if 5 0%
- mapconcat 4 0%
- #<lambda 0x1da4db5a> 4 0%
- if 4 0%
- or 4 0%
- and 3 0%
or 3 0%
- if 1 0%
- progn 1 0%
while 1 0%
- org-get-limited-outline-regexp 1 0%
cond 1 0%
and 1 0%
- intern 5 0%
- or 5 0%
- format 5 0%
- or 5 0%
- condition-case 5 0%
- progn 5 0%
- nth 5 0%
- org-heading-components 5 0%
- save-excursion 4 0%
- org-back-to-heading 3 0%
- condition-case 3 0%
- outline-back-to-heading 2 0%
- outline-on-heading-p 1 0%
- beginning-of-line 1 0%
- apply 1 0%
- ad-Advice-beginning-of-line 1 0%
- let 1 0%
- if 1 0%
not 1 0%
- re-search-backward 1 0%
- apply 1 0%
- ad-Advice-re-search-backward 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
if 1 0%
- let* 5 0%
- let 4 0%
- save-current-buffer 4 0%
- unwind-protect 4 0%
and 3 0%
progn 1 0%
if 1 0%
- or 130 3%
- org-in-commented-heading-p 130 3%
- cond 130 3%
- save-excursion 123 2%
- and 123 2%
- org-in-commented-heading-p 123 2%
- cond 123 2%
- save-excursion 119 2%
- and 119 2%
- org-in-commented-heading-p 97 2%
- cond 97 2%
- save-excursion 96 2%
- and 96 2%
- org-up-heading-safe 96 2%
- if 96 2%
- progn 96 2%
- let 96 2%
- 1- 96 2%
- funcall 96 2%
- org-outline-level 96 2%
- save-excursion 95 2%
- if 95 2%
- not 95 2%
- condition-case 95 2%
- progn 95 2%
- org-back-to-heading 95 2%
- condition-case 95 2%
- outline-back-to-heading 95 2%
- outline-on-heading-p 58 1%
- beginning-of-line 44 1%
- apply 41 0%
- ad-Advice-beginning-of-line 38 0%
- let 35 0%
- if 34 0%
- setq 23 0%
- with-no-warnings 16 0%
funcall 9 0%
last 2 0%
- not 7 0%
fancy-narrow-active-p 3 0%
- beginning-of-line 36 0%
- apply 35 0%
- ad-Advice-beginning-of-line 31 0%
- let 27 0%
- if 27 0%
- setq 18 0%
- with-no-warnings 15 0%
funcall 7 0%
last 3 0%
- not 7 0%
fancy-narrow-active-p 3 0%
org-before-first-heading-p 1 0%
- org-up-heading-safe 22 0%
- if 22 0%
- progn 22 0%
- let 22 0%
- and 22 0%
- re-search-backward 21 0%
- apply 21 0%
- ad-Advice-re-search-backward 21 0%
- let 21 0%
- if 21 0%
- setq 21 0%
- with-no-warnings 21 0%
funcall 21 0%
- let 3 0%
- nth 2 0%
- org-heading-components 2 0%
- save-excursion 2 0%
- if 2 0%
- if 1 0%
- list 1 0%
length 1 0%
let 1 0%
and 1 0%
- org-before-first-heading-p 1 0%
- save-excursion 1 0%
- null 1 0%
- re-search-backward 1 0%
- apply 1 0%
- ad-Advice-re-search-backward 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- let 5 0%
- nth 4 0%
- org-heading-components 4 0%
- save-excursion 4 0%
- if 2 0%
let 1 0%
- if 1 0%
- list 1 0%
org-reduced-level 1 0%
- org-back-to-heading 2 0%
- condition-case 2 0%
- outline-back-to-heading 1 0%
- re-search-backward 1 0%
- apply 1 0%
- ad-Advice-re-search-backward 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
and 1 0%
- org-before-first-heading-p 2 0%
- save-excursion 2 0%
- end-of-line 1 0%
- apply 1 0%
- ad-Advice-end-of-line 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- null 1 0%
- re-search-backward 1 0%
- apply 1 0%
- ad-Advice-re-search-backward 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- org-babel-get-src-block-info 28 0%
- let 28 0%
- if 28 0%
- save-excursion 17 0%
- setq 14 0%
- org-babel-parse-src-block-match 14 0%
- let* 14 0%
- list 14 0%
- let 12 0%
- save-current-buffer 11 0%
- unwind-protect 10 0%
- progn 9 0%
- let 9 0%
- unwind-protect 6 0%
- progn 6 0%
- insert 6 0%
- org-unescape-code-in-string 6 0%
- replace-regexp-in-string 6 0%
apply 1 0%
- org-mode 2 0%
- progn 2 0%
- let 2 0%
- org-set-regexps-and-options 2 0%
- if 2 0%
- progn 2 0%
- let 2 0%
- let 2 0%
- save-current-buffer 1 0%
- unwind-protect 1 0%
- progn 1 0%
- let 1 0%
- org-mode 1 0%
- run-mode-hooks 1 0%
- apply 1 0%
- run-hooks 1 0%
- #<lambda 0x31f23557> 1 0%
- local-set-key 1 0%
- kbd 1 0%
read-kbd-macro 1 0%
- while 1 0%
- setq 1 0%
- car-safe 1 0%
- prog1 1 0%
setq 1 0%
- and 1 0%
kill-buffer 1 0%
- apply 2 0%
- org-babel-merge-params 2 0%
- let* 2 0%
- mapcar 2 0%
- #<lambda 0x2386aed> 2 0%
mapcar 2 0%
goto-char 1 0%
- while 1 0%
- and 1 0%
- forward-line 1 0%
- apply 1 0%
- ad-Advice-forward-line 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- setq 10 0%
- org-babel-where-is-src-block-head 10 0%
- let 10 0%
- or 10 0%
- save-excursion 10 0%
- and 10 0%
or 1 0%
- progn 1 0%
- let* 1 0%
- setcar 1 0%
org-babel-generate-file-param 1 0%
- #<lambda 0xe45a7af> 9 0%
- replace-regexp-in-string 8 0%
- condition-case 5 0%
- or 5 0%
- nth 5 0%
- org-heading-components 5 0%
- save-excursion 5 0%
- org-back-to-heading 3 0%
- condition-case 3 0%
- outline-back-to-heading 2 0%
- re-search-backward 2 0%
- apply 2 0%
- ad-Advice-re-search-backward 2 0%
- let 2 0%
- if 2 0%
- setq 2 0%
- with-no-warnings 2 0%
funcall 2 0%
- if 2 0%
let 2 0%
- org-babel-active-location-p 68 1%
- memq 68 1%
- car 68 1%
- let 67 1%
- unwind-protect 67 1%
- progn 67 1%
- org-element-context 67 1%
- catch 67 1%
- save-excursion 67 1%
- save-restriction 67 1%
- let* 67 1%
- or 66 1%
- org-element-at-point 66 1%
- save-excursion 66 1%
- save-restriction 66 1%
- let 66 1%
- cond 65 1%
- org-element--parse-to 63 1%
- catch 63 1%
- save-excursion 63 1%
- save-restriction 63 1%
- let* 62 1%
- let 62 1%
- while 52 1%
- if 52 1%
- setq 29 0%
- org-element--current-element 29 0%
- save-excursion 29 0%
- let 29 0%
- cond 29 0%
- let 28 0%
- cond 27 0%
- cond 19 0%
- let 18 0%
- if 18 0%
- funcall 18 0%
- org-element-src-block-parser 17 0%
- let 17 0%
- if 17 0%
- let 13 0%
- save-excursion 13 0%
- let* 13 0%
- org-element-remove-indentation 9 0%
- catch 8 0%
- let 8 0%
- save-current-buffer 8 0%
- unwind-protect 7 0%
- and 6 0%
- kill-buffer 4 0%
- replace-buffer-in-windows 3 0%
unrecord-window-buffer 2 0%
window-normalize-buffer 1 0%
- progn 1 0%
- if 1 0%
- while 1 0%
- let 1 0%
- forward-line 1 0%
- apply 1 0%
- ad-Advice-forward-line 1 0%
- let 1 0%
if 1 0%
- org-unescape-code-in-string 1 0%
replace-regexp-in-string 1 0%
progn 2 0%
- list 1 0%
nconc 1 0%
- org-match-string-no-properties 1 0%
if 1 0%
- not 4 0%
- save-excursion 3 0%
- re-search-forward 3 0%
- apply 3 0%
- ad-Advice-re-search-forward 3 0%
- let 3 0%
- if 3 0%
- setq 2 0%
- with-no-warnings 2 0%
funcall 2 0%
- not 1 0%
fancy-narrow-active-p 1 0%
org-element-example-block-parser 1 0%
- beginning-of-line 1 0%
- apply 1 0%
- ad-Advice-beginning-of-line 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- org-element-plain-list-parser 4 0%
- or 3 0%
- org-element--list-struct 3 0%
- let 3 0%
- save-excursion 3 0%
- catch 3 0%
- while 3 0%
- cond 3 0%
- let 1 0%
- setq 1 0%
- cons 1 0%
- progn 1 0%
- let 1 0%
match-string-no-properties 1 0%
and 1 0%
- save-excursion 1 0%
- let* 1 0%
- list 1 0%
- nconc 1 0%
list 1 0%
org-element-paragraph-parser 1 0%
- org-element--collect-affiliated-keywords 1 0%
- if 1 0%
- let 1 0%
- while 1 0%
and 1 0%
- let* 1 0%
- org-at-heading-p 1 0%
- outline-on-heading-p 1 0%
- beginning-of-line 1 0%
- apply 1 0%
- ad-Advice-beginning-of-line 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- org-element--cache-put 23 0%
- cond 23 0%
- avl-tree-enter 18 0%
- avl-tree--do-enter 18 0%
- avl-tree--do-enter 16 0%
- avl-tree--do-enter 14 0%
- avl-tree--do-enter 13 0%
- avl-tree--do-enter 11 0%
- avl-tree--do-enter 7 0%
- avl-tree--do-enter 6 0%
- avl-tree--do-enter 4 0%
- avl-tree--do-enter 3 0%
- org-element--cache-compare 3 0%
- org-element--cache-key-less-p 3 0%
- if 3 0%
- if 3 0%
- catch 3 0%
- while 3 0%
- cond 3 0%
setq 1 0%
- org-element--cache-compare 2 0%
- org-element--cache-key-less-p 2 0%
- if 2 0%
- if 2 0%
- catch 2 0%
- while 2 0%
cond 1 0%
org-element--cache-compare 1 0%
- org-element--cache-compare 4 0%
- org-element--cache-key-less-p 4 0%
- if 3 0%
- if 3 0%
- catch 2 0%
- while 2 0%
cond 2 0%
- org-element--cache-compare 1 0%
- org-element--cache-key-less-p 1 0%
- if 1 0%
- if 1 0%
- catch 1 0%
- while 1 0%
cond 1 0%
- org-element--cache-compare 1 0%
- org-element--cache-key-less-p 1 0%
- if 1 0%
- if 1 0%
- catch 1 0%
- while 1 0%
- cond 1 0%
setq 1 0%
- org-element--cache-compare 2 0%
- org-element--cache-key-less-p 2 0%
- if 2 0%
- if 2 0%
- catch 2 0%
- while 2 0%
- cond 1 0%
throw 1 0%
- org-element--cache-compare 1 0%
- org-element--cache-key-less-p 1 0%
if 1 0%
- if 5 0%
- progn 5 0%
- let 5 0%
- org-element--cache-find 5 0%
- let 5 0%
- while 4 0%
- let* 4 0%
- cond 3 0%
- and 1 0%
- not 1 0%
- org-element--cache-key-less-p 1 0%
- if 1 0%
if 1 0%
- setq 1 0%
progn 1 0%
org-element-property 1 0%
- or 10 0%
- save-excursion 10 0%
- let* 10 0%
- outline-next-heading 8 0%
- re-search-forward 8 0%
- apply 8 0%
- ad-Advice-re-search-forward 8 0%
- let 8 0%
- if 8 0%
- setq 8 0%
- with-no-warnings 8 0%
funcall 8 0%
- goto-char 1 0%
- apply 1 0%
- ad-Advice-goto-char 1 0%
- let 1 0%
- if 1 0%
not 1 0%
- let* 2 0%
- org-at-heading-p 1 0%
- outline-on-heading-p 1 0%
- beginning-of-line 1 0%
- apply 1 0%
- ad-Advice-beginning-of-line 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
- org-get-limited-outline-regexp 1 0%
- cond 1 0%
let* 1 0%
- re-search-forward 5 0%
- apply 5 0%
- ad-Advice-re-search-forward 5 0%
- let 5 0%
- if 5 0%
- setq 5 0%
- with-no-warnings 5 0%
funcall 5 0%
- let 25 0%
- cond 12 0%
- org-element-headline-parser 12 0%
- save-excursion 12 0%
- let* 12 0%
- min 12 0%
- save-excursion 12 0%
- org-end-of-subtree 12 0%
- let 12 0%
- if 12 0%
- let 11 0%
- and 11 0%
- re-search-forward 10 0%
- apply 10 0%
- ad-Advice-re-search-forward 10 0%
- let 10 0%
- if 10 0%
- setq 10 0%
- with-no-warnings 9 0%
funcall 9 0%
- beginning-of-line 1 0%
- apply 1 0%
- ad-Advice-beginning-of-line 1 0%
- let 1 0%
- if 1 0%
setq 1 0%
and 1 0%
- org-align-all-tags 7 0%
- save-excursion 7 0%
- if 7 0%
- org-set-tags 7 0%
- if 7 0%
- let* 7 0%
- if 7 0%
- save-excursion 7 0%
- let 7 0%
- while 7 0%
- org-set-tags 4 0%
- if 4 0%
- let* 4 0%
- if 4 0%
- org-get-tags-string 3 0%
- save-excursion 2 0%
if 1 0%
- beginning-of-line 1 0%
- apply 1 0%
- ad-Advice-beginning-of-line 1 0%
- let 1 0%
- if 1 0%
setq 1 0%
- org-move-to-column 1 0%
- let 1 0%
if 1 0%
- re-search-forward 3 0%
- apply 3 0%
- ad-Advice-re-search-forward 3 0%
- let 3 0%
- if 3 0%
- setq 3 0%
- with-no-warnings 3 0%
funcall 3 0%
- org-install-agenda-files-menu 4 0%
- let 4 0%
- save-excursion 4 0%
- if 4 0%
- progn 4 0%
- easy-menu-change 4 0%
- append 4 0%
- mapcar 4 0%
- org-agenda-files 4 0%
- let 4 0%
- setq 4 0%
- apply 4 0%
- mapcar 4 0%
- #<lambda 0xc26763b> 4 0%
if 4 0%
- org-update-all-dblocks 2 0%
- if 2 0%
- progn 2 0%
- org-map-dblocks 2 0%
- let 2 0%
- save-excursion 2 0%
- while 2 0%
- re-search-forward 2 0%
- apply 2 0%
- ad-Advice-re-search-forward 2 0%
- let 2 0%
- if 2 0%
- setq 2 0%
- with-no-warnings 2 0%
funcall 2 0%
- save-restriction 9 0%
- let 9 0%
- while 9 0%
- re-search-forward 9 0%
- apply 9 0%
- ad-Advice-re-search-forward 9 0%
- let 9 0%
- if 9 0%
- setq 9 0%
- with-no-warnings 9 0%
funcall 9 0%
- org-map-entries 1 0%
- if 1 0%
- let* 1 0%
- save-excursion 1 0%
- save-restriction 1 0%
- if 1 0%
- progn 1 0%
- setq 1 0%
- org-scan-tags 1 0%
- let* 1 0%
- save-excursion 1 0%
- while 1 0%
catch 1 0%
Automatic GC 48 1%
- command-execute 45 1%
- apply 45 1%
- ad-Advice-command-execute 45 1%
- let 45 1%
- setq 45 1%
- with-no-warnings 45 1%
- funcall 45 1%
- #<compiled 0x4bac79> 45 1%
- call-interactively 45 1%
- org-save-buffer-and-do-related 45 1%
- let* 45 1%
- save-buffer 45 1%
- basic-save-buffer 45 1%
- funcall 23 0%
- #<compiled 0x4ac35f> 23 0%
- run-hooks 23 0%
- #<lambda 0x1b7a00b2> 11 0%
- if 11 0%
- delete-trailing-whitespace 11 0%
- re-search-forward 10 0%
- apply 10 0%
- ad-Advice-re-search-forward 10 0%
- let 10 0%
- if 10 0%
- setq 10 0%
- with-no-warnings 10 0%
funcall 9 0%
- leuven-org-update-buffer 7 0%
- if 7 0%
- progn 7 0%
- let 4 0%
- org-table-map-tables 2 0%
- save-excursion 2 0%
- save-restriction 2 0%
- while 2 0%
- re-search-forward 2 0%
- apply 2 0%
- ad-Advice-re-search-forward 2 0%
- let 2 0%
- if 2 0%
- setq 2 0%
- with-no-warnings 2 0%
funcall 2 0%
- org-table-iterate-buffer-tables 2 0%
- let* 2 0%
- save-excursion 1 0%
- save-restriction 1 0%
- catch 1 0%
- while 1 0%
- if 1 0%
- equal 1 0%
setq 1 0%
- sit-for 3 0%
- redisplay 1 0%
- redisplay_internal (C function) 1 0%
- eval 1 0%
- let* 1 0%
- list 1 0%
- when 1 0%
- if 1 0%
- progn 1 0%
- if 1 0%
vc-workfile-unchanged-p 1 0%
- org-encrypt-entries 3 0%
- let 3 0%
- org-scan-tags 3 0%
- let* 3 0%
- save-excursion 3 0%
- while 3 0%
- catch 3 0%
- setq 2 0%
if 1 0%
- if 1 0%
- and 1 0%
- and 1 0%
- let 1 0%
- eval 1 0%
- and 1 0%
progn 1 0%
- basic-save-buffer-1 21 0%
- basic-save-buffer-2 21 0%
- write-region 20 0%
- select-safe-coding-system 18 0%
find-coding-systems-region 18 0%
- redisplay_internal (C function) 1 0%
- eval 1 0%
- let* 1 0%
- list 1 0%
- funcall 1 0%
- powerline-arrow-right 1 0%
- let* 1 0%
- if 1 0%
- puthash 1 0%
- apply 1 0%
- #<compiled 0x14dda2b> 1 0%
- pl/pattern-to-string 1 0%
mapconcat 1 0%
- backup-buffer 1 0%
- funcall 1 0%
- #<compiled 0x1bf9b6d> 1 0%
- funcall 1 0%
- #<compiled 0x1bf9b91> 1 0%
- backup-buffer-copy 1 0%
- funcall 1 0%
- #<compiled 0x4abfdb> 1 0%
message 1 0%
- vc-after-save 1 0%
- vc-state-refresh 1 0%
- vc-call-backend 1 0%
- apply 1 0%
- vc-default-state-heuristic 1 0%
- vc-call-backend 1 0%
- apply 1 0%
- vc-git-state 1 0%
- vc-git--call 1 0%
- apply 1 0%
- process-file 1 0%
apply 1 0%
- org-refresh-category-properties 5 0%
- let 5 0%
- let* 5 0%
- unwind-protect 5 0%
- progn 5 0%
- save-excursion 5 0%
- save-restriction 5 0%
- while 5 0%
- re-search-forward 5 0%
- apply 5 0%
- ad-Advice-re-search-forward 5 0%
- let 5 0%
- if 5 0%
- setq 5 0%
- with-no-warnings 5 0%
funcall 5 0%
- org-refresh-properties 5 0%
- let 5 0%
- let* 5 0%
- unwind-protect 5 0%
- progn 5 0%
- save-excursion 5 0%
- save-restriction 5 0%
- while 5 0%
- catch 3 0%
- let* 3 0%
- unwind-protect 3 0%
- progn 3 0%
- save-excursion 3 0%
- while 3 0%
- re-search-forward 3 0%
- apply 3 0%
- ad-Advice-re-search-forward 3 0%
- let 3 0%
- if 3 0%
- setq 3 0%
- with-no-warnings 3 0%
funcall 3 0%
- re-search-forward 2 0%
- apply 2 0%
- ad-Advice-re-search-forward 2 0%
- let 2 0%
- if 2 0%
- setq 2 0%
- with-no-warnings 2 0%
funcall 2 0%
- org-refresh-stats-properties 2 0%
- let 2 0%
- let* 2 0%
- unwind-protect 2 0%
- progn 2 0%
- save-excursion 2 0%
- save-restriction 2 0%
- while 2 0%
- re-search-forward 2 0%
- apply 2 0%
- ad-Advice-re-search-forward 2 0%
- let 2 0%
- if 2 0%
- setq 2 0%
- with-no-warnings 2 0%
funcall 2 0%
- font-lock-fontify-region 1 0%
- font-lock-default-fontify-region 1 0%
- font-lock-fontify-keywords-region 1 0%
- org-do-latex-and-related 1 0%
- if 1 0%
- progn 1 0%
- catch 1 0%
- while 1 0%
- re-search-forward 1 0%
- apply 1 0%
- ad-Advice-re-search-forward 1 0%
- let 1 0%
- if 1 0%
- setq 1 0%
- with-no-warnings 1 0%
funcall 1 0%
--8<---------------cut here---------------end--------------->8---
Best regards,
Fabrice
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
2014-10-17 21:08 ` Fabrice Niessen
@ 2014-10-17 22:12 ` Ken Brown
2014-10-18 5:42 ` Eli Zaretskii
[not found] ` <83wq7ydjc7.fsf@gnu.org>
2 siblings, 0 replies; 14+ messages in thread
From: Ken Brown @ 2014-10-17 22:12 UTC (permalink / raw)
To: Fabrice Niessen; +Cc: 18752
On 10/17/2014 5:08 PM, Fabrice Niessen wrote:
> I have no idea how Cygwin Emacs gets compiled
The variable 'system-configuration-options' contains that information. Anyway,
the answer is that it's built with optimization -O2.
Ken
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
2014-10-17 21:08 ` Fabrice Niessen
2014-10-17 22:12 ` Ken Brown
@ 2014-10-18 5:42 ` Eli Zaretskii
[not found] ` <83wq7ydjc7.fsf@gnu.org>
2 siblings, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2014-10-18 5:42 UTC (permalink / raw)
To: Fabrice Niessen; +Cc: 18752, cygwin
> From: Fabrice Niessen <fni-news@pirilampo.org>
> Cc: 18752@debbugs.gnu.org, cygwin <cygwin@cygwin.com>, dmoncayo@gmail.com
> Date: Fri, 17 Oct 2014 23:08:51 +0200
>
> > 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).
>
> I have no idea how Cygwin Emacs gets compiled, nor Windows Emacs (done
> by Dani). Putting them in Cc.
As Ken points out, the variable system-configuration-options is the
way to tell.
Given that the Cygwin build is optimized, it suffices to show that the
MinGW one isn't, to explain the difference in speed.
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
[not found] ` <83wq7ydjc7.fsf-mXXj517/zsQ@public.gmane.org>
@ 2014-10-18 6:51 ` Fabrice Niessen
0 siblings, 0 replies; 14+ messages in thread
From: Fabrice Niessen @ 2014-10-18 6:51 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 18752-ubl+/3LiMTaZdePnXv/OxA, cygwin-rDBXBDvO6BXQT0dZR+AlfA
Eli Zaretskii wrote:
> Fabrice Niessen wrote:
>>
>>> 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).
>>
>> I have no idea how Cygwin Emacs gets compiled, nor Windows Emacs
>> (done by Dani). Putting them in Cc.
>
> As Ken points out, the variable system-configuration-options is the
> way to tell.
On my Windows Emacs:
"--enable-checking 'CFLAGS=-O0 -g3' CPPFLAGS=-DGLYPH_DEBUG=1"
> Given that the Cygwin build is optimized, it suffices to show that the
> MinGW one isn't, to explain the difference in speed.
Dani, can you build an optimized version as well next time?
Thanks!
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
[not found] ` <86zjctlvkv.fsf@example.com>
@ 2014-10-18 7:19 ` Eli Zaretskii
2014-10-18 16:11 ` Dani Moncayo
1 sibling, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2014-10-18 7:19 UTC (permalink / raw)
To: Fabrice Niessen; +Cc: 18752, cygwin
> From: Fabrice Niessen <fni-news@pirilampo.org>
> Cc: 18752@debbugs.gnu.org, cygwin@cygwin.com, dmoncayo@gmail.com
> Date: Sat, 18 Oct 2014 08:51:12 +0200
>
> On my Windows Emacs:
>
> "--enable-checking 'CFLAGS=-O0 -g3' CPPFLAGS=-DGLYPH_DEBUG=1"
That's an unoptimized build, so the twofold speed difference vs an
optimized build is expected.
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
[not found] ` <86zjctlvkv.fsf@example.com>
2014-10-18 7:19 ` Eli Zaretskii
@ 2014-10-18 16:11 ` Dani Moncayo
2014-10-18 16:17 ` Eli Zaretskii
1 sibling, 1 reply; 14+ messages in thread
From: Dani Moncayo @ 2014-10-18 16:11 UTC (permalink / raw)
To: Fabrice Niessen; +Cc: 18752
> Dani, can you build an optimized version as well next time?
I could, yes. But before, I'd like to understand what are the
advantages and drawbacks of optimized vs unoptimized builds. Could
someone explain that to me, or tell me where could I read that
information?
Also, what should I do to produce an optimized build? "nt/INSTALL"
shows an example of how to configure an unoptimized build, but there
is no example for an optimized one. How about adding that lacking
example to the file?
--
Dani Moncayo
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
2014-10-18 16:11 ` Dani Moncayo
@ 2014-10-18 16:17 ` Eli Zaretskii
2014-10-18 16:25 ` Dani Moncayo
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Eli Zaretskii @ 2014-10-18 16:17 UTC (permalink / raw)
To: Dani Moncayo; +Cc: 18752, fni-news
> Date: Sat, 18 Oct 2014 18:11:53 +0200
> From: Dani Moncayo <dmoncayo@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, 18752@debbugs.gnu.org
>
> > Dani, can you build an optimized version as well next time?
>
> I could, yes. But before, I'd like to understand what are the
> advantages and drawbacks of optimized vs unoptimized builds. Could
> someone explain that to me, or tell me where could I read that
> information?
Unoptimized builds make debugging easier, but are about 2 - 2.5 times
slower than optimized ones. For that reason, the usual practice is to
produce unoptimized builds for snapshots and pretests, but optimized
ones for official releases.
Latest GCC versions support a -Og optimization switch that gives you
the best of both worlds.
> Also, what should I do to produce an optimized build? "nt/INSTALL"
> shows an example of how to configure an unoptimized build, but there
> is no example for an optimized one. How about adding that lacking
> example to the file?
If you drop the "CFLAGS=" part, you get an optimized build by
default. The example of that is already in nt/INSTALL, even before
the one that shows how to pass non-default CFLAGS.
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
2014-10-18 16:17 ` Eli Zaretskii
@ 2014-10-18 16:25 ` Dani Moncayo
2014-10-18 17:35 ` Ken Brown
2014-10-18 19:25 ` Stefan Monnier
2 siblings, 0 replies; 14+ messages in thread
From: Dani Moncayo @ 2014-10-18 16:25 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 18752
>> I'd like to understand what are the
>> advantages and drawbacks of optimized vs unoptimized builds. Could
>> someone explain that to me, or tell me where could I read that
>> information?
>
> Unoptimized builds make debugging easier, but are about 2 - 2.5 times
> slower than optimized ones. For that reason, the usual practice is to
> produce unoptimized builds for snapshots and pretests, but optimized
> ones for official releases.
>
> Latest GCC versions support a -Og optimization switch that gives you
> the best of both worlds.
>
>> Also, what should I do to produce an optimized build? "nt/INSTALL"
>> shows an example of how to configure an unoptimized build, but there
>> is no example for an optimized one. How about adding that lacking
>> example to the file?
>
> If you drop the "CFLAGS=" part, you get an optimized build by
> default. The example of that is already in nt/INSTALL, even before
> the one that shows how to pass non-default CFLAGS.
Thank you.
--
Dani Moncayo
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
2014-10-18 16:17 ` Eli Zaretskii
2014-10-18 16:25 ` Dani Moncayo
@ 2014-10-18 17:35 ` Ken Brown
2014-10-18 17:46 ` Eli Zaretskii
2014-10-18 19:25 ` Stefan Monnier
2 siblings, 1 reply; 14+ messages in thread
From: Ken Brown @ 2014-10-18 17:35 UTC (permalink / raw)
To: Eli Zaretskii, Dani Moncayo; +Cc: 18752, fni-news
On 10/18/2014 12:17 PM, Eli Zaretskii wrote:
> Unoptimized builds make debugging easier, but are about 2 - 2.5 times
> slower than optimized ones. For that reason, the usual practice is to
> produce unoptimized builds for snapshots and pretests, but optimized
> ones for official releases.
>
> Latest GCC versions support a -Og optimization switch that gives you
> the best of both worlds.
Do you happen to know how much of a performance difference there typically is
between -Og and -O2?
Ken
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
2014-10-18 17:35 ` Ken Brown
@ 2014-10-18 17:46 ` Eli Zaretskii
0 siblings, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2014-10-18 17:46 UTC (permalink / raw)
To: Ken Brown; +Cc: 18752, fni-news
> Date: Sat, 18 Oct 2014 13:35:48 -0400
> From: Ken Brown <kbrown@cornell.edu>
> CC: 18752@debbugs.gnu.org, fni-news@pirilampo.org
>
> On 10/18/2014 12:17 PM, Eli Zaretskii wrote:
> > Unoptimized builds make debugging easier, but are about 2 - 2.5 times
> > slower than optimized ones. For that reason, the usual practice is to
> > produce unoptimized builds for snapshots and pretests, but optimized
> > ones for official releases.
> >
> > Latest GCC versions support a -Og optimization switch that gives you
> > the best of both worlds.
>
> Do you happen to know how much of a performance difference there typically is
> between -Og and -O2?
No; measurements welcome.
Personally, I'd be surprised to see more than a few percents of
difference for Emacs.
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
2014-10-18 16:17 ` Eli Zaretskii
2014-10-18 16:25 ` Dani Moncayo
2014-10-18 17:35 ` Ken Brown
@ 2014-10-18 19:25 ` Stefan Monnier
2014-10-18 19:34 ` Eli Zaretskii
2 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2014-10-18 19:25 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 18752, fni-news
> Latest GCC versions support a -Og optimization switch that gives you
> the best of both worlds.
FWIW, I use "-Og -g3" and the result is not exactly the best of both
worlds in my view: I still constantly get "variable optimized away"
messages in GDB. But at least, the info I do get from GDB seems
usually correct.
Stefan
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs?
2014-10-18 19:25 ` Stefan Monnier
@ 2014-10-18 19:34 ` Eli Zaretskii
0 siblings, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2014-10-18 19:34 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 18752, fni-news
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Dani Moncayo <dmoncayo@gmail.com>, 18752@debbugs.gnu.org, fni-news@pirilampo.org
> Date: Sat, 18 Oct 2014 15:25:15 -0400
>
> I still constantly get "variable optimized away" messages in GDB.
Nothing can be done about this, given the complexity of DWARF and
compiler/debugger bugs in implementing its dark corners.
The problem with debugging -O2 code is that you cannot trust
backtraces, and cannot set breakpoints and be sure they will break.
This doesn't happen with -Og.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2014-10-18 19:34 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-17 15:04 bug#18752: 24.3.94; Why is Cygwin Emacs 2x quicker than Windows Emacs? Fabrice Niessen
2014-10-17 15:41 ` Eli Zaretskii
[not found] ` <86h9z2rb42.fsf-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org>
2014-10-17 21:08 ` Fabrice Niessen
2014-10-17 22:12 ` Ken Brown
2014-10-18 5:42 ` Eli Zaretskii
[not found] ` <83wq7ydjc7.fsf@gnu.org>
[not found] ` <83wq7ydjc7.fsf-mXXj517/zsQ@public.gmane.org>
2014-10-18 6:51 ` Fabrice Niessen
[not found] ` <86zjctlvkv.fsf@example.com>
2014-10-18 7:19 ` Eli Zaretskii
2014-10-18 16:11 ` Dani Moncayo
2014-10-18 16:17 ` Eli Zaretskii
2014-10-18 16:25 ` Dani Moncayo
2014-10-18 17:35 ` Ken Brown
2014-10-18 17:46 ` Eli Zaretskii
2014-10-18 19:25 ` Stefan Monnier
2014-10-18 19:34 ` 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).