diff options
Diffstat (limited to 'benchmarks/parser2_benchmark.rb')
-rwxr-xr-x | benchmarks/parser2_benchmark.rb | 251 |
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 |