Benchmarking:
```
Benchmark.ips do |b|
b.report("simple") do
User.first
end
end
ActiveSupport::Notifications.notifier.listeners_for("sql.active_record").clear
Benchmark.ips do |b|
b.report("simple") do
User.first
end
end
```
```
sam@arch discourse % RAILS_ENV=production ruby script/micro_bench.rb
Before
Calculating -------------------------------------
simple 3.289k (± 4.4%) i/s - 16.575k in 5.049771s
After
Calculating -------------------------------------
simple 3.491k (± 3.6%) i/s - 17.442k in 5.002226s
````
13 lines
452 B
Ruby
13 lines
452 B
Ruby
# frozen_string_literal: true
|
|
|
|
if Rails.env == "production"
|
|
# This event happens quite a lot and fans out to ExplainSubscriber
|
|
# and Logger, this cuts out 2 method calls that every time we run SQL
|
|
#
|
|
# In production we do not care about Explain or Logging SQL statements
|
|
# at this level
|
|
#
|
|
# Micro bench shows for `User.first` this takes us from 3.3k/s to 3.5k/s
|
|
ActiveSupport::Notifications.notifier.unsubscribe("sql.active_record")
|
|
end
|