Diff
Copied: trunk/activerecord-jdbc/bench/bench_attributes.rb (from rev 1127, trunk/activerecord-jdbc/bench/bench_find_all.rb) (0 => 1130)
--- trunk/activerecord-jdbc/bench/bench_attributes.rb (rev 0)
+++ trunk/activerecord-jdbc/bench/bench_attributes.rb 2008-08-29 18:24:56 UTC (rev 1130)
@@ -0,0 +1,13 @@
+require File.dirname(__FILE__) + '/bench_model'
+
+puts "Widget.find(:first).attributes"
+Benchmark.bm do |make|
+ TIMES.times do
+ w = Widget.find(:first)
+ make.report do
+ 10_000.times do
+ w.attributes # rails makes copy for every call
+ end
+ end
+ end
+end
Copied: trunk/activerecord-jdbc/bench/bench_attributes_new.rb (from rev 1127, trunk/activerecord-jdbc/bench/bench_find_all.rb) (0 => 1130)
--- trunk/activerecord-jdbc/bench/bench_attributes_new.rb (rev 0)
+++ trunk/activerecord-jdbc/bench/bench_attributes_new.rb 2008-08-29 18:24:56 UTC (rev 1130)
@@ -0,0 +1,14 @@
+require File.dirname(__FILE__) + '/bench_model'
+
+puts "w = Widget.find(:first); Widget.new(w.attributes)"
+Benchmark.bm do |make|
+ TIMES.times do
+ w = Widget.find(:first)
+ params = w.attributes
+ make.report do
+ 10_000.times do
+ Widget.new(params)
+ end
+ end
+ end
+end
Modified: trunk/activerecord-jdbc/bench/bench_find_all.rb (1129 => 1130)
--- trunk/activerecord-jdbc/bench/bench_find_all.rb 2008-08-29 12:06:56 UTC (rev 1129)
+++ trunk/activerecord-jdbc/bench/bench_find_all.rb 2008-08-29 18:24:56 UTC (rev 1130)
@@ -1,6 +1,6 @@
require File.dirname(__FILE__) + '/bench_model'
-TIMES = (ARGV[0] || 5).to_i
+puts "Widget.find(:all)"
Benchmark.bm do |make|
TIMES.times do
make.report do
Modified: trunk/activerecord-jdbc/bench/bench_find_all_mt.rb (1129 => 1130)
--- trunk/activerecord-jdbc/bench/bench_find_all_mt.rb 2008-08-29 12:06:56 UTC (rev 1129)
+++ trunk/activerecord-jdbc/bench/bench_find_all_mt.rb 2008-08-29 18:24:56 UTC (rev 1130)
@@ -1,6 +1,5 @@
require File.dirname(__FILE__) + '/bench_model'
-TIMES = (ARGV[0] || 5).to_i
Benchmark.bm do |make|
TIMES.times do
make.report do
Modified: trunk/activerecord-jdbc/bench/bench_model.rb (1129 => 1130)
--- trunk/activerecord-jdbc/bench/bench_model.rb 2008-08-29 12:06:56 UTC (rev 1129)
+++ trunk/activerecord-jdbc/bench/bench_model.rb 2008-08-29 18:24:56 UTC (rev 1130)
@@ -1,4 +1,9 @@
=begin
+
+* Use ENV['LOGGER'] (=severe|warn|info|debug) to turn on the logger
+* Pass N as arg 1 to script to set the number of iterations.
+* Add ActiveRecord to load path to use a specific (non-gem version) for testing (e.g., edge).
+
+----------+------+-----+---------+-----------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
@@ -33,8 +38,15 @@
require 'active_record/connection_adapters/jdbcmysql_adapter'
end
-require 'logger'
-ActiveRecord::Base.logger = Logger.new(File.expand_path(File.dirname(__FILE__) + "/debug.log"))
+if ENV['LOGGER']
+ require 'logger'
+ ActiveRecord::Base.logger = Logger.new(File.expand_path(File.dirname(__FILE__) + "/debug.log"))
+ lvl = %(DEBUG INFO WARN ERROR FATAL).detect {|s| s =~ /#{ENV['LOGGER'].upcase}/}
+ ActiveRecord::Base.logger.level = lvl && Logger.const_get(lvl) || Logger::INFO
+else
+ ActiveRecord::Base.logger = Logger.new($stdout)
+ ActiveRecord::Base.logger.level = Logger::UNKNOWN
+end
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
@@ -58,5 +70,8 @@
CreateWidgets.up unless ActiveRecord::Base.connection.tables.include?("widgets")
class Widget < ActiveRecord::Base; end
+Widget.create!(:name => "bench", :description => "Bench record") unless Widget.count > 0
ActiveRecord::Base.clear_active_connections!
+
+TIMES = (ARGV[0] || 5).to_i
Modified: trunk/activerecord-jdbc/bench/bench_new.rb (1129 => 1130)
--- trunk/activerecord-jdbc/bench/bench_new.rb 2008-08-29 12:06:56 UTC (rev 1129)
+++ trunk/activerecord-jdbc/bench/bench_new.rb 2008-08-29 18:24:56 UTC (rev 1130)
@@ -1,9 +1,9 @@
require File.dirname(__FILE__) + '/bench_model'
-TIMES = (ARGV[0] || 5).to_i
-Benchmark.bm(30) do |make|
+puts "Widget.new"
+Benchmark.bm do |make|
TIMES.times do
- make.report("Widget.new") do
+ make.report do
100_000.times do
Widget.new
end
Modified: trunk/activerecord-jdbc/bench/bench_new_valid.rb (1129 => 1130)
--- trunk/activerecord-jdbc/bench/bench_new_valid.rb 2008-08-29 12:06:56 UTC (rev 1129)
+++ trunk/activerecord-jdbc/bench/bench_new_valid.rb 2008-08-29 18:24:56 UTC (rev 1130)
@@ -1,9 +1,9 @@
require File.dirname(__FILE__) + '/bench_model'
-TIMES = (ARGV[0] || 5).to_i
-Benchmark.bm(30) do |make|
+puts "Widget.new.valid?"
+Benchmark.bm do |make|
TIMES.times do
- make.report("Widget.new.valid?") do
+ make.report do
100_000.times do
Widget.new.valid?
end
Modified: trunk/activerecord-jdbc/bench/bench_valid.rb (1129 => 1130)
--- trunk/activerecord-jdbc/bench/bench_valid.rb 2008-08-29 12:06:56 UTC (rev 1129)
+++ trunk/activerecord-jdbc/bench/bench_valid.rb 2008-08-29 18:24:56 UTC (rev 1130)
@@ -1,9 +1,9 @@
require File.dirname(__FILE__) + '/bench_model'
-TIMES = (ARGV[0] || 5).to_i
-Benchmark.bm(30) do |make|
+puts "Widget.new.valid?"
+Benchmark.bm do |make|
TIMES.times do
- make.report("Widget.new.valid?") do
+ make.report do
widget = Widget.new
100_000.times do
widget.valid?