unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Lars Ingebrigtsen <larsi@gnus.org>
To: Alan Third <alan@idiocy.org>
Cc: Gregory Heytings <ghe@sdf.org>, Eli Zaretskii <eliz@gnu.org>,
	emacs-devel@gnu.org
Subject: Re: Redisplay slower in Emacs 28 than Emacs 27
Date: Mon, 07 Dec 2020 23:32:50 +0100	[thread overview]
Message-ID: <87v9dd5jsd.fsf@gnus.org> (raw)
In-Reply-To: <X86rZ/NMjccN+bhC@breton.holly.idiocy.org> (Alan Third's message of "Mon, 7 Dec 2020 22:23:35 +0000")

Alan Third <alan@idiocy.org> writes:

> I think the image cache is actually broken.
>
> If we have two image specs that have the same contents, but don't have
> identical memory locations, surely we still want the cache to work?

We used to use Fequal on the spec, so that used to work.  I thought the
point of the equal_lists function was to speed that up a bit, by
dropping that generality and just using EQ instead?  But it does indeed
mean that you have to be more careful with how you construct the image
specs, and I think that's a fair tradeoff.

It works for the vast majority of the use cases, but as we saw here, the
toolbar code hadn't been adjusted, but that's easily fixed (see the
patch I posted earlier).

Especially with huge :data images, the equal_lists code should be faster
than the Fequal code, I think?  On the other hand, when we're
constructing the hashes, we iterate over a lot of data anyway, so...

> For example when playing an animated gif image.el doesn't store the
> image specs for each frame, it generates them on the fly by
> incrementing the frame counter. I can see that Emacs creates a new
> cache entry for every frame every time the gif is played through.
>
> That means it must be decoding every frame every time.

Yes, I think so.  I think there's at least one open bug report about
making animated gifs faster (because they're really slow now).

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



  reply	other threads:[~2020-12-07 22:32 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-07 14:53 Redisplay slower in Emacs 28 than Emacs 27 Gregory Heytings via Emacs development discussions.
2020-12-07 15:04 ` Lars Ingebrigtsen
2020-12-07 15:14   ` Gregory Heytings via Emacs development discussions.
2020-12-07 15:19     ` Lars Ingebrigtsen
2020-12-07 15:28       ` Gregory Heytings via Emacs development discussions.
2020-12-07 15:41         ` Lars Ingebrigtsen
2020-12-07 15:43           ` Gregory Heytings via Emacs development discussions.
2020-12-07 15:45             ` Gregory Heytings via Emacs development discussions.
2020-12-07 16:14             ` Lars Ingebrigtsen
2020-12-07 16:46               ` Gregory Heytings via Emacs development discussions.
2020-12-07 17:30                 ` Eli Zaretskii
2020-12-07 18:45                   ` Gregory Heytings via Emacs development discussions.
2020-12-07 18:47                     ` Lars Ingebrigtsen
2020-12-07 18:49                       ` Gregory Heytings via Emacs development discussions.
2020-12-07 20:58                         ` Alan Third
2020-12-07 21:24                           ` Gregory Heytings via Emacs development discussions.
2020-12-07 21:06                         ` Gregory Heytings via Emacs development discussions.
2020-12-07 21:15                           ` Lars Ingebrigtsen
2020-12-07 21:23                             ` Alan Third
2020-12-07 21:31                               ` Lars Ingebrigtsen
2020-12-07 21:47                                 ` Lars Ingebrigtsen
2020-12-07 21:46                               ` Gregory Heytings via Emacs development discussions.
2020-12-07 21:49                             ` Gregory Heytings via Emacs development discussions.
2020-12-07 21:59                               ` Lars Ingebrigtsen
2020-12-07 22:11                                 ` Lars Ingebrigtsen
2020-12-07 22:56                                   ` Gregory Heytings via Emacs development discussions.
2020-12-07 23:02                                     ` Lars Ingebrigtsen
2020-12-07 23:09                                       ` Gregory Heytings via Emacs development discussions.
2020-12-07 23:44                                         ` Lars Ingebrigtsen
2020-12-07 23:47                                         ` Lars Ingebrigtsen
2020-12-08  0:04                                           ` Gregory Heytings via Emacs development discussions.
2020-12-07 23:48                                         ` Lars Ingebrigtsen
2020-12-08  0:17                                           ` Gregory Heytings via Emacs development discussions.
2020-12-08  0:23                                             ` Lars Ingebrigtsen
2020-12-08  0:41                                               ` Lars Ingebrigtsen
2020-12-08  1:21                                                 ` Lars Ingebrigtsen
2020-12-08 17:21                                               ` João Távora
2020-12-08 14:58                                           ` Eli Zaretskii
2020-12-08 15:07                                             ` Lars Ingebrigtsen
2020-12-08 15:19                                               ` Lars Ingebrigtsen
2020-12-08 16:17                                                 ` Eli Zaretskii
2020-12-08 16:34                                                   ` Lars Ingebrigtsen
2020-12-08 16:56                                                     ` Eli Zaretskii
2020-12-08 17:52                                                       ` Lars Ingebrigtsen
2020-12-08 16:11                                               ` Eli Zaretskii
2020-12-07 22:23                                 ` Alan Third
2020-12-07 22:32                                   ` Lars Ingebrigtsen [this message]
2020-12-07 18:50                       ` Lars Ingebrigtsen
2020-12-07 19:26                       ` Eli Zaretskii
2020-12-08 14:06                         ` Lars Ingebrigtsen
2020-12-08 15:50                           ` Eli Zaretskii
2020-12-08 15:56                             ` Stefan Monnier
2020-12-08 16:21                               ` Eli Zaretskii
2020-12-08 16:31                             ` Lars Ingebrigtsen
2020-12-08 16:53                               ` Eli Zaretskii
2020-12-08 17:29                                 ` Lars Ingebrigtsen
2020-12-08 17:36                                   ` Eli Zaretskii
2020-12-08 17:51                                     ` Lars Ingebrigtsen
2020-12-08 18:03                                       ` Eli Zaretskii
2020-12-08 18:39                                         ` Stefan Monnier
2020-12-08 19:12                                           ` Lars Ingebrigtsen
2020-12-08 19:36                                             ` Lars Ingebrigtsen
2020-12-08 20:21                                               ` Eli Zaretskii
2020-12-08 20:32                                                 ` Lars Ingebrigtsen
2020-12-08 20:35                                                   ` Lars Ingebrigtsen
2020-12-08 20:51                                                     ` Lars Ingebrigtsen
2020-12-08 21:10                                               ` Alfred M. Szmidt
2020-12-08 21:41                                                 ` Lars Ingebrigtsen
2020-12-08 22:31                                                   ` Alfred M. Szmidt
2020-12-08 21:33                                             ` Stefan Monnier
2020-12-08 22:46                                               ` Stefan Monnier
2020-12-08 22:58                                                 ` Lars Ingebrigtsen
2020-12-08 23:10                                                   ` Stefan Monnier
2020-12-08 23:43                                                     ` Lars Ingebrigtsen
2020-12-09 18:49                                                     ` Eli Zaretskii
2020-12-09 21:01                                                       ` Stefan Monnier
2020-12-10  3:36                                                         ` Eli Zaretskii
2020-12-10 16:21                                                           ` Stefan Monnier
2020-12-07 16:06         ` Óscar Fuentes
2020-12-07 16:15           ` Gregory Heytings via Emacs development discussions.
2020-12-07 16:16         ` Eli Zaretskii
2020-12-07 15:21 ` Jean Louis

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=87v9dd5jsd.fsf@gnus.org \
    --to=larsi@gnus.org \
    --cc=alan@idiocy.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=ghe@sdf.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).