From: Stefan Kangas <stefan@marxist.se>
To: Alan Mackenzie <acm@muc.de>
Cc: 32175@debbugs.gnu.org, Konstantin Kharlamov <hi-angel@yandex.ru>
Subject: bug#32175: Terrible performance of c++-mode refontifying
Date: Sat, 16 May 2020 20:49:58 -0700 [thread overview]
Message-ID: <CADwFkmmcUCiS4QmwK=L-ZVwEmuDKr36pgXJ=n_Rx=F+y3MvX3w@mail.gmail.com> (raw)
In-Reply-To: <32585dd1-ecab-4745-06b0-7a117c57447c@yandex.ru> (Konstantin Kharlamov's message of "Mon, 16 Jul 2018 16:36:29 +0300")
Hi Alan,
This bug was reported in July 2018 but got no followup.
Perhaps you could take a look?
Best regards,
Stefan Kangas
Konstantin Kharlamov <hi-angel@yandex.ru> writes:
> Sometimes for working with C++ code I start experiencing lags for typing
> the text, like, 1-second delay between pressing the key and the actual
> text appearing. This does not happen at the beginning of the work, but
> rather after Emacs have been running for a while.
>
> It seems to be a per-buffer issue. E.g. right now I
> have the problem in one c++mode buffer, but not in another.
>
> This problem have definitely existed for 2 years (maybe more). I
> didn't report it because I thought it's my computer slow. I attached
> profiling result at the end, and I remember that some years ago traces
> of low performance have also been leading to functions about
> refontifying.
>
> Emacs version: GNU Emacs 27.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version
> 3.22.30) of 2018-07-06
> (It's 12 days old build from git, commit 3bbd4ffc68b)
>
> FWIW it's built with -flto -march=native options, i.e. I have as much
> optimization as possible.
>
> Profiling below is done by pressing <SPACE> key, then waiting for
> symbol to appear; and repeating this for ≈10 times.
>
> - redisplay_internal (C function) 6900 69%
> - jit-lock-function 6887 69%
> - jit-lock-fontify-now 6887 69%
> - jit-lock--run-functions 6873 69%
> - run-hook-wrapped 6873 69%
> - #<compiled 0x289f6f5> 6873 69%
> - font-lock-fontify-region 6873 69%
> - c-font-lock-fontify-region 6866 69%
> - font-lock-default-fontify-region 6514 65%
> - font-lock-fontify-keywords-region 6447 65%
> - c-font-lock-declarations 5059 51%
> - c-find-decl-spots 5012 50%
> - c-bs-at-toplevel-p 2972 29%
> - c-brace-stack-at 2937 29%
> - c-update-brace-stack 2831 28%
> - c-syntactic-re-search-forward 1263 12%
> + c-beginning-of-macro 548 5%
> #<compiled 0x14ed36d> 6 0%
> - c-forward-<>-arglist 1220 12%
> - c-forward-<>-arglist-recur 1041 10%
> + c-syntactic-re-search-forward 285 2%
> + c-forward-<>-arglist-recur 245 2%
> + c-backward-token-2 125 1%
> c-forward-sws 52 0%
> + c-backward-sws 12 0%
> c-beginning-of-current-token 48 0%
> match-string-no-properties 6 0%
> + #<compiled 0x1503add> 1823 18%
> + c-beginning-of-macro 40 0%
> c-backward-sws 8 0%
> c-forward-sws 6 0%
> #<compiled 0x14ed6cd> 4 0%
> + c-backward-token-2 3 0%
> + c-font-lock-enclosing-decls 240 2%
> + #<compiled 0x150a5d1> 203 2%
> + c-font-lock-<>-arglists 183 1%
> + c-font-lock-cut-off-declarators 176 1%
> + color-identifiers:colorize 140 1%
> + c-font-lock-raw-strings 45 0%
> + c-font-lock-invalid-single-quotes 37 0%
> + c-font-lock-enum-tail 34 0%
> #<compiled 0x150a4f1> 31 0%
> #<compiled 0x150a1cd> 29 0%
> + c-font-lock-complex-decl-prepare 25 0%
> #<compiled 0x150a495> 24 0%
> #<compiled 0x150a57d> 22 0%
> + c-font-lock-c++-lambda-captures 18 0%
> #<compiled 0x150a555> 9 0%
> #<compiled 0x150a535> 3 0%
> eval 3 0%
> c-font-lock-enum-body 3 0%
> + font-lock-fontify-syntactically-region 40 0%
> + c-before-context-fl-expand-region 348 3%
> + eval 9 0%
> + mode-line-default-help-echo 4 0%
> - ... 1411 14%
> Automatic GC 1411 14%
> + command-execute 1252 12%
> + flycheck-handle-signal 301 3%
> + timer-event-handler 32 0%
> + evil-repeat-post-hook 5 0%
> global-highlight-symbol-mode-check-buffers 5 0%
> evil--jump-hook 1 0%
next prev parent reply other threads:[~2020-05-17 3:49 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-16 13:36 bug#32175: Terrible performance of c++-mode refontifying Konstantin Kharlamov
2020-05-17 3:49 ` Stefan Kangas [this message]
2020-05-17 9:56 ` Konstantin Kharlamov
2020-05-17 14:01 ` Stefan Kangas
2020-05-17 14:06 ` Konstantin Kharlamov
2020-05-17 14:09 ` Konstantin Kharlamov
2020-05-17 14:27 ` Stefan Kangas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CADwFkmmcUCiS4QmwK=L-ZVwEmuDKr36pgXJ=n_Rx=F+y3MvX3w@mail.gmail.com' \
--to=stefan@marxist.se \
--cc=32175@debbugs.gnu.org \
--cc=acm@muc.de \
--cc=hi-angel@yandex.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.