Skip to content

Commit

Permalink
Add a simple JSON.dump and JSON.load benchmark
Browse files Browse the repository at this point in the history
* Restoring benchmarks/ohai.json from dad9fbf.
  • Loading branch information
eregon committed Apr 15, 2024
1 parent 5015a37 commit ce32c3d
Show file tree
Hide file tree
Showing 2 changed files with 1,257 additions and 0 deletions.
41 changes: 41 additions & 0 deletions benchmarks/bench.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
require 'benchmark/ips'

$:.unshift File.expand_path('../ext', __dir__)
$:.unshift File.expand_path('../lib', __dir__)

bench, mode = ARGV

if mode == 'pure'
require 'json/pure'
else
require 'json/ext'
end

bench_dump = bench == 'dump'
if bench_dump
p JSON.generator
else
p JSON.parser
end

str = File.read("#{__dir__}/ohai.json")
obj = JSON.load(str)

Benchmark.ips do |x|
unless RUBY_ENGINE == 'ruby'
x.warmup = 5
x.iterations = 5
end

if bench_dump
x.report('JSON.dump(obj)') do # max_nesting: false, allow_nan: true
JSON.dump(obj)
end
else
x.report('JSON.load(str)') do # max_nesting: false, allow_nan: true, allow_blank: true, create_additions: true
JSON.load(str)
end
end

x.compare!
end

0 comments on commit ce32c3d

Please sign in to comment.