Hi Daniel,

On Thu, 18 Sep 2014, Daniel Stenberg wrote:

> On Thu, 18 Sep 2014, Pashupati Kumar wrote:
> 
> > I am new to libcurI and still learning my ways around it. I have few
> > questions on it. I discovered that user needs to copy the data in
> > write call-back function and also the way our application behave, it
> > will end up doing copy during read call back function as well. This
> > will be a big draw-back as the application is data intensive.
> 
> Will it really? Some people have claimed this over the years but I've never 
> seen
> any real numbers proving this. On the contrary I think this is a common belief
> and suspicion that rarely actually turns out to be an actual problem.
> 
> Have you measured how much CPU - in your case - that would be "wasted" on
> this extra copy? Or perhaps if that waste even makes a difference to the total
> performance of your application.
> 
I have not measured CPU required to perform copy operation. I understand that 
impact to application due to additional copy would depend on the nature of 
application. A telnet kind application wouldn't see impact whereas FTP probably 
would. To give you further background on the application. It needs to work with 
Cloud (private/public) object storage. So, here the comparison would be against 
protocols such as NFS (File) and iSCSI (Block), which is traditionally used for 
storage traffic. 
I came across this paper on memcpy performance. It tells me that a CORE running 
at 733 MHZ can do 400 MB per second.  
http://www.embedded.com/design/configurable-systems/4024961/Optimizing-Memcpy-improves-speed

Please keep in mind that there would be another copy involved in Kernel ( from 
user data to Socket sk_buf). Are people using CURL library for storage traffic? 
If not, what is recommended library for doing so.

> > I came across an old mail thread on avoiding copy for
> CURLOPT_WRITEFUNCTION.
> > I don't know what was the final outcome of it.
> 
> We discuss this topic every once in a while and it always ends up getting
> burried again when the work to implement something like this ends up being
> more than the gains in having the feature. But maybe it is different this 
> time?
> 
> > For read callback function, application data is available in scatter
> > list of buffers. This brings me to my next question. Can libcurl use
> > scatter-gather buffers?
> 
> No.
> 
Has this been considered before? Since Socket layer provide iovec based 
interface, will it be a huge change in the CURL library to expose it all the 
way to user?

> --
> 
>   / daniel.haxx.se
> -------------------------------------------------------------------
> List admin: http://cool.haxx.se/list/listinfo/curl-library
> Etiquette:  http://curl.haxx.se/mail/etiquette.html


-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to