cURL / Mailing Lists / curl-users / Single Mail

curl-users

Substantial increase in Curl CPU usage between 7.15.5 - 7.16.0

From: Matt Witherspoon <spoon_at_vt.edu>
Date: Wed, 3 Jan 2007 08:51:20 -0500

I am seeing what appears to be a substantial increase in CPU usage due to a CVS
commit in early September 2006 (now part of 7.16.0).

My average transfer speeds with 7.15.5 and earlier is 4.5MB/sec. With 7.16.0 my
average transfer speed is 3.8MB/sec. Note, this is on a slow embedded processor
where the CPU is the bottleneck -- during these transfers the CPU is at a
constant 100% usage. It looks as though 7.16.0 is using more CPU, thus reducing
transfer rates. I have concentrated on testing FTP, but it appears to have the
same problem on HTTP. I can only test download speeds. The results are easily
reproducible to 100KB/sec accuracy.

I tracked down the offending change in the CVS tree to between the times of:
2006-Sep-07 04:00 (fast transfer speed)
2006-Sep-08 08:00 (slower transfer speed)
As you can see, this is when HTTP pipelining was added. There appear to be other
changes to various socket functions during this time, and I suspect one of them
is causing the CPU usage problem.

It is also quite possible that Curl isn't taking up more CPU, but is using a
different system call resulting in more CPU at the system level.

Since there are quite a few changes between the time frames I have noted above,
I
am having trouble nailing down the exact problem. Does anyone have any ideas or
functions I should look at?

Thanks, Matt
Received on 2007-01-03