test/perf_hash.rb in extralite-bundle-2.3 vs test/perf_hash.rb in extralite-bundle-2.4
- old
+ new
@@ -10,19 +10,21 @@
end
require 'benchmark/ips'
require 'fileutils'
-DB_PATH = '/tmp/extralite_sqlite3_perf.db'
+DB_PATH = "/tmp/extralite_sqlite3_perf-#{Time.now.to_i}-#{rand(10000)}.db"
+puts "DB_PATH = #{DB_PATH.inspect}"
def prepare_database(count)
- FileUtils.rm(DB_PATH) rescue nil
db = Extralite::Database.new(DB_PATH)
- db.query('create table foo ( a integer primary key, b text )')
+ db.query('create table if not exists foo ( a integer primary key, b text )')
+ db.query('delete from foo')
db.query('begin')
count.times { db.query('insert into foo (b) values (?)', "hello#{rand(1000)}" )}
db.query('commit')
+ db.close
end
def sqlite3_run(count)
db = SQLite3::Database.new(DB_PATH, :results_as_hash => true)
results = db.execute('select * from foo')
@@ -34,11 +36,11 @@
results = db.query('select * from foo')
raise unless results.size == count
end
[10, 1000, 100000].each do |c|
- puts; puts; puts "Record count: #{c}"
+ puts "Record count: #{c}"
prepare_database(c)
Benchmark.ips do |x|
x.config(:time => 3, :warmup => 1)
@@ -46,6 +48,7 @@
x.report("sqlite3") { sqlite3_run(c) }
x.report("extralite") { extralite_run(c) }
x.compare!
end
+ puts; puts;
end