diff options
Diffstat (limited to 'benchmark/fiber_chain.yml')
-rwxr-xr-x | benchmark/fiber_chain.yml | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/benchmark/fiber_chain.yml b/benchmark/fiber_chain.yml new file mode 100755 index 0000000000..e526551da4 --- /dev/null +++ b/benchmark/fiber_chain.yml @@ -0,0 +1,36 @@ +prelude: | + def make_link(previous) + Fiber.new do + while message = previous.resume + Fiber.yield(message) + end + end + end + + def make_chain(length = 1000, &block) + chain = Fiber.new(&block) + + (length - 1).times do + chain = make_link(chain) + end + + return chain + end + + message = "Hello World!" + + chain = make_chain do + while true + Fiber.yield(message) + end + end +benchmark: + make_chain: | + make_chain(100) do + while true + Fiber.yield(message) + end + end + resume_chain: | + chain.resume +loop_count: 5000 |