curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

Re: Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LARGE in 8.4.0

From: Timothe Litt <>
Date: Fri, 1 Dec 2023 04:56:13 -0500

On 01-Dec-23 02:32, Dmitry Karpov via curl-library wrote:
> In my tests, I downloaded a 5 MB file from some local network server using different network speeds.
> The test client was running on Windows (mentioning it, just in case).

Random thought.  Symptoms sound like different buffering.  5MB isn't all
that big, what with all the buffering and today's network speeds.  To
get some clues: (a) is the deviation sensitive to file size?  e.g., same
deviation with 50MB?  (b) do you see the same deviations from a Linux
client? - if so, does strace show different setsockopt calls, perhaps
setting buffer sizes?  (c) Are you using the CURLOPT_WRITEFUNCTION?  If
so, is it getting the same 'nmemb' values?  (if not, you can add one
that does an fwrite() & log the nmemb values...)  (d) If you enable
VERBOSE and  DEBUGFUNCTION and log to a (preallocated to minimize
timing) memory buffer and print at exit, and the deviations don't go
away: what's different in the log? (e) Does the actual elapsed time
(measured by the OS/application) differ significantly?  If so, it's not
a timing measurement issue; rather it's a performance issue.

In all the above "different" means between libcurl versions.

Timothe Litt
ACM Distinguished Engineer
This communication may not represent the ACM or my employer's views,
if any, on the matters discussed.

Received on 2023-12-01