curl-library
Re: CURLOPT_READFUNCTION performance issue
Date: Fri, 26 Jul 2013 23:53:49 +0200 (CEST)
On Thu, 25 Jul 2013, Daniel Stenberg wrote:
> However, at line 75 we can see the second HTTP response being received 36817
> microseconds after the data was sent! Going down the log we can see that all
> subsequent responses show this exessive time.
...
> I can also confirm these numbers when stracing the problematic version. Now
> I'm diving into why this is happening and what I can do about it...
Using strace -T, I can also see that the poll() call actually takes that long:
23:58:38.816031 poll([{fd=3, events=POLLIN}], 1, 1002) = 1 ([{fd=3,
revents=POLLIN}]) <0.037972>
...
23:58:38.855623 poll([{fd=3, events=POLLIN}], 1, 1002) = 1 ([{fd=3,
revents=POLLIN}]) <0.038399>
...
23:58:38.896152 poll([{fd=3, events=POLLIN}], 1, 1002) = 1 ([{fd=3,
revents=POLLIN}]) <0.037898>
etc - the time there in <brackets> is in seconds.
(this particular log says 1002 instead of 1000 simply because I changed a few
occurances of 1000 to better detect exactly which 1000 use that takes this
long)
In the current code, this slow poll is the one called from within
curl_multi_wait() which in turn is used from within curl_easy_perform().
Next on my agenda is to wireshark and see if I can detect on the network why
the poll takes such a long time in this situation.
-- / daniel.haxx.se ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.htmlReceived on 2013-07-26