summaryrefslogtreecommitdiff
path: root/benchmarks/parser2_benchmark.rb
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/parser2_benchmark.rb')
-rwxr-xr-xbenchmarks/parser2_benchmark.rb251
1 files changed, 0 insertions, 251 deletions
diff --git a/benchmarks/parser2_benchmark.rb b/benchmarks/parser2_benchmark.rb
deleted file mode 100755
index 8798660..0000000
--- a/benchmarks/parser2_benchmark.rb
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/usr/bin/env ruby
-# CODING: UTF-8
-
-require 'rbconfig'
-RUBY_PATH=File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])
-RAKE_PATH=File.join(Config::CONFIG['bindir'], 'rake')
-require 'bullshit'
-case ARGV.first
-when 'ext'
- require 'json/ext'
-when 'pure'
- require 'json/pure'
-when 'yaml'
- require 'yaml'
- require 'json/pure'
-when 'rails'
- require 'active_support'
- require 'json/pure'
-when 'yajl'
- require 'yajl'
- require 'json/pure'
-else
- require 'json/pure'
-end
-
-module Parser2BenchmarkCommon
- include JSON
-
- def setup
- @big = @json = File.read(File.join(File.dirname(__FILE__), 'ohai.json'))
- end
-
- def generic_reset_method
- @result == @big or raise "not equal"
- end
-end
-
-class Parser2BenchmarkExt < Bullshit::RepeatCase
- include Parser2BenchmarkCommon
-
- warmup yes
- iterations 2000
-
- truncate_data do
- enabled false
- alpha_level 0.05
- window_size 50
- slope_angle 0.1
- end
-
- autocorrelation do
- alpha_level 0.05
- max_lags 50
- file yes
- end
-
- output_dir File.join(File.dirname(__FILE__), 'data')
- output_filename benchmark_name + '.log'
- data_file yes
- histogram yes
-
- def benchmark_parser
- @result = JSON.parse(@json)
- end
-
- alias reset_parser generic_reset_method
-
- def benchmark_parser_symbolic
- @result = JSON.parse(@json, :symbolize_names => true)
- end
-
- alias reset_parser_symbolc generic_reset_method
-end
-
-class Parser2BenchmarkPure < Bullshit::RepeatCase
- include Parser2BenchmarkCommon
-
- warmup yes
- iterations 400
-
- truncate_data do
- enabled false
- alpha_level 0.05
- window_size 50
- slope_angle 0.1
- end
-
- autocorrelation do
- alpha_level 0.05
- max_lags 50
- file yes
- end
-
- output_dir File.join(File.dirname(__FILE__), 'data')
- output_filename benchmark_name + '.log'
- data_file yes
- histogram yes
-
- def benchmark_parser
- @result = JSON.parse(@json)
- end
-
- alias reset_parser generic_reset_method
-
- def benchmark_parser_symbolic
- @result = JSON.parse(@json, :symbolize_names => true)
- end
-
- alias reset_parser_symbolc generic_reset_method
-end
-
-class Parser2BenchmarkYAML < Bullshit::RepeatCase
- warmup yes
- iterations 400
-
- truncate_data do
- enabled false
- alpha_level 0.05
- window_size 50
- slope_angle 0.1
- end
-
- autocorrelation do
- alpha_level 0.05
- max_lags 50
- file yes
- end
-
- output_dir File.join(File.dirname(__FILE__), 'data')
- output_filename benchmark_name + '.log'
- data_file yes
- histogram yes
-
- def setup
- @big = @json = File.read(File.join(File.dirname(__FILE__), 'ohai.json'))
- end
-
- def benchmark_parser
- @result = YAML.load(@json)
- end
-
- def generic_reset_method
- @result == @big or raise "not equal"
- end
-end
-
-class Parser2BenchmarkRails < Bullshit::RepeatCase
- warmup yes
- iterations 400
-
- truncate_data do
- alpha_level 0.05
- window_size 50
- slope_angle 0.1
- end
-
- autocorrelation do
- alpha_level 0.05
- max_lags 50
- file yes
- end
-
- output_dir File.join(File.dirname(__FILE__), 'data')
- output_filename benchmark_name + '.log'
- data_file yes
- histogram yes
-
- def setup
- a = [ nil, false, true, "fÖß\nÄr", [ "n€st€d", true ], { "fooß" => "bär", "qu\r\nux" => true } ]
- @big = a * 100
- @json = JSON.generate(@big)
- end
-
- def benchmark_parser
- @result = ActiveSupport::JSON.decode(@json)
- end
-
- def generic_reset_method
- @result == @big or raise "not equal"
- end
-end
-
-class Parser2BenchmarkYajl < Bullshit::RepeatCase
- warmup yes
- iterations 2000
-
- truncate_data do
- alpha_level 0.05
- window_size 50
- slope_angle 0.1
- end
-
- autocorrelation do
- alpha_level 0.05
- max_lags 50
- file yes
- end
-
- output_dir File.join(File.dirname(__FILE__), 'data')
- output_filename benchmark_name + '.log'
- data_file yes
- histogram yes
-
- def setup
- @big = @json = File.read(File.join(File.dirname(__FILE__), 'ohai.json'))
- end
-
- def benchmark_parser
- @result = Yajl::Parser.new.parse(@json)
- end
-
- def generic_reset_method
- @result == @big or raise "not equal"
- end
-end
-
-if $0 == __FILE__
- Bullshit::Case.autorun false
-
- case ARGV.first
- when 'ext'
- Parser2BenchmarkExt.run
- when 'pure'
- Parser2BenchmarkPure.run
- when 'yaml'
- Parser2BenchmarkYAML.run
- when 'rails'
- Parser2BenchmarkRails.run
- when 'yajl'
- Parser2BenchmarkYajl.run
- else
- system "#{RAKE_PATH} clean"
- system "#{RUBY_PATH} #$0 yaml"
- system "#{RUBY_PATH} #$0 rails"
- system "#{RUBY_PATH} #$0 pure"
- system "#{RAKE_PATH} compile"
- system "#{RUBY_PATH} #$0 ext"
- system "#{RUBY_PATH} #$0 yajl"
- Bullshit.compare do
- output_filename File.join(File.dirname(__FILE__), 'data', 'Parser2BenchmarkComparison.log')
-
- benchmark Parser2BenchmarkExt, :parser, :load => yes
- benchmark Parser2BenchmarkExt, :parser_symbolic, :load => yes
- benchmark Parser2BenchmarkPure, :parser, :load => yes
- benchmark Parser2BenchmarkPure, :parser_symbolic, :load => yes
- benchmark Parser2BenchmarkYAML, :parser, :load => yes
- benchmark Parser2BenchmarkRails, :parser, :load => yes
- benchmark Parser2BenchmarkYajl, :parser, :load => yes
- end
- end
-end