Sha256: 52153e0658da60c7c2757b08b79572895ef769badbd7b43975d46ec2f192160c
Contents?: true
Size: 1.78 KB
Versions: 3
Compression:
Stored size: 1.78 KB
Contents
# frozen_string_literal: true $LOAD_PATH.push File.expand_path('../lib', __dir__) require 'benchmark' require 'xmlhasher' begin require 'nori' rescue LoadError puts "nori gem in not installed, run 'gem install nori'" end begin require 'active_support/core_ext/hash/conversions' rescue LoadError puts "active_support gem in not installed, run 'gem install activesupport'" end begin require 'xmlsimple' rescue LoadError puts "xmlsimple gem in not installed, run 'gem install xml-simple'" end begin require 'nokogiri' rescue LoadError puts "nokogiri gem in not installed, run 'gem install nokogiri'" end begin require 'libxml' rescue LoadError puts "libxml gem in not installed, run 'gem install libxml-ruby'" end def benchmark(runs, xml) label_width = 25 # needs to be >= any label's size Benchmark.bm(label_width) do |x| ActiveSupport::XmlMini.backend = ActiveSupport::XmlMini_REXML x.report 'activesupport(rexml)' do runs.times { Hash.from_xml(xml) } end ActiveSupport::XmlMini.backend = 'LibXML' x.report 'activesupport(libxml)' do runs.times { Hash.from_xml(xml) } end ActiveSupport::XmlMini.backend = 'Nokogiri' x.report 'activesupport(nokogiri)' do runs.times { Hash.from_xml(xml) } end x.report 'xmlsimple' do runs.times { XmlSimple.xml_in(xml) } end x.report 'nori' do runs.times { Nori.new(advanced_typecasting: false).parse(xml) } end x.report 'xmlhasher' do runs.times { XmlHasher.parse(xml) } end end end puts 'Converting small xml from text to Hash:' benchmark(100, File.read(File.expand_path('../test/fixtures/institution.xml', __dir__))) puts 'Converting large xml from file to Hash:' benchmark(5, File.read(File.expand_path('../test/fixtures/institutions.xml', __dir__))) puts
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
xmlhasher-1.0.7 | benchmark/benchmark.rb |
xmlhasher-1.0.6 | benchmark/benchmark.rb |
xmlhasher-1.0.5 | benchmark/benchmark.rb |