Net::HTTP.check_response very slow?

I am working on something that uses Net::HTTP to obtain the final url
from a redirected url and, well, it seems really slow. I’m using ruby
1.8.6-p111 and have verified this behavior on OS X, Ubuntu Linux, and
Windows XP.

A sample app is attached and here were my results, comparing the pure
ruby approach to one shelling out to curl…

[email protected]: tmp => time ./url_check.rb

real 0m32.659s
user 0m4.423s
sys 0m3.168s

[email protected]: tmp => time ./url_check.rb --use-curl

real 0m0.754s
user 0m0.030s
sys 0m0.022s

I expected the pure ruby approach to be slower but these results seem
out of line just for a series of http response checks… Any ideas?

Cheers,
Tim

On Sat, Mar 08, 2008 at 01:39:13AM +0900, Tim F. wrote:

real 0m32.659s
user 0m4.423s
sys 0m3.168s

You are doing a full HTTP GET in this request and it is downloading the
mp3.
Try:

response = Net::HTTP.start(‘ia340903.us.archive.org’) do |http|
http.head(’/0/items/gd90-02-26.sbd.shakedown.451.sbeok.shnf/gd90-02-26d3t05_vbr.mp3’)
end

[email protected]: tmp => time ./url_check.rb --use-curl
http://ia340903.us.archive.org/0/items/gd90-02-26.sbd.shakedown.451.sbeok.shnf/gd90-02-26d3t05_vbr.mp3

real 0m0.754s
user 0m0.030s
sys 0m0.022s

You are using curl’s -I option here which odes an HTTP HEAD and only
gets the
headers of the response, and does retrieve the

I expected the pure ruby approach to be slower but these results seem
out of line just for a series of http response checks… Any ideas?

Cheers,
Tim

enjoy,

-jeremy

Jeremy H. wrote:

You are doing a full HTTP GET in this request and it is downloading the
mp3.

Ah! That explains it… :slight_smile:

Thanks much!
Tim