bench/topic_perf.rb in mini_sql-0.1.5 vs bench/topic_perf.rb in mini_sql-0.1.6

- old
+ new

@@ -166,12 +166,33 @@ s << t[1] end s end -results = [ar_title_id, ar_title_id_pluck, pg_title_id, mini_sql_title_id, sequel_pluck_title_id, sequel_select_title_id] +# usage is not really recommended but just to compare to pluck lets have it +def mini_sql_title_id_query_single + s = +"" + i = 0 + r = $mini_sql.query_single(-"select id, title from topics order by id limit 1000") + while i < r.length + s << r[i].to_s + s << r[i+1] + i += 2 + end + s +end +results = [ + ar_title_id, + ar_title_id_pluck, + pg_title_id, + mini_sql_title_id, + sequel_pluck_title_id, + sequel_select_title_id, + mini_sql_title_id_query_single +] + exit(-1) unless results.uniq.length == 1 def wide_topic_ar Topic.first @@ -239,16 +260,10 @@ while n > 0 sequel_select_title_id n -= 1 end end - r.report("sequel title id pluck") do |n| - while n > 0 - sequel_pluck_title_id - n -= 1 - end - end r.report("pg select title id") do |n| while n > 0 pg_title_id n -= 1 end @@ -257,33 +272,61 @@ while n > 0 mini_sql_title_id n -= 1 end end + r.report("sequel title id pluck") do |n| + while n > 0 + sequel_pluck_title_id + n -= 1 + end + end + r.report("mini_sql query_single title id") do |n| + while n > 0 + mini_sql_title_id_query_single + n -= 1 + end + end r.compare! end # Calculating ------------------------------------- -# ar select title id 144.043 (± 1.4%) i/s - 728.000 in 5.055454s +# wide topic ar 2.383k (± 4.9%) i/s - 12.005k in 5.050490s +# wide topic sequel 3.449k (± 3.2%) i/s - 17.591k in 5.104951s +# wide topic pg 7.345k (± 1.2%) i/s - 37.352k in 5.086015s +# wide topic mini sql 7.536k (± 1.4%) i/s - 38.220k in 5.072834s +# +# Comparison: +# wide topic mini sql: 7535.8 i/s +# wide topic pg: 7345.1 i/s - same-ish: difference falls within error +# wide topic sequel: 3449.4 i/s - 2.18x slower +# wide topic ar: 2382.9 i/s - 3.16x slower +# +# Calculating ------------------------------------- +# ar select title id 131.572 (± 3.8%) i/s - 658.000 in 5.008231s # ar select title id pluck -# 712.818 (± 1.5%) i/s - 3.570k in 5.009412s +# 696.233 (± 3.7%) i/s - 3.519k in 5.061335s # sequel title id select -# 927.011 (± 1.8%) i/s - 4.655k in 5.023228s -# sequel title id pluck -# 1.183k (± 3.2%) i/s - 5.967k in 5.048635s -# pg select title id 1.040k (± 1.4%) i/s - 5.253k in 5.051679s +# 916.841 (± 3.7%) i/s - 4.655k in 5.084499s +# pg select title id 1.002k (± 4.0%) i/s - 5.044k in 5.040584s # mini_sql select title id -# 1.139k (± 2.5%) i/s - 5.712k in 5.016383s +# 1.106k (± 2.4%) i/s - 5.618k in 5.084423s +# sequel title id pluck +# 1.181k (± 3.5%) i/s - 5.980k in 5.069815s +# mini_sql query_single title id +# 1.171k (± 3.1%) i/s - 5.880k in 5.025793s # # Comparison: -# sequel title id pluck: 1183.1 i/s -# mini_sql select title id: 1139.3 i/s - same-ish: difference falls within error -# pg select title id: 1040.1 i/s - 1.14x slower -# sequel title id select: 927.0 i/s - 1.28x slower -# ar select title id pluck: 712.8 i/s - 1.66x slower -# ar select title id: 144.0 i/s - 8.21x slower +# sequel title id pluck: 1181.0 i/s +# mini_sql query_single title id: 1171.1 i/s - same-ish: difference falls within error +# mini_sql select title id: 1105.6 i/s - 1.07x slower +# pg select title id: 1002.2 i/s - 1.18x slower +# sequel title id select: 916.8 i/s - 1.29x slower +# ar select title id pluck: 696.2 i/s - 1.70x slower +# ar select title id: 131.6 i/s - 8.98x slower # + # to run deep analysis run # MemoryProfiler.report do # ar # end.pretty_print