# Rails Micro Benchmarks!

**URL:** https://community.rubybench.org/t/rails-micro-benchmarks/59
**Category:** Uncategorized
**Created:** [April 15, 2015, 3:58pm UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59 "2015-04-15T15:58:25Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex016/uploads/rubybench/original/1X/4ae23b7eff9a1b039e126f05dd734ab09c8ab4b5.png) [@system](https://community.rubybench.org/u/system)
#### Post date: [April 15, 2015, 3:58pm UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/1 "2015-04-15T15:58:25Z")

</div>

Starting this thread to get things going!

I’ve just added benchmarks for `default_scope` and the results are quite shocking that I’ll review it on my local machine tomorrow.  
 ![](https://sea2.discourse-cdn.com/flex016/uploads/rubybench/35/6f66dffcfa551dfc.png)  
[http://rubybench.org/rails/rails/releases?result\_type=activerecord/sqlite3\_finders\_all](http://rubybench.org/rails/rails/releases?result_type=activerecord/sqlite3_finders_all)

There are still some benchmarks that Kirs has written but I’ve yet to activate them yet.

---

<div class="post-metadata">

### Author: ![sam](https://sea2.discourse-cdn.com/flex016/user_avatar/community.rubybench.org/sam/32/5_2.png) [@sam](https://community.rubybench.org/u/sam)
#### Post date: [April 15, 2015, 8:49pm UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/2 "2015-04-15T20:49:15Z")

</div>

That does looks a bit odd, was expecting a regression in 4.2.0 not in 4.10

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex016/uploads/rubybench/original/1X/4ae23b7eff9a1b039e126f05dd734ab09c8ab4b5.png) [@system](https://community.rubybench.org/u/system)
#### Post date: [April 16, 2015, 6:04am UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/3 "2015-04-16T06:04:57Z")

</div>

@sam I have verified and am getting the same results on my local machine.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex016/uploads/rubybench/original/1X/4ae23b7eff9a1b039e126f05dd734ab09c8ab4b5.png) [@system](https://community.rubybench.org/u/system)
#### Post date: [April 16, 2015, 7:45am UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/4 "2015-04-16T07:45:55Z")

</div>

![](https://sea2.discourse-cdn.com/flex016/uploads/rubybench/36/c4b3c48f5282d134.png)

```ruby
require 'bundler/setup'
require 'rails'
require 'active_record'
require 'stackprof'

require_relative 'support/benchmark_rails.rb'

ActiveRecord::Base.establish_connection(
  adapter: 'sqlite3',
  database: ':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

# Benchmark.rails("activerecord/sqlite3_finders_all", time: 10) do
StackProf.run(mode: :cpu, out: 'after.dump') do
  100000.times do
    User.all
  end
end

```

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex016/uploads/rubybench/original/1X/4ae23b7eff9a1b039e126f05dd734ab09c8ab4b5.png) [@system](https://community.rubybench.org/u/system)
#### Post date: [April 19, 2015, 1:02am UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/5 "2015-04-19T01:02:48Z")

</div>

@sam

![](https://sea2.discourse-cdn.com/flex016/uploads/rubybench/39/104593685d524973.png)

New results after calling `to_a` on `User.all`.

---

<div class="post-metadata">

### Author: ![sam](https://sea2.discourse-cdn.com/flex016/user_avatar/community.rubybench.org/sam/32/5_2.png) [@sam](https://community.rubybench.org/u/sam)
#### Post date: [April 19, 2015, 2:04am UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/6 "2015-04-19T02:04:13Z")

</div>

clearly an anomaly on 3.2.4 its destroying the graph 🙂

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex016/uploads/rubybench/original/1X/4ae23b7eff9a1b039e126f05dd734ab09c8ab4b5.png) [@system](https://community.rubybench.org/u/system)
#### Post date: [April 19, 2015, 1:24pm UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/7 "2015-04-19T13:24:41Z")

</div>

Yea I noticed that and re-ran the benchmark again. Same results. We should investigate xD

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex016/uploads/rubybench/original/1X/4ae23b7eff9a1b039e126f05dd734ab09c8ab4b5.png) [@system](https://community.rubybench.org/u/system)
#### Post date: [April 19, 2015, 1:32pm UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/8 "2015-04-19T13:32:57Z")

</div>

I just ran the benchmark on the local machine. Didn’t seem like there was anything wrong. `User.all` returns an array on `Rails 3.2.4`.

---

<div class="post-metadata">

### Author: ![sam](https://sea2.discourse-cdn.com/flex016/user_avatar/community.rubybench.org/sam/32/5_2.png) [@sam](https://community.rubybench.org/u/sam)
#### Post date: [April 21, 2015, 2:19pm UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/9 "2015-04-21T14:19:10Z")

</div>

We need some sort of solution here, if there is an outlier result graph should still be usable.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex016/uploads/rubybench/original/1X/4ae23b7eff9a1b039e126f05dd734ab09c8ab4b5.png) [@system](https://community.rubybench.org/u/system)
#### Post date: [May 28, 2015, 12:10am UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/10 "2015-05-28T00:10:16Z")

</div>

Added mysql and postgres benchmarks.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex016/uploads/rubybench/original/1X/4ae23b7eff9a1b039e126f05dd734ab09c8ab4b5.png) [@system](https://community.rubybench.org/u/system)
#### Post date: [May 28, 2015, 1:12am UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/11 "2015-05-28T01:12:03Z")

</div>

Hmm just noticed that the anomaly disappear… [http://rubybench.org/rails/rails/releases?result\_type=activerecord/sqlite3\_finders\_all](http://rubybench.org/rails/rails/releases?result_type=activerecord/sqlite3_finders_all)

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex016/uploads/rubybench/original/1X/4ae23b7eff9a1b039e126f05dd734ab09c8ab4b5.png) [@system](https://community.rubybench.org/u/system)
#### Post date: [June 2, 2015, 8:56am UTC](https://community.rubybench.org/t/rails-micro-benchmarks/59/12 "2015-06-02T08:56:00Z")

</div>

![](https://us1.discourse-cdn.com/flex016/uploads/rubybench/original/1X/2551c07b70ec196e2cbae6b931cecee1103ae629.png)

Still needs to be fixed…
