Subject: bug#22763: 25.1.50; Feature Request -- A faster method to obtain line number at position.

From: Stefan Monnier <[email-masked]>
Date: Sun, 07 Feb 2021 12:40:43 -0500

> This takes 2.8s in Emacs 27 and 0.3s after the change:
>
> (with-temp-buffer
>   (insert-file-contents "~/src/emacs/trunk/src/ChangeLog.11")
>   (benchmark-run 1000
>     (line-number-at-pos (point-max))))
>
> So that's nice.  `line-number-at-pos' is used all over Emacs, but
> probably not in a loop a lot, so it probably doesn't make much
> difference, though.

Why is it faster?

Is it still always Θ(N) just with a smaller constant (if so, what makes
the constant smaller), or does it benefit from some kind of caching
(which I fail to see in the code) such that it's O(N) sometimes but much
faster other times (and if so, what are the cases that are sped up)?

        Stefan