From: David Kastrup <dak@gnu.org>
To: emacs-devel@gnu.org
Subject: Re: Slow image display over network
Date: Fri, 24 Sep 2010 09:11:34 +0200 [thread overview]
Message-ID: <87fwwz39ax.fsf@lola.goethe.zz> (raw)
In-Reply-To: 87aan73bfk.fsf@uwakimon.sk.tsukuba.ac.jp
"Stephen J. Turnbull" <stephen@xemacs.org> writes:
> Lars Magne Ingebrigtsen writes:
> > One thing I've wondered about for a while, but has become more
> > relevant lately (what with the web feeds in Gnus and stuff) is why
> > image display is so slow over remote connections.
> >
> > Here's how to reproduce:
> >
> > 1) ssh somewhere that's far away, so that there's plenty of latency
> > 2) open an Emacs over X 3) (put-image "/tmp/pretty-big-picture.jpg"
> > (point))
> >
> > Depending on how big the picture is, and what the latency is, this
> > might take very long time.
> >
> > 4) switch to a different buffer
> >
> > This will be instantaneous.
> >
> > 5) switch back to the buffer where the picture is
> >
> > This will not be instantaneous, but it will be very fast.
>
> You do understand that 4 and 5 are probably not interesting, because
> the *X server* creates a pixmap, and that will be available to Emacs
> for reuse via an int-sized resource ID?
>
> That said, it has been alleged in the past that XEmacs instantiates
> images more quickly than Emacs does. You might try benchmarking Emacs
> against XEmacs; if Emacs performs comparably to XEmacs, while there
> still may very well be a bug, it's probably pretty hard to fix since
> two rather different implementations are showing the same performance
> issue.
I don't think that this is relevant for remote operation. Emacs goes
through a complex call chain for every single pixel of an X image in
order to create it. Quite nonsensical. Once it is through, it goes to
the X server as one image if I am not mistaken, and gets moved into a
pixmap (the Emacs image cache). So the worst that can happen is that it
is in a format not best for remote transfer.
I don't remember all too closely whether it is Xlib on the client side
or the X server which does the conversion to an onscreen Pixmap from an
XImage. In any case, that cost should be negligible in remote
operations.
--
David Kastrup
next prev parent reply other threads:[~2010-09-24 7:11 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-23 23:43 Slow image display over network Lars Magne Ingebrigtsen
2010-09-24 1:20 ` Leo
2010-09-24 7:58 ` Eli Zaretskii
2010-09-24 8:18 ` Leo
2010-09-24 1:47 ` Daniel Pittman
2010-09-24 7:31 ` Jan Djärv
2010-09-24 11:06 ` David Kastrup
2010-09-24 11:23 ` Lars Magne Ingebrigtsen
2010-09-24 11:51 ` David Kastrup
2010-09-24 11:54 ` Lars Magne Ingebrigtsen
2010-09-24 15:56 ` Chong Yidong
2010-09-24 12:05 ` joakim
2010-09-24 12:21 ` Leo
2010-09-24 12:56 ` Lars Magne Ingebrigtsen
2010-09-24 13:41 ` joakim
2010-09-24 15:55 ` Lars Magne Ingebrigtsen
2010-09-25 3:35 ` YAMAMOTO Mitsuharu
2010-09-24 6:25 ` Stephen J. Turnbull
2010-09-24 7:11 ` David Kastrup [this message]
2010-09-24 11:27 ` Lars Magne Ingebrigtsen
2010-09-24 11:59 ` David Kastrup
2010-09-24 12:57 ` Lars Magne Ingebrigtsen
2010-09-24 14:26 ` Jan Djärv
2010-09-24 11:25 ` Lars Magne Ingebrigtsen
2010-09-24 12:55 ` Lars Magne Ingebrigtsen
2010-09-24 7:44 ` joakim
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fwwz39ax.fsf@lola.goethe.zz \
--to=dak@gnu.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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.