Sha256: fa838c0790b2dd928f99c6494282ba8416057755e1bde9bbe09274a9ebe90e3f

Contents?: true

Size: 1.1 KB

Versions: 47

Compression:

Stored size: 1.1 KB

Contents

SERVERS = {
  polyphony: {
    port: 1234,
    cmd: 'ruby examples/performance/thread-vs-fiber/polyphony_server.rb'
  },
  threaded: {
    port: 1235,
    cmd: 'ruby examples/performance/thread-vs-fiber/threaded_server.rb'
  },
  em: {
    port: 1236,
    cmd: 'ruby examples/performance/thread-vs-fiber/em_server.rb'
  }
}
SETTINGS = [
  '-t1 -c1',
  '-t4 -c8',
  '-t8 -c64',
  '-t16 -c512',
  '-t32 -c4096',
  '-t64 -c8192',
  '-t128 -c16384',
  '-t256 -c32768'
]

def run_test(name, port, cmd, setting)
  puts "*" * 80
  puts "Run #{name} (#{port}): #{setting}"
  puts "*" * 80

  pid = spawn("#{cmd} > /dev/null 2>&1")
  sleep 1

  output = `wrk -d60 #{setting} \"http://127.0.0.1:#{port}/\"`
  puts output
  (output =~ /Requests\/sec:\s+(\d+)/) && $1.to_i
ensure
  Process.kill('KILL', pid)
  Process.wait(pid)
  3.times { puts }
end

def perform_benchmark
  results = []
  SETTINGS.each do |s|
    results << SERVERS.inject({}) do |h, (n, o)|
      h[n] = run_test(n, o[:port], o[:cmd], s)
      h
    end
  end
  results
end

results = []
3.times { results << perform_benchmark }

require 'pp'
puts "results:"
pp results

Version data entries

47 entries across 47 versions & 1 rubygems

Version Path
polyphony-1.6 examples/performance/thread-vs-fiber/compare.rb
polyphony-1.5 examples/performance/thread-vs-fiber/compare.rb
polyphony-1.4 examples/performance/thread-vs-fiber/compare.rb
polyphony-1.3 examples/performance/thread-vs-fiber/compare.rb
polyphony-1.2.1 examples/performance/thread-vs-fiber/compare.rb
polyphony-1.2 examples/performance/thread-vs-fiber/compare.rb
polyphony-1.1.1 examples/performance/thread-vs-fiber/compare.rb
polyphony-1.1 examples/performance/thread-vs-fiber/compare.rb
polyphony-1.0.2 examples/performance/thread-vs-fiber/compare.rb
polyphony-1.0.1 examples/performance/thread-vs-fiber/compare.rb
polyphony-1.0 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.99.6 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.99.5 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.99.4 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.99.3 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.99.2 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.99.1 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.99 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.98 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.97 examples/performance/thread-vs-fiber/compare.rb