Subject: Re: bug#58558: 29.0.50; re-search-forward is slow in some buffers

From: Ihor Radchenko <[email-masked]>
Date: Sun, 09 Apr 2023 19:54:49 +0000

Eli Zaretskii <[email-masked]> writes:

> I think we should first go back to using perf.  I don't think you
> compared profiles for Emacs which just started with one that was
> running long enough to show the slowdown.  Comparing such profiles
> should at least give us a hint where to look.

I now tried perf record -g.
I was able to narrow down the call tree of the problematic
buf_bytepos_to_charpos calls:

43.82%--Fre_search_forward
 --43.81%--search_command
  --43.78%--search_buffer
   --43.78%--search_buffer_re
    --43.33%--re_search_2
     --36.39%--re_match_2_internal
      --21.90%--SYNTAX_TABLE_BYTE_TO_CHAR
       --21.57%--BYTE_TO_CHAR
        --21.49%--buf_bytepos_to_charpos

Not sure if it is telling much.

I also looked into git history and I can only identify significant
changes in re_match_2_internal after Emacs 28 release.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>