Skip to content

Instantly share code, notes, and snippets.

@amar47shah
Created August 24, 2015 22:09
Show Gist options
  • Save amar47shah/b9d2a00b8a2942b2dc3b to your computer and use it in GitHub Desktop.
Save amar47shah/b9d2a00b8a2942b2dc3b to your computer and use it in GitHub Desktop.
Testing different HTTP libraries locally because RestClient was suddenly very slow -- resolved by disabling IPv6
require 'curb'
require 'faraday'
require 'open-uri'
require 'rest_client'
def time_request
t = Time.now
yield
puts Time.now - t
end
puts 'RestClient::Request.execute - Google'
time_request do
RestClient::Request.execute method: :get,
url: 'http://www.google.com',
verify_ssl: false
end
puts 'RestClient.get - Google'
time_request { RestClient.get 'http://www.google.com' }
puts 'RestClient::Request.execute - ShareProgress'
time_request do
RestClient::Request.execute method: :get,
url: 'http://www.shareprogress.org',
verify_ssl: false
end
puts 'RestClient.get - ShareProgress'
time_request { RestClient.get 'http://www.shareprogress.org' }
puts 'Faraday - Google'
time_request { Faraday.get 'http://www.google.com' }
puts 'Faraday - ShareProgress'
time_request { Faraday.get 'http://www.shareprogress.org' }
puts 'Curb - Google'
time_request { Curl.get 'http://www.google.com' }
puts 'Curb - ShareProgress'
time_request { Curl.get 'http://www.shareprogress.org' }
puts 'OpenURI - Google'
time_request { open 'http://www.google.com' }
puts 'OpenURI - ShareProgress'
time_request { open 'http://www.shareprogress.org' }
=begin
Before OS X 10.10.5 minor update
➜ rest-client-test ruby google.rb
RestClient::Request.execute - Google
75.881678
RestClient.get - Google
76.000461
RestClient::Request.execute - ShareProgress
0.735622
RestClient.get - ShareProgress
0.626592
Faraday - Google
75.876968
Faraday - ShareProgress
2.438925
Curb - Google
0.468604
Curb - ShareProgress
0.539166
OpenURI - Google
75.780801
OpenURI - ShareProgress
37.06483
=end
=begin
After minor OS X update
➜ rest-client-test ruby google.rb
RestClient::Request.execute - Google
76.067128
RestClient.get - Google
75.677644
RestClient::Request.execute - ShareProgress
151.087718
RestClient.get - ShareProgress
226.896379
Faraday - Google
75.301587
Faraday - ShareProgress
151.23906
Curb - Google
0.621641
Curb - ShareProgress
0.8601
OpenURI - Google
75.43544
OpenURI - ShareProgress
151.192143
=end
=begin
After disabling IPv6: `networksetup -setv6off Wi-Fi`
➜ rest-client-test ruby google.rb
RestClient::Request.execute - Google
0.187986
RestClient.get - Google
0.160979
RestClient::Request.execute - ShareProgress
0.672475
RestClient.get - ShareProgress
0.516221
Faraday - Google
0.173817
Faraday - ShareProgress
0.554849
Curb - Google
0.252705
Curb - ShareProgress
0.513942
OpenURI - Google
0.143574
OpenURI - ShareProgress
0.352297
=end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment