Sha256: 7e14e1be32f34f67a16a766f2b1337e7a26bf5b1229213c52542611f274e7b8a

Contents?: true

Size: 1.1 KB

Versions: 37

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

37 entries across 37 versions & 1 rubygems

Version Path
polyphony-0.71 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.70 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.69 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.68 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.67 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.66 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.65 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.64 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.63 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.62 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.61 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.60 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.59.1 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.59 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.58 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.57.0 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.56.0 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.55.0 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.54.0 examples/performance/thread-vs-fiber/compare.rb
polyphony-0.53.2 examples/performance/thread-vs-fiber/compare.rb