From: Konstantin Kharlamov <hi-angel@yandex.ru>
To: 32175@debbugs.gnu.org
Subject: bug#32175: Terrible performance of c++-mode refontifying
Date: Mon, 16 Jul 2018 16:36:29 +0300 [thread overview]
Message-ID: <32585dd1-ecab-4745-06b0-7a117c57447c@yandex.ru> (raw)
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 reply other threads:[~2018-07-16 13:36 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-16 13:36 Konstantin Kharlamov [this message]
2020-05-17 3:49 ` bug#32175: Terrible performance of c++-mode refontifying Stefan Kangas
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=32585dd1-ecab-4745-06b0-7a117c57447c@yandex.ru \
--to=hi-angel@yandex.ru \
--cc=32175@debbugs.gnu.org \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).