Sha256: c5119d588c9804fa414a92f40a7311df4608e75df8b352e025cb4996e954b5f0

Contents?: true

Size: 670 Bytes

Versions: 3

Compression:

Stored size: 670 Bytes

Contents

# frozen_string_literal: true

require 'bundler/setup'
require 'polyphony'

X = 1_000_000

GC.disable

STDOUT << 'Fiber.yield:      '
f = Fiber.new do
  loop { Fiber.yield }
end
t0 = Time.now
X.times { f.resume }
dt = Time.now - t0
puts format('%d/s', (X / dt))

STDOUT << 'Fiber.transfer:   '
main = Fiber.current
f = Fiber.new do
  loop { main.transfer }
end
t0 = Time.now
X.times { f.transfer }
dt = Time.now - t0
puts format('%d/s', (X / dt))

STDOUT << 'Kernel#snooze:    '
t0 = Time.now
X.times { snooze }
dt = Time.now - t0
puts format('%d/s', (X / dt))

STDOUT << 'Kernel#sleep:     '
t0 = Time.now
X.times { sleep(0) }
dt = Time.now - t0
puts "%d/s" % (X / dt)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
polyphony-0.26 examples/performance/snooze.rb
polyphony-0.25 examples/performance/snooze.rb
polyphony-0.24 examples/performance/snooze.rb