emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs 23.0 is much slower starting than Emacs 22.3


From: Lennart Borgman
Subject: Re: Emacs 23.0 is much slower starting than Emacs 22.3
Date: Fri, 24 Oct 2008 00:33:01 +0200

On Thu, Oct 23, 2008 at 11:52 PM, Eli Zaretskii <address@hidden> wrote:
>> Date: Thu, 23 Oct 2008 17:57:29 +0100
>> From: David De La Harpe Golden <address@hidden>
>> Cc: Stefan Monnier <address@hidden>, address@hidden
>>
>> I tried just putting 180 find-file-noselects in a file and loading it
>> i.e.
>>
>> $ find /usr/local/src/emacs -name '*.c' -printf \
>>      '(find-file-noselect "%p")\n' >fftest.el
>> $ emacs --batch --eval '(byte-compile-file "fftest.el")'
>> $ time emacs -l fftest.elc -f kill-emacs
>>
>> emacs run     real    user    sys
>> 22    1       4.523   3.888   0.136
>> 22    2       4.744   4.172   0.112
>> 22    3       4.457   3.836   0.176
>> 23    4       7.177   6.532   0.152
>> 23    5       7.198   6.544   0.160
>> 23    6       7.159   6.472   0.220
>>
>>
>> So FWIW probably the problem is in the find-file call path rather than
>> anything desktop.el is doing in particular
>
> Sounds plausible.  Next question: is the slow-down connected in any
> way with decoding the buffer?  To see if this is a factor, you could
> compare 180 calls to insert-file-contents with the same number of
> calls to insert-file-contents-literally, in both Emacs 22 and 23.

I did a fast test using something as simple as this:


(defun test-insert-dir (dir literally)
  (let ((files (directory-files dir t)))
    (dolist (file files)
      (unless (file-directory-p file)
        (with-temp-buffer
          (if literally
              (insert-file-contents-literally file)
            (insert-file-contents file)))))))

(defun test-insert-emacs-lisp-dir ()
  (benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" nil))
  (message "======================= After cache warm up")
  (message "Timing insert-file-contents-literally:")
  (benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" t))
  (benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" t))
  (benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" t))
  (message "Timing insert-file-contents:")
  (benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" nil))
  (benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" nil))
  (benchmark 1 '(test-insert-dir "c:/emacs/u/070103/emacs/lisp/" nil))
  (message "Ready"))

The output was

  ======================= After cache warm up
  Timing insert-file-contents-literally:
  Elapsed time: 5.531000s (0.094000s in 1 GCs)
  Elapsed time: 5.594000s
  Elapsed time: 5.828000s (0.093000s in 1 GCs)
  Timing insert-file-contents:
  Elapsed time: 9.484000s (0.188000s in 2 GCs)
  Elapsed time: 8.922000s (0.188000s in 2 GCs)
  Elapsed time: 8.953000s (0.203000s in 2 GCs)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]