emacs-devel
[Top][All Lists]
Advanced

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

Re: Patch: Syntax and Hard Newlines


From: Herbert Euler
Subject: Re: Patch: Syntax and Hard Newlines
Date: Wed, 29 Nov 2006 12:08:00 +0800

On timing, I meant.

Regards,
Guanpeng Xu


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

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/





reply via email to

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