[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#16800: 24.3; flyspell works slow on very short words at the end of b
From: |
Agustin Martin |
Subject: |
bug#16800: 24.3; flyspell works slow on very short words at the end of big file |
Date: |
Wed, 26 Feb 2014 21:32:02 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Mon, Feb 24, 2014 at 08:03:17PM +0400, Aleksey Cherepanov wrote:
> I played with different (maybe wrong) implementations of
> flyspell-word-search-backward and measured time against t.txt
> (produced by the one-liner). All implementations are attached.
[ ... Tons of extensive and impressive debugging ... ]
> We could avoid capturing at all. And it works faster as shown by 4
> last functions.
Hi,
Thanks a lot for the extensive debugging and for all the suggestions. I
have been playing with something based in your last function, but trying
to get something more compact, see below current status
;; -----------------------------------
(defun my-test-concat-up-goto-notcap-nobob-bobp-if (word bound &optional
ignore-case)
(save-excursion
(let* ((r '())
(inhibit-point-motion-hooks t)
(flyspell-not-casechars (flyspell-get-not-casechars))
(word-re (concat
flyspell-not-casechars
(regexp-quote word)
flyspell-not-casechars))
p)
(while
(and (not r)
(setq p (if (re-search-backward word-re bound t)
(progn (forward-char) (point))
;; Check if word is at bob
(goto-char (point-min))
(search-forward word (length word) t))))
(let ((lw (flyspell-get-word)))
(if (and (consp lw)
(if ignore-case
(string-equal (downcase (car lw)) (downcase word))
(string-equal (car lw) word)))
(setq r p)
(goto-char p))))
r)))
;; -----------------------------------
I did some efficiency test and it seemed similar to those of your efficient
functions. Need to check further for corner cases, bugs, etc ...
Big thanks!
--
Agustin
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, (continued)
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Aleksey Cherepanov, 2014/02/22
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Eli Zaretskii, 2014/02/22
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Aleksey Cherepanov, 2014/02/22
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Aleksey Cherepanov, 2014/02/22
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Eli Zaretskii, 2014/02/22
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Agustin Martin, 2014/02/22
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Eli Zaretskii, 2014/02/23
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Aleksey Cherepanov, 2014/02/23
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Aleksey Cherepanov, 2014/02/23
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Aleksey Cherepanov, 2014/02/24
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file,
Agustin Martin <=
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Agustin Martin, 2014/02/28
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Eli Zaretskii, 2014/02/28
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Aleksey Cherepanov, 2014/02/28
- bug#16800: 24.3; flyspell works slow on very short words at the end of big file, Aleksey Cherepanov, 2014/02/23