summaryrefslogtreecommitdiff
path: root/benchmark/io_pipe_rw.yml
blob: cd9e6c3826faa59e85edc48bf79f0b49909d6ee0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
prelude: |
  # Measure uncontended GVL performance via read/write with 1:1 threading
  # If we switch to M:N threading, this will benchmark something else...
benchmark:
  io_pipe_rw: |
    r, w = IO.pipe
    src = '0'.freeze
    dst = String.new
    i = 0
    while i < 1_000_000
      i += 1
      w.write(src)
      r.read(1, dst)
    end
    w.close
    r.close
loop_count: 1