aboutsummaryrefslogtreecommitdiffstats
path: root/Gemfile
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-04-04 03:19:08 +0900
committerRyuta Kamizono <kamipo@gmail.com>2019-04-04 03:27:46 +0900
commit0908184e4c2dca5b941030bbd0d5eb2dfcfed120 (patch)
treeb66a18ff72fd898b5d6f5917836afe46c342acf2 /Gemfile
parentd39b2b684e94e856a4a1257984ff6a1d5f978a2c (diff)
downloadrails-0908184e4c2dca5b941030bbd0d5eb2dfcfed120.tar.gz
rails-0908184e4c2dca5b941030bbd0d5eb2dfcfed120.tar.bz2
rails-0908184e4c2dca5b941030bbd0d5eb2dfcfed120.zip
Use `execute_batch2` rather than `execute_batch` to fix performance regression for fixture loading
d8d6bd5 makes fixture loading to bulk statements by using `execute_batch` for sqlite3 adapter. But `execute_batch` is slower and it caused the performance regression for fixture loading. In sqlite3 1.4.0, it have new batch method `execute_batch2`. I've confirmed `execute_batch2` is extremely faster than `execute_batch`. So I think it is worth to upgrade sqlite3 to 1.4.0 to use that method. Before: ``` % ARCONN=sqlite3 bundle exec ruby -w -Itest test/cases/associations/eager_test.rb -n test_eager_loading_too_may_ids Using sqlite3 Run options: -n test_eager_loading_too_may_ids --seed 35790 # Running: . Finished in 202.437406s, 0.0049 runs/s, 0.0049 assertions/s. 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips ARCONN=sqlite3 bundle exec ruby -w -Itest -n test_eager_loading_too_may_ids 142.57s user 60.83s system 98% cpu 3:27.08 total ``` After: ``` % ARCONN=sqlite3 bundle exec ruby -w -Itest test/cases/associations/eager_test.rb -n test_eager_loading_too_may_ids Using sqlite3 Run options: -n test_eager_loading_too_may_ids --seed 16649 # Running: . Finished in 8.471032s, 0.1180 runs/s, 0.1180 assertions/s. 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips ARCONN=sqlite3 bundle exec ruby -w -Itest -n test_eager_loading_too_may_ids 10.71s user 1.36s system 95% cpu 12.672 total ```
Diffstat (limited to 'Gemfile')
-rw-r--r--Gemfile2
1 files changed, 1 insertions, 1 deletions
diff --git a/Gemfile b/Gemfile
index e80691bce5..122baa4c33 100644
--- a/Gemfile
+++ b/Gemfile
@@ -118,7 +118,7 @@ platforms :ruby, :mswin, :mswin64, :mingw, :x64_mingw do
gem "racc", ">=1.4.6", require: false
# Active Record.
- gem "sqlite3", "~> 1.3", ">= 1.3.6"
+ gem "sqlite3", "~> 1.4"
group :db do
gem "pg", ">= 0.18.0"