From: "Herbert Euler" <address@hidden>
To: address@hidden, address@hidden
CC: address@hidden, address@hidden
Subject: Re: Patch: Syntax and Hard Newlines
Date: Wed, 29 Nov 2006 12:06:12 +0800
I'm not completely sure whether your measurements are fair. Have you made
sure that syntax-ppss's caching doesn't give an unfair advantage to one or
the other? I'd suggest to try with a real "micro-benchmark" and use
parse-partial-sexp rather than syntax-ppss. You could also do it in a
real
buffer (e.g. turn off jit-lock, load a big Perl file: font-lock should
place a fair bit of syntax-table properties in there, then call
parse-partial-sexp with and without parse-sexp-lookup-properties).
I copied the content of
http://www.cpan.org/authors/id/W/WA/WAYNEM/betsie-1.5.12.pl
many times so that got a Perl file of 268274172 bytes (257 MB). I
then evaluated the following forms:
(save-window-excursion (find-file "~/1.pl"))
=> #<buffer 1.pl>
(let (old-time
time-diff
(parse-sexp-lookup-properties nil))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 952121)
(let (old-time
time-diff
(parse-sexp-lookup-properties t))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 977639)
(let (old-time
time-diff
(parse-sexp-lookup-properties nil))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 936413)
(let (old-time
time-diff
(parse-sexp-lookup-properties t))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 941655)
(let (old-time
time-diff
(parse-sexp-lookup-properties nil))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 936427)
(let (old-time
time-diff
(parse-sexp-lookup-properties t))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 985199)
(let (old-time
time-diff
(parse-sexp-lookup-properties nil))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 928313)
(let (old-time
time-diff
(parse-sexp-lookup-properties t))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 928447)
(let (old-time
time-diff
(parse-sexp-lookup-properties nil))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 13 70452)
(let (old-time
time-diff
(parse-sexp-lookup-properties t))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 929632)
(let (old-time
time-diff
(parse-sexp-lookup-properties nil))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 926650)
(let (old-time
time-diff
(parse-sexp-lookup-properties t))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 929234)
(let (old-time
time-diff
(parse-sexp-lookup-properties nil))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 978655)
(let (old-time
time-diff
(parse-sexp-lookup-properties t))
(save-window-excursion
(switch-to-buffer "1.pl")
(font-lock-mode -1)
(goto-char 268273054)
(jit-lock-mode nil)
(font-lock-mode 1)
(setq old-time (current-time))
(parse-partial-sexp 1 (point))
(setq time-diff (time-subtract (current-time)
old-time)))
time-diff)
=> (0 12 928371)
Can I conclude from this result that `parse-sexp-lookup-properties'
has no effect over syntax parsing?
Regards,
Guanpeng Xu
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
_______________________________________________
Emacs-devel mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-devel