Gnus development mailing list
 help / color / mirror / Atom feed
From: Lars Magne Ingebrigtsen <larsi@gnus.org>
To: ding@gnus.org
Subject: Re: Asynchroneous image retrieval in HTML rendering
Date: Mon, 02 May 2011 16:30:09 +0200	[thread overview]
Message-ID: <m3ei4hi39q.fsf@quimbies.gnus.org> (raw)
In-Reply-To: <87liyp35fy.fsf@gmail.com>

Antoine Levitt <antoine.levitt@gmail.com> writes:

> That doesn't change much for my test cases, so I guess the DNS lookup is
> indeed the bottleneck.

Have you verified that the DNS lookup is really the problem?  Because I
have more theories.  :-) (Or, as scientists call it, "guesses".)

One thing about the async image retrieval is that it's massively
parallel.  If there's 500 images in the article, Gnus will call
`url-retrieve' 500 times in rapid succession, which will then fire off
500 HTTP connections (in parallel, more or less).

I suspect that Emacs doesn't really like having this number of async
socket sentinels going on at the same time, which means that the main
Emacs thread gets no CPU time, which gives us interactive pauses.

(And it's really rude towards the server.  It's basically a one-Emacs
DoS attack.)

So I'm going to rewrite this by adding a new library, called, er,
url-queue.el, which has the same interface as `url-retrieve', but which
manages the parallelism in a more sensible way, by not having more than
(for instance) four connections going at the same time.

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




  reply	other threads:[~2011-05-02 14:30 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-23 22:18 Antoine Levitt
2011-04-28 20:03 ` Antoine Levitt
2011-04-29  9:04 ` Julien Danjou
2011-04-29  9:18   ` Antoine Levitt
2011-04-29 10:01     ` Julien Danjou
2011-04-29 20:34       ` Antoine Levitt
2011-05-01 15:13         ` Lars Magne Ingebrigtsen
2011-05-01 15:23           ` Antoine Levitt
2011-05-01 15:42             ` Lars Magne Ingebrigtsen
2011-05-01 16:06               ` Lars Magne Ingebrigtsen
2011-05-01 16:34                 ` Adam Sjøgren
2011-05-01 16:45                   ` Lars Magne Ingebrigtsen
2011-05-01 17:15                 ` Antoine Levitt
2011-05-02  7:52               ` Antoine Levitt
2011-05-02 14:30                 ` Lars Magne Ingebrigtsen [this message]
2011-05-02 14:53                   ` Antoine Levitt
2011-05-02 15:17                     ` Lars Magne Ingebrigtsen
2011-05-02 17:08                   ` Lars Magne Ingebrigtsen
2011-05-02 17:24                     ` Antoine Levitt
2011-05-02 17:40                       ` Lars Magne Ingebrigtsen
2011-05-02 21:52                         ` Antoine Levitt
2011-05-04 18:40                         ` Simon Josefsson
2011-05-30 20:55                           ` Lars Magne Ingebrigtsen
2011-05-05  8:25                         ` Julien Danjou
2011-05-30 20:56                           ` Lars Magne Ingebrigtsen
2011-05-05 10:48                         ` Ted Zlatanov
2011-05-05 10:58                           ` Julien Danjou
2011-05-05 11:17                           ` Antoine Levitt
2011-05-05 13:51                             ` Ted Zlatanov
2011-05-05 14:01                             ` David Engster
2011-05-05 14:07                               ` Julien Danjou
2011-05-05 15:05                               ` Lars Magne Ingebrigtsen
2011-05-05 19:49                                 ` David Engster
2011-05-05 20:07                                   ` Lars Magne Ingebrigtsen
2011-05-05 14:25                             ` David Engster
2011-05-05 14:34                               ` Antoine Levitt
2011-05-05 14:59                                 ` David Engster
2011-05-05 15:00                                   ` David Engster
2011-05-02 17:53                       ` Lars Magne Ingebrigtsen
2011-05-02 18:18                         ` Lars Magne Ingebrigtsen
2011-05-02 17:12                   ` Ted Zlatanov
2011-05-02 17:20                     ` Lars Magne Ingebrigtsen
2011-05-02 21:18                       ` Steinar Bang
2011-05-02 22:40                         ` Lars Magne Ingebrigtsen
2011-05-03 14:09                           ` Ted Zlatanov
2011-05-03 18:48                             ` Steinar Bang
2011-05-02 21:15                   ` Steinar Bang

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=m3ei4hi39q.fsf@quimbies.gnus.org \
    --to=larsi@gnus.org \
    --cc=ding@gnus.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.
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 NNTP newsgroup(s).