GNU bug report logs - #22763
25.1.50; Feature Request -- A faster method to obtain line number at position.

Previous Next

Package: emacs;

Reported by: Keith David Bershatsky <esq <at> lawlist.com>

Date: Mon, 22 Feb 2016 02:44:01 UTC

Severity: wishlist

Tags: fixed

Found in version 25.1.50

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 22763 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>, Keith David Bershatsky <esq <at> lawlist.com>
Subject: bug#22763: 25.1.50; Feature Request -- A faster method to obtain line number at position.
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





This bug report was last modified 3 years and 363 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.