Sha256: 840c2a6d51d825e47cd689bd1c914d0e1798e3004b84a1a18eaa896b993c1dd6
Contents?: true
Size: 1.52 KB
Versions: 5
Compression:
Stored size: 1.52 KB
Contents
require 'benchmark' require 'net/http' require 'eventmachine' require 'em-http' require 'active_support/all' { :test => :a }.to_json n = 1_000 uri = URI("http://localhost:3000/") Benchmark.bm do |benchmark| benchmark.report "single start block" do Net::HTTP.start(uri.host, uri.port) do |http| 0.upto(n) do request = Net::HTTP::Get.new(uri.request_uri) response = http.request(request) end end end benchmark.report "straight http object" do Net::HTTP.start(uri.host, uri.port) do |http| 0.upto(n) do http.get(uri.request_uri) end end end benchmark.report "new start block" do 0.upto(n) do Net::HTTP.start(uri.host, uri.port) do |http| request = Net::HTTP::Get.new(uri.request_uri) response = http.request(request) end end end class EventMachineLoop def initialize loops @total_loops, @loops = loops, 0 end def request! http = EventMachine::HttpRequest.new('http://localhost:3000').get http.callback { |http| @loops += 1 http.response all_requests_done? ? EM.stop : request! } http.errback { |http| puts "EventMachine Request Error: #{http.error} #{http.inspect}" EM.stop } end def all_requests_done? @loops >= @total_loops end end benchmark.report "em sync" do looper = EventMachineLoop.new(n) EventMachine.run { looper.request! } end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
bigbench-0.0.6 | dev/net_http.rb |
bigbench-0.0.5 | dev/net_http.rb |
bigbench-0.0.4 | dev/net_http.rb |
bigbench-0.0.3 | dev/net_http.rb |
bigbench-0.0.2 | dev/net_http.rb |