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 {} }