65c08e1090
Update bundled drivers to version 1.2.4.
140 lines
2.8 KiB
Ruby
140 lines
2.8 KiB
Ruby
require 'benchmark'
|
|
|
|
N = 1000
|
|
|
|
$VERBOSE=nil
|
|
|
|
puts "file require"
|
|
Benchmark.bm( 7 ) do |x|
|
|
x.report('sqlite') do
|
|
N.times do
|
|
$".delete_if { |i| i =~ /sqlite/ }
|
|
require 'sqlite'
|
|
end
|
|
end
|
|
x.report('sqlite3') do
|
|
N.times do
|
|
$".delete_if { |i| i =~ /sqlite3/ }
|
|
require 'sqlite3'
|
|
end
|
|
end
|
|
end
|
|
|
|
puts
|
|
puts "database creation..."
|
|
Benchmark.bm( 7 ) do |x|
|
|
x.report('sqlite') do
|
|
N.times do
|
|
File.delete "test.db" rescue nil
|
|
SQLite::Database.open( "test.db" ).close
|
|
end
|
|
end
|
|
x.report('sqlite3') do
|
|
N.times do
|
|
File.delete "test.db" rescue nil
|
|
SQLite3::Database.open( "test.db" ).close
|
|
end
|
|
end
|
|
end
|
|
File.delete "test.db" rescue nil
|
|
|
|
SQLite::Database.open( "test.db" ).close
|
|
SQLite3::Database.open( "test3.db" ).close
|
|
|
|
puts
|
|
puts "database open..."
|
|
Benchmark.bm( 7 ) do |x|
|
|
x.report('sqlite') do
|
|
N.times do
|
|
SQLite::Database.open( "test.db" ).close
|
|
end
|
|
end
|
|
x.report('sqlite3') do
|
|
N.times do
|
|
SQLite3::Database.open( "test3.db" ).close
|
|
end
|
|
end
|
|
end
|
|
File.delete "test.db" rescue nil
|
|
File.delete "test3.db" rescue nil
|
|
|
|
db = SQLite::Database.open( "test.db" )
|
|
db3 = SQLite3::Database.open( "test3.db" )
|
|
|
|
db.execute "create table foo (a,b)"
|
|
db3.execute "create table foo (a,b)"
|
|
|
|
puts
|
|
puts "insertions"
|
|
Benchmark.bm( 7 ) do |x|
|
|
x.report('sqlite') do
|
|
db.transaction do
|
|
N.times do |i|
|
|
db.execute "insert into foo values (#{i}, #{i+1})"
|
|
end
|
|
end
|
|
end
|
|
x.report('sqlite3') do
|
|
db3.transaction do
|
|
N.times do |i|
|
|
db3.execute "insert into foo values (#{i}, #{i+1})"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
puts
|
|
puts "insertions using prepared statement"
|
|
Benchmark.bm( 7 ) do |x|
|
|
x.report('sqlite') do
|
|
db.transaction do
|
|
stmt = db.prepare "insert into foo values (?,?)"
|
|
N.times { |i| stmt.execute i, i+1 }
|
|
end
|
|
end
|
|
x.report('sqlite3') do
|
|
db3.transaction do
|
|
db3.prepare( "insert into foo values (?,?)" ) do |stmt|
|
|
N.times { |i| stmt.execute i, i+1 }
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
db.close
|
|
db3.close
|
|
File.delete "test.db" rescue nil
|
|
File.delete "test3.db" rescue nil
|
|
|
|
db = SQLite::Database.open( "test.db" )
|
|
db3 = SQLite3::Database.open( "test3.db" )
|
|
|
|
db.execute "create table foo (a,b)"
|
|
db.execute "insert into foo values (1,2)"
|
|
db.execute "insert into foo values (3,4)"
|
|
db.execute "insert into foo values (5,6)"
|
|
|
|
db3.execute "create table foo (a,b)"
|
|
db3.execute "insert into foo values (1,2)"
|
|
db3.execute "insert into foo values (3,4)"
|
|
db3.execute "insert into foo values (5,6)"
|
|
|
|
puts
|
|
puts "queries"
|
|
Benchmark.bm( 7 ) do |x|
|
|
x.report('sqlite') do
|
|
N.times do
|
|
db.execute "select * from foo"
|
|
end
|
|
end
|
|
x.report('sqlite3') do
|
|
N.times do
|
|
db3.execute "select * from foo"
|
|
end
|
|
end
|
|
end
|
|
|
|
db.close
|
|
db3.close
|
|
File.delete "test.db" rescue nil
|
|
File.delete "test3.db" rescue nil
|