I can't speak to the speed of any curl library, but I can cite my  
recent experience building a crawler like app. I'm using non-blocking  
sockets and therefore can't utilize Net::HTTP and am hand-coding HTTP  
directly. Under OS X I found a lot of latency (around 100ms) for both  
IPSocket.getaddress() and Socket.sockaddr_in(). Under Linux packing  
sockaddr seems to incur a negligible cost. Under OS X I pack the  
sockaddr manually (yeah, it's gross). To mitigate the host lookup  
cost I maintain a cache (Hashmap) of host => IP. (At least under OS  
X, even resolving localhost takes 100ms, even on repeat calls.)

The point being that I would assume that Net::HTTP inherits the costs  
of these two calls. Which would explain at least some of the  
connection slowness. As for download speed, I could only make  
guesses, and they'd be pretty uneducated. I would suspect C has  
better I/O performance than Ruby, so a native library would probably  
be faster.

Corey


On Aug 22, 2006, at 8:17 PM, Ben Johnson wrote:

> I've found a couple of packages that claim to integrate the curl  
> library
> into ruby. Which one is the standard library?
>
> Also the reason I am asking is because I did some tests and came to  
> find
> out that curl is quite a bit faster than the HTTP library. Is this  
> true,
> maybe my tests were distorted, but curl seemed to be quite a bit  
> faster
> in initializing the connection and downloading.
>
> Would it be smart of me to switch from Net::HTTP to curl? Because a
> tenth of a second is precious in my application.
>
> Thanks for your help.
>
> -- 
> Posted via http://www.ruby-forum.com/.
>