From: "Lennart Borgman" <lennart.borgman@gmail.com>
To: "Eli Zaretskii" <eliz@gnu.org>
Cc: acm@muc.de, emacs-devel@gnu.org, monnier@iro.umontreal.ca,
david@harpegolden.net
Subject: Re: Emacs 23.0 is much slower starting than Emacs 22.3
Date: Fri, 24 Oct 2008 17:44:42 +0200 [thread overview]
Message-ID: <e01d8a50810240844m2e4fb7d4qc744b276d1849b20@mail.gmail.com> (raw)
In-Reply-To: <u1vy6z5gr.fsf@gnu.org>
On Fri, Oct 24, 2008 at 11:51 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>> Date: Fri, 24 Oct 2008 01:54:06 +0200
>> From: "Lennart Borgman" <lennart.borgman@gmail.com>
>> Cc: "Eli Zaretskii" <eliz@gnu.org>, acm@muc.de, monnier@iro.umontreal.ca,
>> emacs-devel@gnu.org
>>
>> Timing insert-file-contents-literally:
>> Elapsed time: 8.375000s (0.187000s in 1 GCs)
>> Timing insert-file-contents:
>> Elapsed time: 14.297000s (0.312000s in 2 GCs)
>> Timing file-attributes:
>> Elapsed time: 5.890000s (0.156000s in 1 GCs)
>> Timing file-exists-p:
>> Elapsed time: 6.672000s (0.125000s in 1 GCs)
>> Timing file-modes:
>> Elapsed time: 5.609000s (0.188000s in 1 GCs)
>
> Thanks, but what does this mean? What is behind a line such as
Here is the code again, a little bit enhanced:
(defun test-insert-dir (dir how)
(let ((files (directory-files dir t)))
(dolist (file files)
(unless (file-directory-p file)
(with-temp-buffer
(cond
((eq how 'literally)
(insert-file-contents-literally file))
((eq how 'normal-insert)
(insert-file-contents file))
((eq how 'attributes)
(file-attributes file))
((eq how 'exists)
(file-exists-p file))
((eq how 'file-modes)
(file-exists-p file))
((eq how 'normal-mode)
(setq buffer-file-name file)
(emacs-lisp-mode)
(setq buffer-file-name nil)
(set-buffer-modified-p nil))
(t
(error "How=%s" how))
))))))
(defun test-insert-emacs-lisp-dir ()
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" 'literally))
(message "======================= After cache warm up")
(message "Timing insert-file-contents-literally:")
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" 'literally))
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" 'literally))
(message "Timing insert-file-contents:")
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/"
'normal-insert))
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/"
'normal-insert))
(message "Timing file-attributes:")
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" 'attributes))
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" 'attributes))
(message "Timing file-exists-p:")
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" 'exists))
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" 'exists))
(message "Timing file-modes:")
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" 'file-modes))
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" 'file-modes))
(message "Timing normal-mode:")
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" 'normal-mode))
(benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" 'normal-mode))
(message "Ready"))
> Also, please compare that with Emacs 22, since this whole thread is
> about comparative performance.
In Emacs 22 I get in *Messages* buffer:
======================= After cache warm up
Timing insert-file-contents-literally:
Elapsed time: 3.172000s (0.031000s in 1 GCs)
Elapsed time: 3.141000s (0.032000s in 1 GCs)
Timing insert-file-contents:
Elapsed time: 4.609000s (0.125000s in 4 GCs)
Elapsed time: 4.610000s (0.125000s in 4 GCs)
Timing file-attributes:
Elapsed time: 1.859000s (0.031000s in 1 GCs)
Elapsed time: 1.891000s (0.015000s in 1 GCs)
Timing file-exists-p:
Elapsed time: 1.875000s (0.016000s in 1 GCs)
Elapsed time: 1.968000s (0.016000s in 1 GCs)
Timing file-modes:
Elapsed time: 2.063000s (0.031000s in 1 GCs)
Elapsed time: 1.859000s (0.031000s in 1 GCs)
Timing normal-mode:
Elapsed time: 1.235000s (0.048000s in 2 GCs)
Elapsed time: 1.437000s (0.016000s in 1 GCs)
and in Emacs 23:
======================= After cache warm up
Timing insert-file-contents-literally:
Elapsed time: 4.844000s
Elapsed time: 4.828000s (0.109000s in 1 GCs)
Timing insert-file-contents:
Elapsed time: 8.094000s (0.109000s in 1 GCs)
Elapsed time: 8.063000s (0.219000s in 2 GCs)
Timing file-attributes:
Elapsed time: 3.796000s
Elapsed time: 3.579000s (0.094000s in 1 GCs)
Timing file-exists-p:
Elapsed time: 3.515000s
Elapsed time: 3.578000s (0.109000s in 1 GCs)
Timing file-modes:
Elapsed time: 3.625000s
Elapsed time: 3.953000s (0.109000s in 1 GCs)
Timing normal-mode:
Mark set [553 times]
Elapsed time: 3.985000s (0.891000s in 9 GCs)
Mark set [553 times]
Elapsed time: 6.031000s (1.810000s in 18 GCs)
The system calls (file-attributes, file-exists-p and file-modes) takes
nearly twice as long time in Emacs 23 (on w32). For normal-mode the
factor is even bigger, 3-4 times longer time.
next prev parent reply other threads:[~2008-10-24 15:44 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-22 9:11 Emacs 23.0 is much slower starting than Emacs 22.3 Alan Mackenzie
2008-10-22 13:23 ` Stefan Monnier
2008-10-22 13:55 ` John covici
2008-10-22 15:14 ` Alan Mackenzie
2008-10-22 16:46 ` David De La Harpe Golden
2008-10-22 21:12 ` Alan Mackenzie
2008-10-22 21:19 ` Eli Zaretskii
2008-10-23 9:21 ` Alan Mackenzie
2008-10-23 21:53 ` Eli Zaretskii
2008-10-23 6:53 ` David De La Harpe Golden
2008-10-23 9:09 ` Alan Mackenzie
2008-10-23 16:57 ` David De La Harpe Golden
2008-10-23 21:52 ` Eli Zaretskii
2008-10-23 22:33 ` Lennart Borgman
2008-10-24 9:26 ` Eli Zaretskii
2008-10-23 22:47 ` David De La Harpe Golden
2008-10-23 23:12 ` Lennart Borgman
2008-10-23 23:54 ` Lennart Borgman
2008-10-24 9:51 ` Eli Zaretskii
2008-10-24 13:58 ` David De La Harpe Golden
2008-10-24 15:44 ` Lennart Borgman [this message]
2008-10-24 16:24 ` Chong Yidong
2008-10-24 16:48 ` Eli Zaretskii
2008-10-24 16:45 ` David De La Harpe Golden
2008-10-24 16:53 ` Eli Zaretskii
2008-10-25 2:01 ` Richard M. Stallman
2008-10-25 3:38 ` David De La Harpe Golden
2008-10-24 0:13 ` David De La Harpe Golden
2008-10-24 0:59 ` Lennart Borgman
2008-10-24 1:58 ` David De La Harpe Golden
2008-10-24 1:44 ` David De La Harpe Golden
2008-10-24 9:57 ` Eli Zaretskii
2008-10-24 15:00 ` David De La Harpe Golden
2008-10-24 11:21 ` Alan Mackenzie
2008-10-24 14:32 ` David De La Harpe Golden
2008-10-24 19:28 ` Alan Mackenzie
2008-10-24 19:35 ` David De La Harpe Golden
2008-10-24 4:13 ` Stefan Monnier
2008-10-24 15:19 ` David De La Harpe Golden
2008-10-24 18:42 ` Stefan Monnier
2008-10-24 19:36 ` David De La Harpe Golden
2008-10-24 23:44 ` David De La Harpe Golden
2008-10-25 15:19 ` Stefan Monnier
2008-10-25 17:02 ` David De La Harpe Golden
2008-10-24 9:52 ` Eli Zaretskii
2008-10-24 9:35 ` Eli Zaretskii
2008-10-24 9:30 ` Eli Zaretskii
2008-10-23 1:29 ` Miles Bader
2008-10-23 9:06 ` Alan Mackenzie
2008-10-22 18:26 ` Eli Zaretskii
2008-10-22 21:40 ` Alan Mackenzie
2008-10-22 22:09 ` Eli Zaretskii
2008-10-22 21:02 ` Richard M. Stallman
2008-10-24 11:59 ` Emacs 23.0 is much slower than Emacs 22.3. Maybe it's the garbage collector Alan Mackenzie
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=e01d8a50810240844m2e4fb7d4qc744b276d1849b20@mail.gmail.com \
--to=lennart.borgman@gmail.com \
--cc=acm@muc.de \
--cc=david@harpegolden.net \
--cc=eliz@gnu.org \
--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 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.