From: Eli Zaretskii <eliz@gnu.org>
To: Aaron Jensen <aaronjensen@gmail.com>
Cc: alan@idiocy.org, emacs-devel@gnu.org
Subject: Re: macOS metal rendering engine in mac port
Date: Sun, 30 May 2021 09:22:10 +0300 [thread overview]
Message-ID: <83tumk4u7h.fsf@gnu.org> (raw)
In-Reply-To: <CAHyO48w+4dqB=yr6On-pDdh=hr5VkB6-vY3Xyy-qP=iG7ToLbA@mail.gmail.com> (message from Aaron Jensen on Sat, 29 May 2021 14:03:08 -0700)
> From: Aaron Jensen <aaronjensen@gmail.com>
> Date: Sat, 29 May 2021 14:03:08 -0700
> Cc: Alan Third <alan@idiocy.org>, emacs-devel@gnu.org
>
> > Also, please note that typing a single character redisplays just one
> > line, the one where point is. That perhaps needs to merge 4 or 5
> > faces. So I'm not sure how come this could add 10ms to every
> > keypress: you'd need 20,000 calls of assq_no_quit to account for 10ms.
> > How come we call assq_no_quit 20k times when processing insertion of a
> > single character?
>
> So with a single keypress I see:
>
> 6,000 lface_from_face_name_no_resolve
> 19,000 assq_no_quit
In "emacs -Q" I get only about 180 calls to
lface_from_face_name_no_resolve when I type a single character,
depending on where in xdisp.c I do that. How many calls do you see
when you just move the cursor to the left or to the right one
character position?
> > > > I see a lot of :inherit there. I'm quite sure this exacerbates the
> > > > problem, as each :inherit needs to recursively search for and access
> > > > the attributes of the parent face.
> > >
> > > It only navigates the parent when the face matches, yes?
> >
> > Which face matches what?
> >
> > Emacs needs to access the parent face each time it merges the
> > inheriting face with another one, because it needs to resolve all the
> > attributes of each face it merges.
>
> Sorry, I mean having 900 new faces with inherits shouldn't change the
> time it takes to merge faces for a single face. In other words,
> inherit only adds instructions when the face being merged has
> inherits. It doesn't add it when 900 not-being-merged faces have
> inherits.
But in your case, it looks like every face inherits. So each time
Emacs finds the face it needs to merge by looking in frame's face
alist, it then needs to look again to find the parent of that face.
next prev parent reply other threads:[~2021-05-30 6:22 UTC|newest]
Thread overview: 155+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-21 1:17 macOS metal rendering engine in mac port Aaron Jensen
2021-05-21 6:07 ` Eli Zaretskii
2021-05-21 6:13 ` Aaron Jensen
2021-05-21 7:35 ` Alan Third
2021-05-21 15:27 ` Aaron Jensen
2021-05-21 17:39 ` Alan Third
[not found] ` <CAHyO48ys2sYxbZuho1NutqNAM-z0tTaKwuR1TxUuhMZG5XJ0aA@mail.gmail.com>
2021-05-22 16:01 ` Aaron Jensen
2021-05-22 16:30 ` Eli Zaretskii
2021-05-22 16:46 ` Eli Zaretskii
2021-05-22 17:00 ` Eli Zaretskii
2021-05-22 18:44 ` Alan Third
2021-05-22 18:59 ` Aaron Jensen
2021-05-22 19:57 ` Alan Third
2021-05-22 21:20 ` Aaron Jensen
2021-05-23 11:47 ` Alan Third
2021-05-23 16:09 ` Stefan Monnier
2021-05-23 16:13 ` Aaron Jensen
2021-05-23 17:06 ` Aaron Jensen
2021-05-23 17:21 ` Eli Zaretskii
2021-05-23 18:38 ` Aaron Jensen
2021-05-23 18:48 ` Eli Zaretskii
2021-05-23 19:49 ` Aaron Jensen
2021-05-24 0:00 ` Aaron Jensen
2021-05-24 0:04 ` Aaron Jensen
[not found] ` <CAHyO48z1m5aeqwqmZds3yuYiJ=rdHZ79JPVyuh1kHVU0Rw47EA@mail.gmail.com>
2021-05-24 6:51 ` Aaron Jensen
2021-05-24 7:37 ` Eli Zaretskii
2021-05-24 8:07 ` Aaron Jensen
2021-05-24 8:48 ` Eli Zaretskii
2021-05-24 15:32 ` Aaron Jensen
2021-05-24 16:28 ` Eli Zaretskii
2021-05-24 16:31 ` Aaron Jensen
2021-05-24 16:43 ` Eli Zaretskii
2021-05-24 17:58 ` Aaron Jensen
2021-05-24 18:03 ` Eli Zaretskii
2021-05-24 18:16 ` Alan Third
2021-05-24 18:18 ` Aaron Jensen
2021-05-24 18:54 ` Eli Zaretskii
2021-05-24 19:07 ` Aaron Jensen
2021-05-24 19:21 ` Eli Zaretskii
2021-05-24 19:27 ` Eli Zaretskii
2021-05-24 20:21 ` Aaron Jensen
2021-05-25 2:31 ` Eli Zaretskii
[not found] ` <CAHyO48yxxdURvZSzrWn-F+6wKwHgpwcoXD7_w0NmWLcfBKkUkw@mail.gmail.com>
2021-05-25 5:41 ` Eli Zaretskii
2021-05-25 6:26 ` Aaron Jensen
2021-05-25 12:16 ` Eli Zaretskii
2021-05-25 12:23 ` Alan Third
2021-05-25 12:56 ` Alan Third
2021-05-25 13:00 ` Eli Zaretskii
2021-05-25 13:07 ` Alan Third
2021-05-25 13:18 ` Eli Zaretskii
2021-05-25 13:34 ` Alan Third
2021-05-25 13:47 ` Eli Zaretskii
2021-05-25 13:50 ` Alan Third
2021-05-27 16:55 ` Eli Zaretskii
2021-05-27 17:40 ` Alan Third
2021-05-27 17:47 ` Eli Zaretskii
2021-05-27 17:51 ` Alan Third
2021-05-27 17:53 ` Aaron Jensen
2021-05-27 18:59 ` Eli Zaretskii
2021-05-27 19:02 ` Aaron Jensen
2021-05-27 19:22 ` Eli Zaretskii
2021-05-27 19:37 ` Aaron Jensen
2021-05-28 17:58 ` Eli Zaretskii
2021-05-28 18:21 ` Aaron Jensen
2021-05-28 19:00 ` Eli Zaretskii
2021-05-25 15:35 ` Aaron Jensen
2021-05-25 17:34 ` Eli Zaretskii
2021-05-25 17:48 ` Aaron Jensen
2021-05-25 9:01 ` Alan Third
2021-05-24 12:47 ` Eli Zaretskii
2021-05-24 16:10 ` Aaron Jensen
2021-05-23 21:20 ` Alan Third
2021-05-23 22:04 ` Alan Third
2021-05-23 22:12 ` Alan Third
2021-05-23 21:08 ` Alan Third
2021-05-23 22:37 ` Aaron Jensen
2021-05-24 9:01 ` Alan Third
2021-05-25 16:31 ` Aaron Jensen
2021-05-26 0:32 ` Aaron Jensen
2021-05-26 6:23 ` Alan Third
2021-05-26 6:26 ` Aaron Jensen
2021-05-26 7:35 ` Aaron Jensen
2021-05-28 17:39 ` Aaron Jensen
2021-05-28 18:32 ` Alan Third
2021-05-28 19:00 ` Aaron Jensen
2021-05-28 19:29 ` Alan Third
2021-05-28 22:07 ` Aaron Jensen
2021-05-29 6:07 ` Eli Zaretskii
2021-05-29 7:01 ` Aaron Jensen
2021-05-29 7:05 ` Eli Zaretskii
2021-05-29 8:52 ` Aaron Jensen
2021-05-29 9:06 ` Aaron Jensen
2021-05-29 9:21 ` Eli Zaretskii
2021-05-29 9:35 ` Alan Third
2021-05-29 9:41 ` Eli Zaretskii
2021-05-29 16:18 ` Aaron Jensen
2021-05-29 16:49 ` Eli Zaretskii
2021-05-29 17:05 ` Aaron Jensen
2021-05-29 17:20 ` Aaron Jensen
2021-05-29 17:43 ` Eli Zaretskii
2021-05-29 18:00 ` Dmitry Gutov
2021-05-29 18:15 ` Eli Zaretskii
2021-05-29 18:52 ` Dmitry Gutov
2021-05-29 19:06 ` Stefan Monnier
2021-05-29 19:10 ` Eli Zaretskii
2021-05-29 17:34 ` Eli Zaretskii
2021-05-29 18:22 ` Aaron Jensen
2021-05-29 18:27 ` Aaron Jensen
2021-05-29 18:40 ` Eli Zaretskii
2021-05-29 19:30 ` Aaron Jensen
2021-05-29 20:03 ` Eli Zaretskii
2021-05-29 21:03 ` Aaron Jensen
2021-05-29 21:05 ` Aaron Jensen
2021-05-29 21:40 ` Aaron Jensen
2021-05-30 4:44 ` Aaron Jensen
2021-05-30 7:01 ` Eli Zaretskii
2021-05-30 6:27 ` Eli Zaretskii
2021-05-30 7:04 ` Aaron Jensen
2021-05-30 9:36 ` Eli Zaretskii
2021-05-30 15:46 ` Aaron Jensen
2021-05-30 16:03 ` Eli Zaretskii
2021-05-30 16:16 ` Aaron Jensen
2021-05-30 16:35 ` Eli Zaretskii
2021-05-30 17:00 ` Aaron Jensen
2021-05-30 17:18 ` Eli Zaretskii
2021-05-30 23:59 ` Aaron Jensen
2021-05-31 2:28 ` Eli Zaretskii
2021-05-31 2:30 ` Aaron Jensen
2021-06-03 21:42 ` Alan Third
2021-06-03 21:43 ` Aaron Jensen
2021-09-15 13:16 ` Aaron Jensen
2021-09-15 19:30 ` Illia Ostapyshyn
2021-09-15 19:54 ` Alan Third
2021-09-16 15:59 ` Y. E. via Emacs development discussions.
2021-09-17 17:31 ` Alan Third
2021-09-17 17:43 ` Aaron Jensen
2021-09-18 5:42 ` Y. E. via Emacs development discussions.
2021-09-20 21:22 ` Illia Ostapyshyn
2021-09-21 7:22 ` Y. E. via Emacs development discussions.
2021-09-21 18:48 ` Alan Third
2021-09-27 10:07 ` Alan Third
2021-10-04 14:58 ` Aaron Jensen
2021-10-25 19:39 ` Illia Ostapyshyn
2021-10-26 12:16 ` Alan Third
2021-10-26 13:26 ` Aaron Jensen
2021-09-16 10:01 ` Rudolf Adamkovič
2021-05-30 6:22 ` Eli Zaretskii [this message]
2021-05-29 9:12 ` Alan Third
2021-05-29 9:26 ` Eli Zaretskii
2021-05-29 9:32 ` Alan Third
2021-05-29 9:37 ` Eli Zaretskii
2021-05-29 9:39 ` Eli Zaretskii
2021-05-29 9:44 ` Alan Third
2021-05-29 14:12 ` Alan Third
2021-05-23 23:32 ` Tim Cross
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=83tumk4u7h.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=aaronjensen@gmail.com \
--cc=alan@idiocy.org \
--cc=emacs-devel@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).