aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/fixtures/naked
diff options
context:
space:
mode:
authorGuo Xiang Tan <tgx_world@hotmail.com>2015-07-15 22:00:36 +0800
committerGuo Xiang Tan <tgx_world@hotmail.com>2015-07-16 01:02:15 +0800
commitbeb07fbfae845d20323a9863c7216c6b63aff9c7 (patch)
treeca37bca185b119ec2137632a38dd91aea107f249 /activerecord/test/fixtures/naked
parent794252d70990162d14da17ee854ad353e74297ee (diff)
downloadrails-beb07fbfae845d20323a9863c7216c6b63aff9c7.tar.gz
rails-beb07fbfae845d20323a9863c7216c6b63aff9c7.tar.bz2
rails-beb07fbfae845d20323a9863c7216c6b63aff9c7.zip
Revert "Revert "Reduce allocations when running AR callbacks.""
This reverts commit bdc1d329d4eea823d07cf010064bd19c07099ff3. Before: Calculating ------------------------------------- 22.000 i/100ms ------------------------------------------------- 229.700 (± 0.4%) i/s - 1.166k Total Allocated Object: 9939 After: Calculating ------------------------------------- 24.000 i/100ms ------------------------------------------------- 246.443 (± 0.8%) i/s - 1.248k Total Allocated Object: 7939 ``` begin require 'bundler/inline' rescue LoadError => e $stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler' raise e end gemfile(true) do source 'https://rubygems.org' # gem 'rails', github: 'rails/rails', ref: 'bdc1d329d4eea823d07cf010064bd19c07099ff3' gem 'rails', github: 'rails/rails', ref: 'd2876141d08341ec67cf6a11a073d1acfb920de7' gem 'arel', github: 'rails/arel' gem 'sqlite3' gem 'benchmark-ips' end require 'active_record' require 'benchmark/ips' ActiveRecord::Base.establish_connection('sqlite3::memory:') ActiveRecord::Migration.verbose = false ActiveRecord::Schema.define do create_table :users, force: true do |t| t.string :name, :email t.boolean :admin t.timestamps null: false end end class User < ActiveRecord::Base default_scope { where(admin: true) } end admin = true 1000.times do attributes = { name: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", email: "foobar@email.com", admin: admin } User.create!(attributes) admin = !admin end GC.disable Benchmark.ips(5, 3) do |x| x.report { User.all.to_a } end key = if RUBY_VERSION < '2.2' :total_allocated_object else :total_allocated_objects end before = GC.stat[key] User.all.to_a after = GC.stat[key] puts "Total Allocated Object: #{after - before}" ```
Diffstat (limited to 'activerecord/test/fixtures/naked')
0 files changed, 0 insertions, 0 deletions