From: David De La Harpe Golden <david@harpegolden.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: acm@muc.de, lennart.borgman@gmail.com, monnier@iro.umontreal.ca,
emacs-devel@gnu.org
Subject: Re: Emacs 23.0 is much slower starting than Emacs 22.3
Date: Fri, 24 Oct 2008 16:00:57 +0100 [thread overview]
Message-ID: <4901E329.3010002@harpegolden.net> (raw)
In-Reply-To: <uwsfyxqlh.fsf@gnu.org>
Eli Zaretskii wrote:
>> Date: Fri, 24 Oct 2008 02:44:31 +0100
>> From: David De La Harpe Golden <david@harpegolden.net>
>> CC: acm@muc.de, Eli Zaretskii <eliz@gnu.org>, monnier@iro.umontreal.ca,
>> emacs-devel@gnu.org
>>
>> David De La Harpe Golden wrote:
>>
>>
>>> +++ Which leaves set-auto-mode...
>> Which seems to be mostly the particular mode - So of course, this can
>> presumably vary wildly from mode to mode, but let's take c-mode (seeing
>> as it's for the c files I was testing with):
>>
>> set-auto-mode->set-auto-mode-0->
>> c-mode-> (c-init-language-vars-for,
>> c-common-init->(c-basic-common-init,
>> run some internal hooks, like the "neutralize"), ...)
>>
>> See existing c-neutralize-syntax-in-CPP initial comment:
>> "SPEED _MATTERS_ IN THIS FUNCTION!!!"
>>
>> Profiling confirms - yes, it does. :-)
>
> How does this compare with Emacs 22?
(gc-cons-threshold @ 1G as it was for the emacs23 test your replied to)
As you can see by comparing the two, the "set-auto-mode" path of
"normal-mode" is similar overhead on both but "hack-local-variables" is
about 27 TIMES slower on emacs23...
Function Name Call Count Elapsed Time Average Time
============================ ========== ============ ============
find-file-noselect 180 2.2096209999 0.0122756722
find-file-noselect-1 180 1.4848800000 0.0082493333
after-find-file 180 1.226164 0.0068120222
normal-mode 180 0.9997670000 0.0055542611
set-auto-mode 180 0.9343669999 0.0051909277
set-auto-mode-0 180 0.9077470000 0.0050430388
c-mode 180 0.9068940000 0.0050383000
c-common-init 180 0.6864290000 0.0038134944
c-neutralize-syntax-in-CPP 182 0.5930520000 0.0032585274
run-hooks 1998 0.2834299999 0.0001418568
c-init-language-vars-for 180 0.1180209999 0.0006556722
c-basic-common-init 180 0.0789910000 0.0004388388
c-neutralize-CPP-line 14000 0.0531670000 3.797...e-06
hack-local-variables 181 0.0335519999 0.0001853701
easy-menu-add 180 0.0288129999 0.0001600722
make-local-variable 11046 0.0169949999 1.538...e-06
set-auto-mode-1 363 0.0139350000 3.838...e-05
kill-all-local-variables 361 0.0090380000 2.503...e-05
c-setup-paragraph-variables 361 0.0067259999 1.863...e-05
c-update-modeline 360 0.0059999999 1.666...e-05
c-extend-region-for-CPP 182 0.0048190000 2.647...e-05
c-font-lock-init 180 0.0033029999 1.834...e-05
cc-imenu-init 180 0.0009289999 5.161...e-06
c-initialize-cc-mode 180 0.0004939999 2.744...e-06
c-after-change 2 0.000241 0.0001205
use-local-map 182 0.0001749999 9.615...e-07
set-syntax-table 182 0.0001529999 8.406...e-07
c-before-change 2 0.000103 5.15e-05
c-extend-after-change-region 2 3e-06 1.5e-06
next prev parent reply other threads:[~2008-10-24 15:00 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
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 [this message]
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
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=4901E329.3010002@harpegolden.net \
--to=david@harpegolden.net \
--cc=acm@muc.de \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=lennart.borgman@gmail.com \
--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).