git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65851 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
samuel 2018-11-20 10:16:34 +00:00
Родитель 3710dedc12
Коммит 20f1c6c185
1 изменённых файлов: 8 добавлений и 18 удалений

Просмотреть файл

@ -1,6 +1,4 @@
#!/usr/bin/env ruby
require 'benchmark'
# Check performance of fiber creation and transfer.
def make_link(previous)
Fiber.new do
@ -22,24 +20,16 @@ end
def run_benchmark(length, repeats, message = :hello)
chain = nil
time = Benchmark.realtime do
chain = make_chain(length) do
while true
Fiber.yield(message)
end
chain = make_chain(length) do
while true
Fiber.yield(message)
end
end
puts "Creating #{fibers} fibers took #{time}..."
time = Benchmark.realtime do
repeats.times do
abort "invalid result" unless chain.resume == message
end
repeats.times do
abort "invalid result" unless chain.resume == message
end
puts "Passing #{repeats} messages took #{time}..."
end
n = (ARGV[0] || 1000).to_i