emacs-devel
[Top][All Lists]
Advanced

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

Re: scratch/accurate-warning-pos: Some real world timings


From: Alan Mackenzie
Subject: Re: scratch/accurate-warning-pos: Some real world timings
Date: Thu, 29 Nov 2018 12:26:02 +0000
User-agent: Mutt/1.10.1 (2018-07-13)

Hello, Eli.

On Fri, Nov 23, 2018 at 13:09:05 +0000, Alan Mackenzie wrote:

[ .... ]

> The branch scratch/accurate-warning-pos now bootstraps.  (It also now
> runs on optimised builds. ;-)

> Its bootstrap is a mere 7.1% slower than master's.

Over the last week or so, there have been some wildly different timings
posted about the slowdown caused by scratch/accurate-warning-pos.

I have measured this on some "real world" situations - actions which
could be or are sluggish in interactive or "semi-batch" operation.  Here
are the results:

(i) time-scroll (see below) on the biggest .el file,
.../leim/ja-dic/ja-dic.el.  This measures mainly fontification:
  o - Slowdown of 4.9% and 5.1%.

(ii) Indenting entire buffer progmodes/cc-engine.el, after having
removed all space in the LH margin:
  o - Slowdown of 3.4%

(iii) Indenting entire buffer src/xdisp.c, after having removed all
space in the LH margin:
  o - Slowdown of 46%.  (This is anomalous, and not yet understood.)

(iv) Indenting first 50% of buffer src/xdisp.c, after having removed all
space in the LH margin:
  o - Slowdown of 4%, 7.3%.

(v) Same, but last 50% of src/xdisp.c, ...
  o - Slowdown of 10.8%, 9.4%.

(vi) time-scroll, measuring mainly fontification on src/xdisp.c:
  o - Slowdown of 3.4%, 3.6%.


These results were measured by the macro time-it:

(defmacro time-it (&rest forms)
  "Time the running of a sequence of forms using `float-time'.
Call like this: \"M-: (time-it (foo ...) (bar ...) ...)\"."
  `(let ((start (float-time)))
    ,@forms
    (- (float-time) start)))

The first and last of the timings were measured by time-scroll:

(defun time-scroll (&optional arg)
  (interactive "P")
  (message "%s"
           (time-it
            (condition-case nil
                (while t
                  (if arg (scroll-down) (scroll-up))
                  (sit-for 0))
              (error nil)))))


CONCLUSION: On the "real world" operations of fontification and
indentation, scratch/accurate-warning-pos is around 3.5% - 10% slower
than master.



reply via email to

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