Sha256: 9218b733ba506a8895944fa77abd929421e96ef3befd4a6072bd8faffb1b4223

Contents?: true

Size: 787 Bytes

Versions: 10

Compression:

Stored size: 787 Bytes

Contents

require 'benchmark/ips'
require 'tty-reader'

input = StringIO.new("abc\n")
output = StringIO.new
$stdin = input
reader = TTY::Reader.new(input, output)

Benchmark.ips do |x|
  x.report('gets') do
    input.rewind
    $stdin.gets
  end

  x.report('read_line') do
    input.rewind
    reader.read_line
  end

  x.compare!
end

# v0.1.0
#
# Calculating -------------------------------------
#                 gets     51729 i/100ms
#            read_line       164 i/100ms
# -------------------------------------------------
#                 gets  1955255.2 (±3.7%) i/s -    9776781 in   5.008004s
#            read_line     1215.1 (±33.1%) i/s -       5248 in   5.066569s
#
# Comparison:
#                 gets:  1955255.2 i/s
#            read_line:     1215.1 i/s - 1609.19x slower

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
pokedex-terminal-0.2.8 vendor/bundle/ruby/2.7.0/gems/tty-reader-0.7.0/benchmarks/speed_read_line.rb
pokedex-terminal-0.2.7 vendor/bundle/ruby/2.7.0/gems/tty-reader-0.7.0/benchmarks/speed_read_line.rb
pokedex-terminal-0.2.6 vendor/bundle/ruby/2.7.0/gems/tty-reader-0.7.0/benchmarks/speed_read_line.rb
pokedex-terminal-0.2.5 vendor/bundle/ruby/2.7.0/gems/tty-reader-0.7.0/benchmarks/speed_read_line.rb
pokedex-terminal-0.2.4 vendor/bundle/ruby/2.7.0/gems/tty-reader-0.7.0/benchmarks/speed_read_line.rb
tty-reader-0.7.0 benchmarks/speed_read_line.rb
tty-reader-0.6.0 benchmarks/speed_read_line.rb
tty-reader-0.5.0 benchmarks/speed_read_line.rb
tty-reader-0.3.0 benchmarks/speed_read_line.rb
tty-reader-0.2.0 benchmarks/speed_read_line.rb