benchmarks/speed.rb in axiom-0.1.0 vs benchmarks/speed.rb in axiom-0.1.1

- old
+ new

@@ -10,35 +10,35 @@ require 'axiom' include Axiom TIMES = 5_000 -header = Relation::Header.new([ [ :id, Integer ], [ :name, String ] ]) -array = (1..100).map { |n| Tuple.new(header, [ n, 'Dan Kubb' ]) } +header = Relation::Header.new([[:id, Integer], [:name, String]]) +array = (1..100).map { |n| Tuple.new(header, [n, 'Dan Kubb']) } relation = Relation.new(header, array) -join = Relation.new([ [ :id, Integer, ], [ :age, Integer ] ], [ [ 1, 35 ] ]) -product = Relation.new([ [ :age, Integer ] ], [ [ 35 ] ]) -ordered = relation.sort_by { |r| [ r.id, r.name ] } +join = Relation.new([[:id, Integer], [:age, Integer]], [[1, 35]]) +product = Relation.new([[:age, Integer]], [[35]]) +ordered = relation.sort_by { |r| [r.id, r.name] } RBench.run(TIMES) do - column :ruby, :title => 'Ruby' - column :axiom, :title => 'Axiom' - column :diff, :title => 'Diff', :compare => [ :ruby, :axiom ] + column :ruby, title: 'Ruby' + column :axiom, title: 'Axiom' + column :diff, title: 'Diff', compare: [:ruby, :axiom] report 'each' do ruby { array.each {} } axiom { relation.each {} } end report 'projection' do - ruby { array.map { |tuple| [ tuple[:id] ] }.each {} } - axiom { relation.project([ :id ]).each {} } + ruby { array.map { |tuple| [tuple[:id]] }.each {} } + axiom { relation.project([:id]).each {} } end report 'removal' do - ruby { array.map { |tuple| [ tuple[:id] ] }.each {} } - axiom { relation.remove([ :name ]).each {} } + ruby { array.map { |tuple| [tuple[:id]] }.each {} } + axiom { relation.remove([:name]).each {} } end report 'restriction' do ruby { array.select { |tuple| tuple[:id] >= 1 }.each {} } axiom { relation.restrict { |r| r.id.gte(1) }.each {} } @@ -67,11 +67,11 @@ ruby { (array - array).each {} } axiom { relation.difference(relation).each {} } end report 'order' do - ruby { array.sort_by { |tuple| [ -tuple[:id], tuple[:name] ] }.each {} } - axiom { relation.sort_by { |r| [ r.id.desc, r.name ] }.each {} } + ruby { array.sort_by { |tuple| [-tuple[:id], tuple[:name]] }.each {} } + axiom { relation.sort_by { |r| [r.id.desc, r.name] }.each {} } end report 'take' do ruby { array.take(1).each {} } axiom { ordered.take(1).each {} }