From: Drew Adams <drew.adams@oracle.com>
To: Noam Postavsky <npostavs@gmail.com>
Cc: 30539@debbugs.gnu.org
Subject: bug#30539: 26.0; `char-displayable-p' is much slower in Emacs 25 and 26
Date: Thu, 22 Feb 2018 18:43:21 -0800 (PST) [thread overview]
Message-ID: <b1642e4a-805b-4626-853d-064b87de7700@default> (raw)
In-Reply-To: <87woz44grg.fsf@gmail.com>
> > Can someone please confirm that they can repro this problem?
>
> I can reproduce on a Windows 10 box. It looks like something was being
> cached before, where now it's not. E.g., try the following function
> (char-names as defined in your throw-mule-bug-2.el). In Emacs 24,
> there's only one slow call.
>
> (defun my-test-each-char ()
> (interactive)
> (view-echo-area-messages)
> (pcase-dolist (`(,name . ,ch) char-names)
> (read-char (format "continue? (next: %s)" name))
> (let ((t0 (current-time))
> dt displayable)
> (setq displayable (char-displayable-p ch))
> (setq dt (subtract-time (current-time) t0))
> (message "%s display:%s (%fs)" name displayable (float-time dt)))))
>
> Doing (setq inhibit-compacting-font-caches t) brings back reasonable
> performance.
>
> I can't reproduce on my GNU/Linux box, although that may just be due to
> different fonts installed. In particular, char-displayable-p never gave
> me nil.
Thanks, Noam. Yes, I see the same thing: over 4 sec for each
char that is not displayable.
I couldn't try your code with Emacs 24.5 because `pcase-dolist'
and `inhibit-compacting-font-caches' are both undefined. (How
did you test it in 24.5, or did I misunderstand you?)
But everything else you say checks out, including the effect
of (setq inhibit-compacting-font-caches t).
Is this a bug that is likely to get fixed?
In any case, for Emacs 25-26, I wonder whether I should bind
`inhibit-compacting-font-caches to `t' in my code that uses
`char-displayable-p', or whether I should just skip the
`char-displayable-p' test for Emacs 25-26.
Another question is whether this bug should/will affect all
users or only some? If the latter then I can let users
decide whether to test `char-displayable-p' (I have an
option for that anyway) or whether to bind
`inhibit-compacting-font-caches to `t'. If only some users
are affected by the bug, do we know why? Does it have to
do with the fonts they have installed, for example?
next prev parent reply other threads:[~2018-02-23 2:43 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-19 22:07 bug#30539: 26.0; `char-displayable-p' is much slower in Emacs 25 and 26 Drew Adams
2018-02-20 18:08 ` Drew Adams
2018-02-22 14:50 ` Drew Adams
2018-02-23 1:49 ` Noam Postavsky
2018-02-23 2:43 ` Drew Adams [this message]
2018-02-23 3:32 ` Noam Postavsky
2018-02-23 4:07 ` Drew Adams
2018-02-23 7:14 ` Eli Zaretskii
2020-06-27 21:34 ` Drew Adams
2020-11-18 15:35 ` Stefan Kangas
2020-11-18 17:21 ` Eli Zaretskii
2020-11-18 18:30 ` Stefan Kangas
2018-02-28 19:21 ` Charles A. Roelli
[not found] <<8c79c39f-7abb-4591-a676-17fb46af5a8f@default>
[not found] ` <<ec3497d7-9a7d-4be8-8712-19bb6bdd96e8@default>
[not found] ` <<m2d10oj4xj.fsf@aurox.ch>
2018-02-28 19:53 ` Drew Adams
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=b1642e4a-805b-4626-853d-064b87de7700@default \
--to=drew.adams@oracle.com \
--cc=30539@debbugs.gnu.org \
--cc=npostavs@gmail.com \
/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).