Sha256: ba6f2f0e0de8197802b9cbadf4a40bca1a3401f30442ff28063cb9986daba594

Contents?: true

Size: 544 Bytes

Versions: 3

Compression:

Stored size: 544 Bytes

Contents

require_relative "../lib/zscan"
require "benchmark"

spec = ZScan.binary_spec do
  int8
  double_le 2
  single_be
end

arr = [1, 1.1, 1.2, 1.3]
str = arr.pack 'cE2g'
z = Zscan.new str.b

puts 'reference nop group'
puts Benchmark.measure{ 100000.times{ z.pos = 0 } }
puts 'ZScan#unpack'
puts Benchmark.measure{ 100000.times{ z.pos = 0; z.unpack 'cE2g' } }
puts 'ZScan#scan_binary'
puts Benchmark.measure{ 100000.times{ z.pos = 0; z.scan_binary spec } }
puts 'String#unpack'
puts Benchmark.measure{ 100000.times{ z.pos = 0; str.unpack 'cE2g' } }

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
zscan-1.3 benchmark/vs-unpack.rb
zscan-1.2 benchmark/vs-unpack.rb
zscan-1.1 benchmark/vs-unpack.rb