unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Philip K." <philipk@posteo.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: adam@alphapapa.net, rms@gnu.org, arthur.miller@live.com,
	emacs-devel@gnu.org
Subject: Re: Emacs HTTP libraries [was: Re: How to contribute new package to GNU ELPA?]
Date: Tue, 22 Dec 2020 17:59:19 +0100	[thread overview]
Message-ID: <87mty5g4k8.fsf@posteo.net> (raw)
In-Reply-To: <83mty5rfq5.fsf@gnu.org> (message from Eli Zaretskii on Tue, 22 Dec 2020 18:02:42 +0200)

Eli Zaretskii <eliz@gnu.org> writes:

>> From: "Philip K." <philipk@posteo.net>
>> Cc: arthur.miller@live.com, adam@alphapapa.net, rms@gnu.org,
>> 	emacs-devel@gnu.org
>> Date: Tue, 22 Dec 2020 11:38:31 +0100
>> 
>> >> In that case, gnutls-negotiate seems to be the most suspicious function,
>> >> using over 50%-60% of the CPU time, at least on my machine. This also
>> >> makes sense, as TLS sites seem to take longer to load than regular,
>> >> non-encrypted ones.
>> >
>> > Please show the code you profiled and the fully expanded profile.
>> 
>> I sadly coudln't reproduce it, but this time the critical section looked
>> something like this:
>> 
>>         - url-retrieve-synchronously                               212  52%
>>          - url-retrieve                                            149  36%
>>           - url-retrieve-internal                                  149  36%
>>            - url-http                                              136  33%
>>             - url-http-find-free-connection                        135  33%
>>              - url-open-stream                                     135  33%
>>                 open-network-stream                                134  33%
>> 
>> when evaluating 
>> 
>> 	(url-retrieve-synchronously "http://textboard.org/sexp/prog/index")
>> 
>> in the *scratch* buffer. I used emacs -Q (GNU Emacs 27.1 (build 1,
>> x86_64-redhat-linux-gnu, GTK+ Version 3.24.22, cairo version 1.16.0) of
>> 2020-08-21), but I don't know why that should make any
>> difference. I repeated the same test on the master branch and the
>> results were basically the same (±5%).
>> 
>> Either way, this simple request took over 2.5 minutes, whereas curl
>> requires a quarter of a second. Note that this is even unencrypted, so
>> this is not even taking the encryption overhead into account.
>
> That's strange, because I get here much faster times: 0.6 sec (with 3
> GC cycles) on the first attempt, and less than 0.1 sec afterwards.

Why did it take three GC cycles? benchmark-run says

    (130.773534384 0 0.0)

and 

    (129.933227402 0 0.0)

for the first two runs, and

    (0.044592597 0 0.0)

for the third one, a bit later.

> How come it's so slow on your system?

