summaryrefslogtreecommitdiff
path: root/benchmark/io_select2.yml
blob: 3c8078dc114fc6b5089512f098af3996fa5ee293 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
prelude: |
  # IO.select performance. worst case of single fd.
benchmark:
  io_select2: |

    ios = []
    nr = 1000000
    if defined?(Process::RLIMIT_NOFILE)
      max = Process.getrlimit(Process::RLIMIT_NOFILE)[0]
    else
      max = 64
    end
    puts "max fd: #{max} (results not apparent with <= 1024 max fd)"

    ((max / 2) - 10).times do
      ios.concat IO.pipe
    end

    last = [ ios[-1] ]
    puts "last IO: #{last[0].inspect}"

    nr.times do
      IO.select nil, last
    end
loop_count: 1