GNU bug report logs -
#79375
Character rendering slowly
Previous Next
To reply to this bug, email your comments to 79375 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#79375
; Package
emacs
.
(Wed, 03 Sep 2025 08:06:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Psionic K <psionik <at> positron.solutions>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Wed, 03 Sep 2025 08:06:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Emacs is about one week old igc branch.
The humble character below was grinding my Emacs to a halt whenever
the point is in a buffer where it's visible. I chased it into
libfontconfig with perf.
▄▄▄▄▄
After reproducing in a bare Emacs, I figured it was worth a shot. If
it slows down Emasc movement in the buffer while reading this message,
you have reproduced the issue already.
Perf data pointing at libfontconfig being bothered by this character.
29.05% emacs libfontconfig.so.1.15.0 [.]
__popcountdi2
15.17% emacs libfontconfig.so.1.15.0 [.]
FcCharSetSubtractCount
8.18% emacs libfontconfig.so.1.15.0 [.]
FcCharSetFindLeafForward
5.96% emacs libfontconfig.so.1.15.0 [.]
FcCompare
5.86% emacs libfontconfig.so.1.15.0 [.]
FcCompareValueList
4.90% emacs libfontconfig.so.1.15.0 [.]
FcStrCmpIgnoreCase
4.89% emacs libfontconfig.so.1.15.0 [.]
FcCharSetIterSet
4.73% emacs libfontconfig.so.1.15.0 [.]
FcStrHashIgnoreBlanksAndCase
2.04% emacs libfontconfig.so.1.15.0 [.]
FcStrGlobMatch
1.61% emacs libfontconfig.so.1.15.0 [.]
FcCompareNumber
1.06% emacs libfontconfig.so.1.15.0 [.]
FcValueCanonicalize
0.98% emacs libfontconfig.so.1.15.0 [.]
FcStrCmp
0.94% emacs libfontconfig.so.1.15.0 [.]
FcCompareBool
0.88% emacs libfontconfig.so.1.15.0 [.]
FcHashTableFind
0.79% emacs libfontconfig.so.1.15.0 [.]
FcCompareRange
0.43% emacs emacs-31.0.50 [.]
re_search_2
0.36% emacs libfontconfig.so.1.15.0 [.]
FcStrCmpIgnoreBlanksAndCase
0.35% emacs [kernel.kallsyms] [k]
read_hpet
0.35% emacs libc.so.6 [.]
unlink_chunk.isra.0
0.35% emacs libc.so.6 [.]
_int_malloc
0.32% emacs libc.so.6 [.]
__strlen_avx2
0.31% emacs [kernel.kallsyms] [k]
x86_pmu_disable_all
0.31% emacs libfontconfig.so.1.15.0 [.]
IA__FcConfigSubstituteWithPat.part.0
0.30% emacs libfontconfig.so.1.15.0 [.]
FcCompareFilename
0.24% emacs emacs-31.0.50 [.]
hash_find_with_hash
0.22% emacs emacs-31.0.50 [.]
Ffuncall
0.22% emacs emacs-31.0.50 [.]
re_match_2_internal
0.19% emacs libfontconfig.so.1.15.0 [.]
FcPtrListIterGetValue
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#79375
; Package
emacs
.
(Wed, 03 Sep 2025 12:47:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 79375 <at> debbugs.gnu.org (full text, mbox):
> Date: Wed, 3 Sep 2025 17:04:41 +0900
> From: Psionic K via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>
> Emacs is about one week old igc branch.
>
> The humble character below was grinding my Emacs to a halt whenever
> the point is in a buffer where it's visible. I chased it into
> libfontconfig with perf.
>
> ▄▄▄▄▄
>
> After reproducing in a bare Emacs, I figured it was worth a shot. If
> it slows down Emasc movement in the buffer while reading this message,
> you have reproduced the issue already.
Doesn't happen here, but my Emacs doesn't use Fontconfig, so maybe it
isn't a surprise.
> Perf data pointing at libfontconfig being bothered by this character.
>
> 29.05% emacs libfontconfig.so.1.15.0 [.]
> __popcountdi2
> 15.17% emacs libfontconfig.so.1.15.0 [.]
> FcCharSetSubtractCount
> 8.18% emacs libfontconfig.so.1.15.0 [.]
> FcCharSetFindLeafForward
> 5.96% emacs libfontconfig.so.1.15.0 [.]
> FcCompare
> 5.86% emacs libfontconfig.so.1.15.0 [.]
> FcCompareValueList
> 4.90% emacs libfontconfig.so.1.15.0 [.]
> FcStrCmpIgnoreCase
> 4.89% emacs libfontconfig.so.1.15.0 [.]
> FcCharSetIterSet
> 4.73% emacs libfontconfig.so.1.15.0 [.]
> FcStrHashIgnoreBlanksAndCase
> 2.04% emacs libfontconfig.so.1.15.0 [.]
> FcStrGlobMatch
> 1.61% emacs libfontconfig.so.1.15.0 [.]
> FcCompareNumber
> 1.06% emacs libfontconfig.so.1.15.0 [.]
> FcValueCanonicalize
> 0.98% emacs libfontconfig.so.1.15.0 [.]
> FcStrCmp
> 0.94% emacs libfontconfig.so.1.15.0 [.]
> FcCompareBool
> 0.88% emacs libfontconfig.so.1.15.0 [.]
> FcHashTableFind
> 0.79% emacs libfontconfig.so.1.15.0 [.]
> FcCompareRange
AFAICT, Emacs doesn't call directly any of these Fc* Fontconfig
functions that seem to be hot spots. So it is hard to figure out how
do we end up calling them. Would it be possible to show the call-tree
that leads to __popcountdi2 or FcCharSetSubtractCount, so that the
Emacs functions which lead to those could be identified?
Btw, I presume that Emacs on your system is capable of displaying this
character, i.e. that you have some font capable of displaying it, is
that right?
Btw2, do you see the slowdown in "emacs -Q" when this character is in
the buffer?
Thanks.
This bug report was last modified 10 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.