Sha256: f73be8115ca808ce5323b65d33974eca67c13c539392b59ab5ea1c896e020783

Contents?: true

Size: 643 Bytes

Versions: 2

Compression:

Stored size: 643 Bytes

Contents

#!/usr/bin/env ruby

require 'benchmark/ips'
require 'json'
require 'simdjson'
require 'oj'

files = %w[
  apache_builds.json
  github_events.json
  demo.json
]
files = files.map do |x|
  [x, open(File.join(__dir__, "./#{x}")).read] # rubocop:disable Security/Open (reason: inputs are safe strings)
end
files = files.to_h

def run_report(rep, name, src)
  rep.report("#{name} - simdjson") do
    Simdjson.parse(src)
  end
  rep.report("#{name} - OJ") do
    Oj.load(src)
  end
  rep.report("#{name} - standard JSON") do
    JSON.parse(src)
  end
end

Benchmark.ips do |rep|
  files.each do |name, src|
    run_report(rep, name, src)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
simdjson-0.4.0 benchmark/run_benchmark.rb
simdjson-0.3.0 benchmark/run_benchmark.rb