cURL
Haxx ad
libcurl

curl's project page on SourceForge.net

Sponsors:
Haxx

cURL > Mailing List > Monthly Index > Single Mail

curl-users list Archives

Re: Progresss Bar performance bug in Windows

From: Doughty, Marc <marc_doughty_at_brown.edu>
Date: Tue, 30 Jul 2013 10:32:15 -0400

When I use --progress-bar I get about 10Mbps and one CPU is pegged.

When I drop --progress-bar I get 100+Mbps (I'm on gigabit, but the server
and network are fairly busy) and the CPU usage is about 'half of a core'.

I'm definitely using the latest version, from
http://curl.haxx.se/gknw.net/7.31.0/dist-w32/curl-7.31.0-rtmp-ssh2-ssl-sspi-zlib-idn-static-bin-w32.zip,
and it seems to be the same in other windows binaries that I've tried.

When I use native calls (System.Net.WebClient) I get performance similar to
cURL without --progress-bar.

- Marc Doughty
"If you aren't sure who is the give-way vessel, you are the give-way
vessel."

On Mon, Jul 29, 2013 at 5:20 PM, Daniel Stenberg <daniel_at_haxx.se> wrote:

> On Mon, 29 Jul 2013, Doughty, Marc wrote:
>
> Greetings,
>> I'm using cURL in a script on Windows 8. The script runs in Powershell
>> and downloads very large files via HTTP. When I set the '--progress-bar'
>> option, I noticed that the download was slow, the CPU usage was very high
>> (one core @ 100%), and that the progress bar itself appeared to be
>> 'flickering' in the console window. Switching to normal operation fixed
>> the
>> problem, but I want my users to see the progress bar and not other
>> download
>> statistics.
>> I'm sure there are plenty of ways to reduce the amount of 'drawing'
>> that's happening. Could the progress bar only update the console when
>> there's enough to 'bump up one step', or possibly at a certain timed
>> interval that would be 'polite' to system resources?
>>
>
> Are you absolutely sure this was with 7.31.0 ? It just *so* sounds like
> the 7.30.0-bug we fixed in commit 0feeab7802dd2a...
>
> But to answer the question: yes, the progress callback should only be
> called when there is data being sent (or at a 1000ms interval), and the
> callback src/tool_cb_prg.c:tool_**progress_cb() has logic that avoids to
> redraw the line if it indeed is the same length as in the previous invoke.
>
> So, I don't know why it flickers nor do I know why it would be called to
> get redrawn too often.
>
> Are you doing extremly fast transfers?
>
> --
>
> / daniel.haxx.se
> ------------------------------**------------------------------**-------
> List admin: http://cool.haxx.se/list/**listinfo/curl-users<http://cool.haxx.se/list/listinfo/curl-users>
> FAQ: http://curl.haxx.se/docs/faq.**html<http://curl.haxx.se/docs/faq.html>
> Etiquette: http://curl.haxx.se/mail/**etiquette.html<http://curl.haxx.se/mail/etiquette.html>
>

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-users
FAQ: http://curl.haxx.se/docs/faq.html
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2013-07-30

These mail archives are generated by hypermail.

donate! Page updated May 06, 2013.
web site info

File upload with ASP.NET