Subject: Character rendering slowly

From: Psionic K <[email-masked]>
Date: Wed, 3 Sep 2025 17:04:41 +0900

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