bug-gnu-emacs
[Top][All Lists]
Advanced

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

ediff-next-difference very slow


From: Roland Winkler
Subject: ediff-next-difference very slow
Date: Wed, 17 Apr 2002 15:21:37 +0200

In GNU Emacs 21.2.1 (i386-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2002-04-09 on tfkp12
configured using `configure  --prefix=/nfs/common --libexecdir=/nfs/common/lib 
--bindir=/nfs/common/lib/emacs/21.2/bin/i686-Linux 
--mandir=/nfs/common/share/man --infodir=/nfs/common/share/info --with-gcc 
--with-pop --with-x --with-x-toolkit=athena i386-pc-linux'
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: POSIX
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US
  locale-coding-system: iso-latin-1
  default-enable-multibyte-characters: nil

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:


Since I started working with GNU emacs 21.1 ediff has become rather
slow for me. Stepping through the differences between two buffers
using ediff-next-difference takes much longer than with GNU emacs
20.4 I used earlier. Now I have emacs 21.2 and it is still the same.

Now I tried to pin down more accurately what `slow' means, and I was
rather surprised: With a freshly started emacs 21.2, ediff is as
fast as it used to be, no matter whether I use 
`emacs --no-init-file' or whether I load my fairly big .emacs.
(I can't make an accurate comparison because I don't have emacs 20.4
anymore.)

But usually my emacs sessions run for a long time. My present
session started five days ago. Then ediff-next-difference is much
slower. To be more specific:

I created the two files

cat foo <<EOF
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo

foo foo bar foo foo bar foo foo bar foo foo bar foo foo bar
foo foo bar foo foo bar foo foo bar foo foo bar foo foo bar
foo foo bar foo foo bar foo foo bar foo foo bar foo foo bar

foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo

foo foo bar foo foo bar foo foo bar foo foo bar foo foo bar
foo foo bar foo foo bar foo foo bar foo foo bar foo foo bar
foo foo bar foo foo bar foo foo bar foo foo bar foo foo bar

foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
EOF

cat bar <<EOF
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo

foo bar bar foo bar bar foo bar bar foo bar bar foo bar bar
foo bar bar foo bar bar foo bar bar foo bar bar foo bar bar
foo bar bar foo bar bar foo bar bar foo bar bar foo bar bar

foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo

foo bar bar foo bar bar foo bar bar foo bar bar foo bar bar
foo bar bar foo bar bar foo bar bar foo bar bar foo bar bar
foo bar bar foo bar bar foo bar bar foo bar bar foo bar bar

foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
EOF

For some reason I don't understand, elp.el doesn't work with
ediff-next-difference. It gave me the error message

elp-reset-function: ediff-next-difference is not instrumented for profiling

So I defined

(defun my-ediff-next ()
  "Profiling ediff-next-difference."
  (interactive)
  (let ((time-start (nth 1 (current-time))))
    (ediff-next-difference)
    (message "Time difference: %s" (- (nth 1 (current-time)) time-start))))

According to my-ediff-next, ediff-next-difference requires 1 or 2
seconds in a fresh emacs session on my old pentium processor. But an
emacs session that has been running for many days requires 6 or
7 seconds for each of the two differences between the files foo
and bar.

What's going on here? Is this a known problem? How can I try to
further pin down why ediff becomes so slow?

Roland


PS: node `Compilation Tips' in the elisp manual says

   * Profile your program with the `profile' library or the `elp'
     library.  See the files `profile.el' and `elp.el' for instructions.

However, in profile.el it says that profile.el has become obsolete.




reply via email to

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