1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
Commit graph

9 commits

Author SHA1 Message Date
Ryuta Kamizono
2b35775fbe Add add_binds to bulk binds processing for performance
Before with `prepared_statements: true`:

```
Warming up --------------------------------------
      where with ids     9.000  i/100ms
Calculating -------------------------------------
      where with ids     91.992  (± 7.6%) i/s -    459.000  in   5.020817s
```

Now with `prepared_statements: true`:

```
Warming up --------------------------------------
      where with ids    10.000  i/100ms
Calculating -------------------------------------
      where with ids     99.393  (± 8.0%) i/s -    500.000  in   5.069280s
```
2020-05-11 03:24:49 +09:00
Ryuta Kamizono
72005ad0e1 Refactor preparable to be had the state in Arel collectors 2020-05-03 23:19:41 +09:00
Ryuta Kamizono
280d6eb2e1 Refactor Arel node Casted, Quoted, and BindParam
Define `value_for_database` and `value_before_type_cast` methods, and
use those.
2020-04-28 16:26:18 +09:00
Ryuta Kamizono
298629cefd SQLString#compile is no longer used since 53521a9e39 2018-09-30 16:49:13 +09:00
Ryuta Kamizono
09de7c9170 Use private attr_reader in Arel
No longer needed workaround for Ruby 2.2 "private attribute?" warning.

Related 6d63b5e49a.
2018-09-30 15:24:17 +09:00
yuuji.yaginuma
1b86d90136 Enable Performance/UnfreezeString cop
In Ruby 2.3 or later, `String#+@` is available and `+@` is faster than `dup`.

```ruby
# frozen_string_literal: true

require "bundler/inline"

gemfile(true) do
  source "https://rubygems.org"

  gem "benchmark-ips"
end

Benchmark.ips do |x|
  x.report('+@') { +"" }
  x.report('dup') { "".dup }
  x.compare!
end
```

```
$ ruby -v benchmark.rb
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
Warming up --------------------------------------
                  +@   282.289k i/100ms
                 dup   187.638k i/100ms
Calculating -------------------------------------
                  +@      6.775M (± 3.6%) i/s -     33.875M in   5.006253s
                 dup      3.320M (± 2.2%) i/s -     16.700M in   5.032125s

Comparison:
                  +@:  6775299.3 i/s
                 dup:  3320400.7 i/s - 2.04x  slower

```
2018-09-23 08:56:55 +09:00
Matthew Draper
354f1c28e8 Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
Matthew Draper
4c0a3d4880 Arel: rubocop -a 2018-02-24 17:16:13 +10:30
Matthew Draper
17ca17072d Merge Arel into Active Record 2018-02-24 17:15:32 +10:30