I can't say for sure, but I don't think it is due to some specific local
configuration. I reran the code on a university computer a few
kilometres away, and the behaviour stays basically the same, even though
their network is a lot better than mine. But when I ran it on a VPS in
Berlin (I'm currently in southern Germany), it was a lot faster, despite
probably running the same build (whatever it in the Debian Buster
repository). I looked up where textboard.org is located, and it seems to
be in France, or it at the very least has to pass through some Proxy in
France. Another interesting observation is that connections from my home
to my university are basically instantaneous using Eww, and vice
versa. The Server in Berlin takes a lot longer to connect to my local
network and my university server. The only exception to this rule is
that eww doesn't seem to take that long to connect to my VPS.

None of these effects are observable using curl.

I guess this should be reported as a proper bug, instead of being
discussed here.

-- 
	Philip K.



  reply	other threads:[~2020-12-22 16:59 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-17 12:11 How to contribute new package to GNU ELPA? stardiviner
2020-12-19  6:22 ` Stefan Monnier
2020-12-19  7:08   ` stardiviner
2020-12-19 15:35     ` Stefan Monnier
2020-12-20  2:12       ` stardiviner
2020-12-20 12:29         ` Emacs HTTP libraries [was: Re: How to contribute new package to GNU ELPA?] Adam Porter
2020-12-20 13:44           ` Daniel Brooks
2021-03-28  1:47             ` T.V Raman
2021-03-28 22:42               ` Vladimir Sedach
2021-03-29  9:00                 ` Sv: " arthur miller
2021-03-29 22:03                   ` Jose E. Marchesi
2021-03-29 22:09                     ` Darshit Shah
2021-03-30 11:12                       ` Arthur Miller
2021-03-30 12:03                         ` Daniel Martín
2021-03-30 12:46                           ` Stefan Kangas
2021-03-30 12:50                           ` Eli Zaretskii
2021-03-30 13:14                           ` Lars Ingebrigtsen
2021-03-30 13:39                             ` Eli Zaretskii
2021-03-30 13:48                               ` Lars Ingebrigtsen
2021-03-30 13:55                                 ` Eli Zaretskii
2021-03-30 14:25                                   ` Eli Zaretskii
2021-03-30 14:34                                     ` Lars Ingebrigtsen
2021-03-30 15:15                                       ` Eli Zaretskii
2021-03-31 13:36                                         ` Lars Ingebrigtsen
2021-03-30 16:13                                     ` Clément Pit-Claudel
2021-03-30 16:21                                       ` Eli Zaretskii
2021-03-30 16:49                                         ` Clément Pit-Claudel
2021-03-30 17:03                                           ` Eli Zaretskii
2021-03-30 19:53                                             ` Clément Pit-Claudel
2021-03-31  1:08                                               ` Stefan Monnier
2021-03-31  6:22                                                 ` Eli Zaretskii
2021-03-31  5:54                                               ` Eli Zaretskii
2021-03-30 20:53                                             ` T.V Raman
2021-03-31  6:02                                               ` Eli Zaretskii
2021-03-31 16:01                                                 ` read-process-output-max (was: Emacs HTTP libraries) Stefan Monnier
2021-03-31 17:13                                                   ` Eli Zaretskii
2021-03-31 23:05                                                     ` read-process-output-max Stefan Monnier
2021-04-01  7:12                                                       ` read-process-output-max Eli Zaretskii
2021-03-30 18:08                             ` Sv: Emacs HTTP libraries [was: Re: How to contribute new package to GNU ELPA?] Arthur Miller
2021-03-31  8:59                               ` Robert Pluim
2021-03-31 17:21                                 ` Daniel Brooks
2021-04-01 14:23                                   ` Robert Pluim
2021-04-01 16:09                                     ` Daniel Brooks
2021-04-02 12:10                                       ` Robert Pluim
2021-04-01 16:57                                     ` tomas
2021-03-29 23:56                     ` Daniel Brooks
2020-12-20 13:56           ` David Engster
2020-12-20 17:27             ` Lars Ingebrigtsen
2020-12-20 14:36           ` Stefan Monnier
2020-12-20 15:17             ` Jean Louis
2020-12-20 15:23             ` Helmut Eller
2020-12-20 16:02               ` Daniel Brooks
2020-12-21  5:47           ` Richard Stallman
2020-12-21 14:17             ` Stefan Monnier
2020-12-22  5:17               ` Richard Stallman
2020-12-21 16:59             ` Philip K.
2020-12-21 17:23               ` Eli Zaretskii
2020-12-21 17:41                 ` Arthur Miller
2020-12-21 18:13                   ` Eli Zaretskii
2020-12-21 18:18                     ` Arthur Miller
2020-12-21 23:51                     ` Philip K.
2020-12-22  3:32                       ` Lars Ingebrigtsen
2020-12-22  3:35                       ` Eli Zaretskii
2020-12-22 10:38                         ` Philip K.
2020-12-22 16:02                           ` Eli Zaretskii
2020-12-22 16:59                             ` Philip K. [this message]
2020-12-22 17:15                               ` Eli Zaretskii
2020-12-22  5:20               ` Richard Stallman
2020-12-22  6:42                 ` Arthur Miller
2020-12-22 10:49                 ` Philip K.
2020-12-22 12:03                   ` Jean Louis
2020-12-22 13:23                     ` Philip K.
2020-12-23  4:26                       ` Richard Stallman
2020-12-22 13:04                   ` Arthur Miller
2020-12-23  4:26                     ` Richard Stallman
2020-12-23 11:27                       ` Arthur Miller
2020-12-24  5:51                         ` Richard Stallman
2020-12-24 12:59                           ` Arthur Miller
2020-12-25  4:41                             ` Richard Stallman
2020-12-20 14:18         ` How to contribute new package to GNU ELPA? Stefan Monnier
2020-12-21 14:03           ` stardiviner
2020-12-26  9:09           ` stardiviner
2020-12-26 15:21             ` dick.r.chiang
2020-12-26 20:24               ` Adam Porter
2020-12-26 20:39                 ` Stefan Monnier

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=87mty5g4k8.fsf@posteo.net \
    --to=philipk@posteo.net \
    --cc=adam@alphapapa.net \
    --cc=arthur.miller@live.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rms@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).