From 840b767cebd98e419ba1eaf63fc9e95bd4251f4e Mon Sep 17 00:00:00 2001 From: Igor Arkhipov Date: Sat, 11 Nov 2023 22:31:03 +0100 Subject: [PATCH 1/5] Initial setup and ruby update --- .ruby-version | 2 +- Gemfile | 2 +- Gemfile.lock | 188 +++++++++++++++++++++++++++----------------------- 3 files changed, 104 insertions(+), 88 deletions(-) diff --git a/.ruby-version b/.ruby-version index ec1cf33c..1f7da99d 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.6.3 +2.7.7 diff --git a/Gemfile b/Gemfile index e20b1260..4678ffee 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby '2.6.3' +ruby '2.7.7' gem 'rails', '~> 5.2.3' gem 'pg', '>= 0.18', '< 2.0' diff --git a/Gemfile.lock b/Gemfile.lock index fccf6f5f..842c6165 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,134 +1,150 @@ GEM remote: https://rubygems.org/ specs: - actioncable (5.2.3) - actionpack (= 5.2.3) + actioncable (5.2.8.1) + actionpack (= 5.2.8.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.3) - actionpack (= 5.2.3) - actionview (= 5.2.3) - activejob (= 5.2.3) + actionmailer (5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.2.3) - actionview (= 5.2.3) - activesupport (= 5.2.3) - rack (~> 2.0) + actionpack (5.2.8.1) + actionview (= 5.2.8.1) + activesupport (= 5.2.8.1) + rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.3) - activesupport (= 5.2.3) + actionview (5.2.8.1) + activesupport (= 5.2.8.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (5.2.3) - activesupport (= 5.2.3) + activejob (5.2.8.1) + activesupport (= 5.2.8.1) globalid (>= 0.3.6) - activemodel (5.2.3) - activesupport (= 5.2.3) - activerecord (5.2.3) - activemodel (= 5.2.3) - activesupport (= 5.2.3) + activemodel (5.2.8.1) + activesupport (= 5.2.8.1) + activerecord (5.2.8.1) + activemodel (= 5.2.8.1) + activesupport (= 5.2.8.1) arel (>= 9.0) - activestorage (5.2.3) - actionpack (= 5.2.3) - activerecord (= 5.2.3) - marcel (~> 0.3.1) - activesupport (5.2.3) + activestorage (5.2.8.1) + actionpack (= 5.2.8.1) + activerecord (= 5.2.8.1) + marcel (~> 1.0.0) + activesupport (5.2.8.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) arel (9.0.0) - bindex (0.6.0) - bootsnap (1.4.2) - msgpack (~> 1.0) - builder (3.2.3) - byebug (11.0.1) - concurrent-ruby (1.1.5) - crass (1.0.4) - erubi (1.8.0) - ffi (1.10.0) - globalid (0.4.2) - activesupport (>= 4.2.0) - i18n (1.6.0) + bindex (0.8.1) + bootsnap (1.17.0) + msgpack (~> 1.2) + builder (3.2.4) + byebug (11.1.3) + concurrent-ruby (1.2.2) + crass (1.0.6) + date (3.3.4) + erubi (1.12.0) + ffi (1.16.3) + globalid (1.1.0) + activesupport (>= 5.0) + i18n (1.14.1) concurrent-ruby (~> 1.0) listen (3.1.5) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) ruby_dep (~> 1.2) - loofah (2.2.3) + loofah (2.21.4) crass (~> 1.0.2) - nokogiri (>= 1.5.9) - mail (2.7.1) + nokogiri (>= 1.12.0) + mail (2.8.1) mini_mime (>= 0.1.1) - marcel (0.3.3) - mimemagic (~> 0.3.2) - method_source (0.9.2) - mimemagic (0.3.3) - mini_mime (1.0.1) - mini_portile2 (2.4.0) - minitest (5.11.3) - msgpack (1.2.9) - nio4r (2.3.1) - nokogiri (1.10.2) - mini_portile2 (~> 2.4.0) - pg (1.1.4) - puma (3.12.1) - rack (2.0.6) - rack-test (1.1.0) - rack (>= 1.0, < 3) - rails (5.2.3) - actioncable (= 5.2.3) - actionmailer (= 5.2.3) - actionpack (= 5.2.3) - actionview (= 5.2.3) - activejob (= 5.2.3) - activemodel (= 5.2.3) - activerecord (= 5.2.3) - activestorage (= 5.2.3) - activesupport (= 5.2.3) + net-imap + net-pop + net-smtp + marcel (1.0.2) + method_source (1.0.0) + mini_mime (1.1.5) + mini_portile2 (2.8.5) + minitest (5.20.0) + msgpack (1.7.2) + net-imap (0.4.4) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.4.0) + net-protocol + nio4r (2.5.9) + nokogiri (1.15.4) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + pg (1.5.4) + puma (3.12.6) + racc (1.7.3) + rack (2.2.8) + rack-test (2.1.0) + rack (>= 1.3) + rails (5.2.8.1) + actioncable (= 5.2.8.1) + actionmailer (= 5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + activemodel (= 5.2.8.1) + activerecord (= 5.2.8.1) + activestorage (= 5.2.8.1) + activesupport (= 5.2.8.1) bundler (>= 1.3.0) - railties (= 5.2.3) + railties (= 5.2.8.1) sprockets-rails (>= 2.0.0) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.0.4) - loofah (~> 2.2, >= 2.2.2) - railties (5.2.3) - actionpack (= 5.2.3) - activesupport (= 5.2.3) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (5.2.8.1) + actionpack (= 5.2.8.1) + activesupport (= 5.2.8.1) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) - rake (12.3.2) - rb-fsevent (0.10.3) - rb-inotify (0.10.0) + rake (13.1.0) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) ffi (~> 1.0) ruby_dep (1.5.0) - sprockets (3.7.2) + sprockets (4.2.1) concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-rails (3.2.1) - actionpack (>= 4.0) - activesupport (>= 4.0) + rack (>= 2.2.4, < 4) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) sprockets (>= 3.0.0) - thor (0.20.3) + thor (1.3.0) thread_safe (0.3.6) - tzinfo (1.2.5) + timeout (0.4.1) + tzinfo (1.2.11) thread_safe (~> 0.1) web-console (3.7.0) actionview (>= 5.0) activemodel (>= 5.0) bindex (>= 0.4.0) railties (>= 5.0) - websocket-driver (0.7.0) + websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.3) + websocket-extensions (0.1.5) PLATFORMS ruby @@ -144,7 +160,7 @@ DEPENDENCIES web-console (>= 3.3.0) RUBY VERSION - ruby 2.6.3p62 + ruby 2.7.7p221 BUNDLED WITH 2.0.2 From f8925b5033a0ee6034e8730af3cf545604ee0139 Mon Sep 17 00:00:00 2001 From: Igor Arkhipov Date: Sun, 12 Nov 2023 01:10:17 +0100 Subject: [PATCH 2/5] Initial tests for feedback loop --- Gemfile | 1 + Gemfile.lock | 24 ++++++++++++++++++++++++ test/tasks/utils_rake_spec.rb | 20 ++++++++++++++++++++ test/test_helper.rb | 27 +++++++++++++++++++++++++++ 4 files changed, 72 insertions(+) create mode 100644 test/tasks/utils_rake_spec.rb diff --git a/Gemfile b/Gemfile index 4678ffee..b01d7bcd 100644 --- a/Gemfile +++ b/Gemfile @@ -20,6 +20,7 @@ group :development do end group :test do + gem 'rspec-benchmark' end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem diff --git a/Gemfile.lock b/Gemfile.lock index 842c6165..408ff751 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -43,6 +43,9 @@ GEM minitest (~> 5.1) tzinfo (~> 1.1) arel (9.0.0) + benchmark-malloc (0.2.0) + benchmark-perf (0.6.0) + benchmark-trend (0.4.0) bindex (0.8.1) bootsnap (1.17.0) msgpack (~> 1.2) @@ -51,6 +54,7 @@ GEM concurrent-ruby (1.2.2) crass (1.0.6) date (3.3.4) + diff-lcs (1.5.0) erubi (1.12.0) ffi (1.16.3) globalid (1.1.0) @@ -124,6 +128,24 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) + rspec (3.12.0) + rspec-core (~> 3.12.0) + rspec-expectations (~> 3.12.0) + rspec-mocks (~> 3.12.0) + rspec-benchmark (0.6.0) + benchmark-malloc (~> 0.2) + benchmark-perf (~> 0.6) + benchmark-trend (~> 0.4) + rspec (>= 3.0) + rspec-core (3.12.2) + rspec-support (~> 3.12.0) + rspec-expectations (3.12.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-mocks (3.12.6) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-support (3.12.1) ruby_dep (1.5.0) sprockets (4.2.1) concurrent-ruby (~> 1.0) @@ -150,12 +172,14 @@ PLATFORMS ruby DEPENDENCIES + activerecord bootsnap (>= 1.1.0) byebug listen (>= 3.0.5, < 3.2) pg (>= 0.18, < 2.0) puma (~> 3.11) rails (~> 5.2.3) + rspec-benchmark tzinfo-data web-console (>= 3.3.0) diff --git a/test/tasks/utils_rake_spec.rb b/test/tasks/utils_rake_spec.rb new file mode 100644 index 00000000..74fca191 --- /dev/null +++ b/test/tasks/utils_rake_spec.rb @@ -0,0 +1,20 @@ +require_relative '../test_helper' +require 'json' + +describe 'rake reload_json', type: :task do + + # 1k trips under 3.5 seconds + it 'should work under 3.5 seconds' do + expect { task.execute(Rake::TaskArguments.new([:file_name], ['fixtures/small.json'])) }.to perform_under(3.5).sec + end + + # 10k trips under 65 seconds + it 'should work under 65 seconds' do + expect { task.execute(Rake::TaskArguments.new([:file_name], ['fixtures/medium.json'])) }.to perform_under(65).sec + end + + # 100k trips under 60 seconds + # it 'should work under 60 seconds' do + # expect { task.execute(Rake::TaskArguments.new([:file_name], ['fixtures/large.json'])) }.to perform_under(60).sec + # end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index 3ab84e3d..524ccf28 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,6 +1,33 @@ ENV['RAILS_ENV'] ||= 'test' require_relative '../config/environment' require 'rails/test_help' +require 'rspec-benchmark' +require 'rake' + +module TaskFormat + extend ActiveSupport::Concern + included do + let(:task_name) { self.class.top_level_description.sub(/\Arake /, '') } + let(:tasks) { Rake::Task } + # Make the Rake task available as `task` in your examples: + subject(:task) { tasks[task_name] } + end +end + +RSpec.configure do |config| + config.before(:suite) do + Dir.glob('lib/tasks/*.rake').each { |r| Rake::DefaultLoader.new.load r } + end + + # Tag Rake specs with `:task` metadata or put them in the spec/tasks dir + config.define_derived_metadata(file_path: %r{/spec/tasks/}) do |metadata| + metadata[:type] = :task + end + + config.include TaskFormat, type: :task + + config.include RSpec::Benchmark::Matchers +end class ActiveSupport::TestCase # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. From 5149d71f5197e2297889eb0654a46a4b436aee25 Mon Sep 17 00:00:00 2001 From: Igor Arkhipov Date: Mon, 13 Nov 2023 00:20:47 +0100 Subject: [PATCH 3/5] Optimise performance step A --- Gemfile | 7 +- Gemfile.lock | 4 +- PROFILE.html | 37939 +++++++++++++++++++++++ PROFILE.txt | 1985 ++ PROFILE2.html | 35672 +++++++++++++++++++++ Rakefile | 14 + app/models/buses_service.rb | 4 + case-study-a.md | 42 + lib/tasks/support/database_reloader.rb | 60 + lib/tasks/utils.rake | 37 +- profiler-1.rb | 2 + profiler-2.rb | 2 + test/tasks/utils_rake_spec.rb | 21 +- 13 files changed, 75744 insertions(+), 45 deletions(-) create mode 100644 PROFILE.html create mode 100644 PROFILE.txt create mode 100644 PROFILE2.html create mode 100644 app/models/buses_service.rb create mode 100644 case-study-a.md create mode 100644 lib/tasks/support/database_reloader.rb create mode 100644 profiler-1.rb create mode 100644 profiler-2.rb diff --git a/Gemfile b/Gemfile index b01d7bcd..d1cb78f3 100644 --- a/Gemfile +++ b/Gemfile @@ -3,10 +3,11 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '2.7.7' -gem 'rails', '~> 5.2.3' +gem 'activerecord-import' +gem 'bootsnap', '>= 1.1.0', require: false gem 'pg', '>= 0.18', '< 2.0' gem 'puma', '~> 3.11' -gem 'bootsnap', '>= 1.1.0', require: false +gem 'rails', '~> 5.2.3' group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console @@ -14,9 +15,9 @@ group :development, :test do end group :development do + gem 'listen', '>= 3.0.5', '< 3.2' # Access an interactive console on exception pages or by calling 'console' anywhere in the code. gem 'web-console', '>= 3.3.0' - gem 'listen', '>= 3.0.5', '< 3.2' end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index 408ff751..8171cdaa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -33,6 +33,8 @@ GEM activemodel (= 5.2.8.1) activesupport (= 5.2.8.1) arel (>= 9.0) + activerecord-import (1.5.0) + activerecord (>= 4.2) activestorage (5.2.8.1) actionpack (= 5.2.8.1) activerecord (= 5.2.8.1) @@ -172,7 +174,7 @@ PLATFORMS ruby DEPENDENCIES - activerecord + activerecord-import bootsnap (>= 1.1.0) byebug listen (>= 3.0.5, < 3.2) diff --git a/PROFILE.html b/PROFILE.html new file mode 100644 index 00000000..dcd9b7a6 --- /dev/null +++ b/PROFILE.html @@ -0,0 +1,37939 @@ + + + + + + +
+
+
+
Profile Report
+

Wall_time

+
+
+
Sunday, November 12 at 5:22:31 PM (CET)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Thread IDFiber IDTotal
6206009.90724508400308
62048009.696513325005071
10620106009.420414035994327
10660106409.420378940005321
10700106809.42036007999559
11060110409.397490443981951
11100110809.397465433983598
11320113009.338750891998643
+ + + +

Thread 620, Fiber: 600

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%9.910.000.009.911 + + RubyProf::Cmd#run + + 303
  9.910.000.009.911/31Kernel#load303 +
  0.000.000.000.002/31Rails::Engine#run_tasks_blocks656
  0.000.000.000.003/31BasicObject#instance_exec
  0.010.000.000.0111/31ActiveSupport::Dependencies::Loadable#load_dependency285
  0.010.000.000.0112/31Kernel#require_without_bootsnap
  0.040.000.000.041/31Kernel#load
  0.230.000.000.231/31<Module::Rake>#load_rakefile29
  9.910.000.009.911/31RubyProf::Cmd#run303
100.00%0.02%9.910.000.009.9131 + + *Kernel#load + +
  9.720.000.009.721/1Rake::Application#run9 +
  0.350.000.000.352/200Kernel#require_relative7 +
  0.040.000.000.0410/2497Kernel#require8 +
  0.040.000.000.041/31Kernel#load3 +
  0.020.000.000.021/1Rails::Engine#load_tasks20 +
  0.010.000.000.0112/33Rake::DSL#namespace5 +
  0.010.000.000.012/2ActionDispatch::Routing::RouteSet#draw1 +
  0.010.000.000.011/2Bundler::LockfileParser#initialize10 +
  0.000.000.000.001/2<Module::Bundler>#default_lockfile10 +
  0.000.000.000.0029/1346Bootsnap::CompileCache::ISeq::InstructionSequenceMixin#load_iseq +
  0.000.000.000.0016/16Rake::Application#rakefile_location24 +
  0.000.000.000.0017/221<Module::Rake>#application9 +
  0.000.000.000.0011/99Rake::DSL#task7 +
  0.000.000.000.0016/68Kernel#caller24 +
  0.000.000.000.0016/815<Class::File>#directory?25 +
  0.000.000.000.001/12Pathname#join9 +
  0.000.000.000.001/55Kernel#gem3 +
  0.000.000.000.001/4Pathname#read10 +
  0.000.000.000.003/232ActiveSupport::OrderedOptions#method_missing4 +
  0.000.000.000.009/44Rake::DSL#desc9 +
  0.000.000.000.001/5<Class::Rake::Task>#task_defined?16 +
  0.000.000.000.007/27047<Module::Rails>#application20 +
  0.000.000.000.001/2<Class::Rake::Task>#[]17 +
  0.000.000.000.003/209Rails::Railtie::Configuration#method_missing4 +
  0.000.000.000.001/1582<Class::File>#expand_path3 +
  0.000.000.000.004/236IO#set_encoding +
  0.000.000.000.0016/137<Class::File>#dirname24 +
  0.000.000.000.001/13516<Module::Rails>#root9 +
  0.000.000.000.002/12Rails::Engine#routes1 +
  0.000.000.000.001/67ActiveSupport::LazyLoadHooks#on_load7 +
  0.000.000.000.004/13695Rails::Application#config4 +
  0.000.000.000.001/113Rake::Task#enhance17 +
  0.000.000.000.003/20053Module#method_added8 +
  0.000.000.000.001/320287Kernel#hash3 +
  9.720.000.009.721/1Kernel#load
98.07%0.00%9.720.000.009.721 + + Rake::Application#run + + 79
  9.720.000.009.721/3Rake::Application#standard_exception_handling80 +
  0.000.000.000.001/3Rake::Application#init89
  0.230.000.000.231/3Rake::Application#load_rakefile125
  9.720.000.009.721/3Rake::Application#run80
98.07%0.00%9.720.000.009.723 + + *Rake::Application#standard_exception_handling + + 207
  9.490.000.009.491/1Rake::Application#top_level83 +
  0.230.000.000.231/1Rake::Application#load_rakefile82 +
  0.230.000.000.231/1Rake::Application#raw_load_rakefile126 +
  0.000.000.000.001/1Rake::Application#init81 +
  0.000.000.000.001/1Rake::Application#handle_options92 +
  0.000.000.000.001/1Rake::Application#collect_command_line_tasks98 +
  0.000.000.000.001/1Rake::Application#load_debug_at_stop_feature97 +
  0.000.000.000.003/54197Bundler::SharedHelpers#pwd71
  0.010.000.000.0195/54197ActiveRecord::ModelSchema::ClassMethods#load_schema456
  0.220.040.000.1854097/54197MonitorMixin#synchronize202
  9.580.000.009.582/54197Rake::Task#invoke_with_call_chain199
95.76%0.38%9.490.040.009.4554197 + + *Monitor#synchronize + +
  9.490.000.009.492/2Rake::Task#execute219 +
  0.120.110.000.0027022/27024IO#write42 +
  0.090.000.000.092/2Rake::Task#invoke_prerequisites218 +
  0.030.020.000.0213530/13530ActiveSupport::Concurrency::ShareLock#wait_for190 +
  0.010.010.000.0027060/139363Hash#delete174 +
  0.010.010.000.0027022/27022Logger::LogDevice#check_shift_log36 +
  0.010.000.000.015/5ActiveRecord::AttributeDecorators::ClassMethods#load_schema!459 +
  0.010.000.000.0013534/13534MonitorMixin::ConditionVariable#broadcast183 +
  0.000.000.000.0027022/184396Kernel#respond_to?34 +
  0.000.000.000.0027074/312517<Class::Thread>#current174 +
  0.000.000.000.003/3<Class::Pathname>#pwd72 +
  0.000.000.000.004/4ActiveSupport::Concurrency::ShareLock#busy_for_exclusive?79 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::ConnectionPool::ConnectionLeasingQueue#internal_poll145 +
  0.000.000.000.004/4ActiveSupport::Concurrency::ShareLock#eligible_waiters?104 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::ConnectionPool#adopt_connection857 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::AbstractAdapter#lease859 +
  0.000.000.000.002/2Rake::Task#needed?219 +
  0.000.000.000.002/4<Object::OpenStruct>#trace201 +
  0.000.000.000.002/57Rake::Application#options201 +
  0.000.000.000.001/30086Numeric#zero?845 +
  9.490.000.009.491/1Rake::Application#standard_exception_handling83
95.76%0.00%9.490.000.009.491 + + Rake::Application#top_level + + 131
  9.490.000.009.491/1Rake::Application#run_with_threads132 +
  9.490.000.009.491/1Rake::Application#top_level132
95.76%0.00%9.490.000.009.491 + + Rake::Application#run_with_threads + + 144
  9.490.000.009.491/1Rake::Application#invoke_task138 +
  0.000.000.000.003/3<Object::OpenStruct>#job_stats145 +
  0.000.000.000.005/57Rake::Application#options145 +
  0.000.000.000.001/1<Object::OpenStruct>#show_tasks133 +
  0.000.000.000.001/1<Object::OpenStruct>#show_prereqs135 +
  9.490.000.009.491/1Rake::Application#run_with_threads138
95.76%0.00%9.490.000.009.491 + + Rake::Application#invoke_task + + 179
  9.490.000.009.491/1Rake::Task#invoke182 +
  0.000.000.000.001/1Rake::Application#parse_task_string180 +
  0.000.000.000.001/4Rake::TaskManager#[]181 +
  9.490.000.009.491/1Rake::Application#invoke_task182
95.76%0.00%9.490.000.009.491 + + Rake::Task#invoke + + 186
  9.490.000.009.491/2Rake::Task#invoke_with_call_chain188 +
  0.000.000.000.001/3Rake::TaskArguments#initialize187 +
  0.000.000.000.001/2Rake::Task#arg_names187 +
  0.090.000.000.091/2Rake::Task#invoke_prerequisites243
  9.490.000.009.491/2Rake::Task#invoke188
95.76%0.00%9.490.000.009.492 + + *Rake::Task#invoke_with_call_chain + + 197
  9.580.000.009.582/54197Monitor#synchronize199 +
  0.000.000.000.002/2<Class::Rake::InvocationChain>#append198 +
  9.490.000.009.492/2Monitor#synchronize
95.76%0.00%9.490.000.009.492 + + Rake::Task#execute + + 8
  9.490.000.009.492/2Rake::Task#execute_without_timestamps10 +
  0.000.000.000.002/2Kernel#printf12 +
  0.000.000.000.002/2Time#-11 +
  0.000.000.000.002/2Rake::Task#name12 +
  0.000.000.000.004/31294<Class::Time>#now9 +
  9.490.000.009.492/2Rake::Task#execute10
95.75%0.00%9.490.000.009.492 + + Rake::Task#execute_without_timestamps + + 270
  9.340.000.009.341/6272ActiveRecord::Transactions::ClassMethods#transaction6 +
  0.090.000.000.091/1Rails::Application#require_environment!520 +
  0.050.000.000.051/639ActiveSupport::Dependencies::Loadable#require6 +
  0.000.000.000.001/2<Module::JSON>#parse4 +
  0.000.000.000.001/10<Class::IO>#read4 +
  0.000.000.000.002/2<Class::Hash>#try_convert278 +
  0.000.000.000.001/1Rake::TaskArguments#method_missing4 +
  0.000.000.000.001/67ActiveSupport::LazyLoadHooks#on_load518 +
  0.000.000.000.004/57Rake::Application#options272 +
  0.000.000.000.002/2<Object::OpenStruct>#dryrun272 +
  0.000.000.000.002/4<Object::OpenStruct>#trace276 +
  0.000.000.000.006/6272ActiveRecord::Associations::CollectionAssociation#transaction134
  9.340.000.009.341/6272Rake::Task#execute_without_timestamps6
  10.290.000.0010.296265/6272ActiveRecord::Transactions#with_transaction_returning_status385
94.26%0.03%9.340.000.009.346272 + + *ActiveRecord::Transactions::ClassMethods#transaction + + 211
  19.570.020.0019.556272/6272ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction212 +
  0.050.000.000.056272/42695ActiveRecord::ConnectionHandling#connection212 +
  0.000.000.000.001/21150ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#active?253
  0.000.000.000.001/21150ActiveRecord::ConnectionAdapters::TransactionManager#begin_transaction197
  0.000.000.000.001/21150ActiveRecord::ConnectionAdapters::TransactionManager#commit_transaction213
  0.040.000.000.047616/21150ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#prepare_statement672
  2.290.000.002.2813530/21150ActiveSupport::Notifications::Instrumenter#instrument580
  9.330.000.009.331/21150ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction236
94.19%0.06%9.330.010.009.3321150 + + *ActiveSupport::Concurrency::LoadInterlockAwareMonitor#synchronize + + 20
  11.650.020.0011.6321150/42300<Class::Thread>#handle_interrupt21 +
  11.620.030.0011.5921150/42300<Class::Thread>#handle_interrupt
  11.650.020.0011.6321150/42300ActiveSupport::Concurrency::LoadInterlockAwareMonitor#synchronize21
94.19%0.46%9.330.050.009.2942300 + + *<Class::Thread>#handle_interrupt + +
  11.620.030.0011.5921150/42300<Class::Thread>#handle_interrupt25 +
  4.500.000.004.501000/1000ActiveRecord::Persistence#update22 +
  3.670.000.003.677229/7229ActiveRecord::Querying#find_or_create_by14 +
  2.250.010.002.2413530/13530ActiveSupport::Dependencies::Interlock#permit_concurrent_loads74 +
  1.110.000.001.111000/1000ActiveRecord::Persistence::ClassMethods#create!24 +
  0.020.000.000.024/4ActiveRecord::Querying#delete_all7 +
  0.010.000.000.014/9ActiveSupport::Dependencies::ModuleConstMissing#const_missing7 +
  0.010.000.000.007616/7616ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#sql_key673 +
  0.010.000.000.007616/7616ActiveRecord::ConnectionAdapters::StatementPool#key?674 +
  0.010.000.000.0021150/21150ActiveSupport::Concurrency::LoadInterlockAwareMonitor#mon_enter22 +
  0.000.000.000.007616/7616ActiveRecord::ConnectionAdapters::StatementPool#[]685 +
  0.000.000.000.001/7ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#execute11 +
  0.000.000.000.0021150/21150Monitor#mon_exit29 +
  0.000.000.000.0013530/13535<Module::ActiveSupport::Dependencies>#interlock74 +
  0.000.000.000.004/4PG::Connection#prepare677 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::TransactionManager#commit_transaction252 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::RealTransaction#commit222 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::TransactionManager#begin_transaction238 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::RealTransaction#initialize201 +
  0.000.000.000.001/1PG::Connection#query254 +
  0.000.000.000.004/4ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::StatementPool#[]=683 +
  0.000.000.000.001/42695ActiveRecord::ConnectionHandling#connection11 +
  0.000.000.000.004/4ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::StatementPool#next_key675 +
  0.000.000.000.001/312517<Class::Thread>#current248 +
  0.000.000.000.004/4PG::Connection#get_last_result682 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::Transaction#commit_records223 +
  0.000.000.000.001/1Thread#status248 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::Transaction#before_commit_records217 +
  0.000.000.000.001/12538ActiveRecord::ConnectionAdapters::TransactionManager#current_transaction198 +
  0.000.000.000.001/50425Array#last214 +
  0.000.000.000.001/15762Array#pop219 +
  0.000.000.000.001/2ActiveRecord::ConnectionAdapters::NullTransaction#joinable?198 +
  0.000.000.000.001/14082Array#push207 +
  19.570.020.0019.556272/6272ActiveRecord::Transactions::ClassMethods#transaction212
94.14%0.21%9.330.020.009.316272 + + *ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction + + 260
  9.330.000.009.331/1ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction267 +
  4.720.000.004.714265/4265ActiveRecord::Validations#save310 +
  2.880.000.002.881000/4265ActiveRecord::Suppressor#save428 +
  1.600.000.001.591000/5265ActiveModel::AttributeAssignment#assign_attributes427 +
  0.920.000.000.921000/1000ActiveRecord::Validations#save!315 +
  0.110.010.000.116265/6265ActiveRecord::Transactions#add_to_transaction386 +
  0.000.000.000.006272/12537ActiveRecord::ConnectionAdapters::DatabaseStatements#current_transaction261 +
  0.000.000.000.003/616ActiveRecord::Associations::CollectionAssociation#replace_records251 +
  0.000.000.000.006271/6271ActiveRecord::ConnectionAdapters::Transaction#joinable?261 +
  0.000.000.000.00613/619Kernel#raise388 +
  0.000.000.000.00613/632Exception#backtrace388 +
  0.000.000.000.00613/887726Module#===388 +
  0.000.000.000.003/616ActiveRecord::Associations::HasManyThroughAssociation#concat_records120 +
  0.000.000.000.001/2ActiveRecord::ConnectionAdapters::NullTransaction#joinable?261 +
  9.330.000.009.331/1ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction267
94.14%0.00%9.330.000.009.331 + + ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction + + 235
  9.330.000.009.331/21150ActiveSupport::Concurrency::LoadInterlockAwareMonitor#synchronize236 +
  0.950.000.000.951000/6265ActiveRecord::Transactions#save!315
  4.500.000.004.501000/6265ActiveRecord::Persistence#update426
  4.850.000.004.844265/6265ActiveRecord::Transactions#rollback_active_record_state!310
60.98%0.05%6.040.000.006.046265 + + *ActiveRecord::Transactions#with_transaction_returning_status + + 383
  10.290.000.0010.296265/6272ActiveRecord::Transactions::ClassMethods#transaction385 +
  0.000.000.000.006265/6265ActiveRecord::ConnectionAdapters::TransactionState#committed?392 +
  0.000.000.000.006265/635445Kernel#class385 +
  4.500.000.004.501000/1000<Class::Thread>#handle_interrupt
45.43%0.00%4.500.000.004.501000 + + ActiveRecord::Persistence#update + + 423
  4.500.000.004.501000/6265ActiveRecord::Transactions#with_transaction_returning_status426 +
  0.000.000.000.001/51015<Class::ActiveSupport::Reloader>#prepare!89
  0.000.000.000.001/51015ActiveRecord::ConnectionAdapters::AbstractAdapter#_run_checkout_callbacks816
  0.020.010.000.018193/51015ActiveRecord::Base#_run_find_callbacks816
  0.020.010.000.0212458/51015ActiveRecord::Base#_run_initialize_callbacks816
  0.030.000.000.03387/51015ActiveRecord::Base#_run_update_callbacks816
  1.700.010.001.6910529/51015ActiveRecord::Base#_run_validate_callbacks816
  1.770.010.001.7610529/51015ActiveRecord::Base#_run_validation_callbacks816
  3.660.010.003.654265/51015ActiveRecord::Base#_run_create_callbacks816
  3.950.010.003.934652/51015ActiveRecord::Base#_run_save_callbacks816
43.78%0.59%4.340.060.004.2851015 + + *ActiveSupport::Callbacks#run_callbacks + + 94
  3.750.010.003.744652/4652ActiveRecord::Persistence#create_or_update342 +
  2.050.000.002.044265/4265ActiveRecord::AttributeMethods::Dirty#_create_record346 +
  1.840.050.001.7915173/15173ActiveSupport::Callbacks::CallbackSequence#invoke_before131 +
  1.730.010.001.7210529/10529ActiveModel::Validations#run_validations!118 +
  1.630.020.001.6115173/15173ActiveSupport::Callbacks::CallbackSequence#invoke_after133 +
  0.040.030.000.0251013/69808ActiveRecord::Base#__callbacks95 +
  0.020.000.000.02387/387ActiveRecord::AttributeMethods::Dirty#_update_record350 +
  0.010.010.000.0015173/15218<Class::Proc>#new103 +
  0.010.010.000.0051015/69810ActiveSupport::Callbacks::CallbackChain#empty?97 +
  0.010.000.000.0015173/15173<Class::ActiveSupport::Callbacks::Filters::Environment>#new100 +
  0.000.000.000.0051015/120806Kernel#block_given?98 +
  0.000.000.000.0051015/53681Symbol#to_sym95 +
  0.000.000.000.0015173/15173ActiveSupport::Callbacks::CallbackChain#compile101 +
  0.000.000.000.0015173/15173ActiveSupport::Callbacks::CallbackSequence#final?130 +
  0.000.000.000.0015173/104558ActiveSupport::Callbacks::Filters::Environment#halted132 +
  0.000.000.000.0015173/64009ActiveSupport::Callbacks::Filters::Environment#value134 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::AbstractAdapter#verify!879 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::AbstractAdapter#__callbacks95 +
  0.000.000.000.001/1ActiveSupport::ExecutionWrapper#__callbacks95 +
  0.000.000.000.001/13510ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#add_pg_decoders826
  0.000.000.000.001/13510ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#load_additional_types587
  0.020.000.000.024/13510ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_delete94
  4.180.040.004.1413504/13510ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_query81
42.36%0.40%4.200.040.004.1613510 + + ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#execute_and_clear + + 594
  2.150.000.002.155894/5894ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_no_cache596 +
  1.900.010.001.897616/7616ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_cache600 +
  0.080.010.000.0722120/22137ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#get_oid_type87 +
  0.000.000.000.0013504/13504ActiveRecord::Result#initialize89 +
  0.000.000.000.0013504/13517PG::Result#values89 +
  0.000.000.000.0013510/13510PG::Result#clear603 +
  0.000.000.000.0013504/13504PG::Result#fields83 +
  0.000.000.000.0022120/22168PG::Result#ftype85 +
  0.000.000.000.0022120/22120PG::Result#fmod86 +
  0.000.000.000.0013510/13510ActiveRecord::ConnectionAdapters::AbstractAdapter#without_prepared_statement?595 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::PostgreSQL::OID::TypeMapInitializer#run588 +
  0.000.000.000.001/639ActiveSupport::Dependencies::Loadable#require89 +
  0.000.000.000.001/3PG::Result#each827 +
  0.000.000.000.004/4PG::Result#cmd_tuples94 +
  0.000.000.000.001/12285Array#compact827 +
  0.750.000.000.751623/13504ActiveRecord::ConnectionAdapters::DatabaseStatements#select478
  1.430.000.001.434265/13504ActiveRecord::ConnectionAdapters::DatabaseStatements#exec_insert130
  1.990.000.001.997616/13504ActiveRecord::ConnectionAdapters::DatabaseStatements#select_prepared482
42.19%0.04%4.180.000.004.1813504 + + ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_query + + 80
  4.180.040.004.1413504/13510ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#execute_and_clear81 +
  0.000.000.000.001/21147ActiveRecord::ConnectionAdapters::ConnectionHandler#establish_connection988
  0.180.010.000.177616/21147ActiveRecord::Querying#find_by_sql51
  3.790.010.003.7813530/21147ActiveRecord::ConnectionAdapters::AbstractAdapter#log571
40.12%0.25%3.970.020.003.9521147 + + ActiveSupport::Notifications::Instrumenter#instrument + + 19
  2.290.000.002.2813530/21150ActiveSupport::Concurrency::LoadInterlockAwareMonitor#synchronize580 +
  1.390.010.001.3821147/21147ActiveSupport::Notifications::Instrumenter#finish_with_state29 +
  0.160.010.000.157616/7616ActiveRecord::Result#each52 +
  0.120.000.000.1121147/21147ActiveSupport::Notifications::Instrumenter#start21 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::ConnectionPool#initialize989 +
  0.000.000.000.001/38Concurrent::Collection::MriMapBackend#[]=989 +
  0.000.000.000.001/42700ActiveRecord::ConnectionAdapters::ConnectionHandler#owner_to_pool989 +
  0.010.000.000.017/13530ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#execute73
  0.020.000.000.0213/13530ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#query61
  1.750.000.001.757616/13530ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_cache620
  2.020.000.002.025894/13530ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_no_cache609
38.37%0.07%3.800.010.003.7913530 + + ActiveRecord::ConnectionAdapters::AbstractAdapter#log + + 570
  3.790.010.003.7813530/21147ActiveSupport::Notifications::Instrumenter#instrument571 +
  0.000.000.000.0013530/21451Kernel#object_id571 +
  3.670.000.003.677229/7229<Class::Thread>#handle_interrupt
37.07%0.04%3.670.000.003.677229 + + ActiveRecord::Querying#find_or_create_by + + 8
  3.590.000.003.597229/7229ActiveRecord::Relation#find_or_create_by8 +
  0.080.010.000.077229/13518ActiveRecord::Scoping::Named::ClassMethods#all8 +
  3.590.000.003.597229/7229ActiveRecord::Querying#find_or_create_by8
36.22%0.02%3.590.000.003.597229 + + ActiveRecord::Relation#find_or_create_by + + 163
  2.940.000.002.947229/7229ActiveRecord::FinderMethods#find_by164 +
  0.650.000.000.64633/633ActiveRecord::Relation#create164 +
  0.920.000.000.921623/8852ActiveRecord::FinderMethods#exists?322
  2.630.020.002.617229/8852ActiveRecord::Relation#exec_queries547
35.79%0.22%3.550.020.003.528852 + + ActiveRecord::Relation#skip_query_cache_if_necessary + + 578
  2.310.020.002.297229/7616ActiveRecord::Querying#find_by_sql560 +
  0.840.000.000.831623/1623ActiveRecord::ConnectionAdapters::DatabaseStatements#select_one322 +
  0.320.000.000.328852/8857ActiveRecord::QueryMethods#arel560 +
  0.020.010.000.0114458/16472ActiveRecord::Relation#eager_loading?549 +
  0.010.000.000.011623/11960ActiveRecord::Delegation#connection322 +
  0.010.000.000.011612/1612Bus::ActiveRecord_Relation#name322 +
  0.000.000.000.007229/21553ActiveRecord::QueryMethods#preload_values563 +
  0.000.000.000.008852/8852ActiveRecord::QueryMethods#skip_query_cache_value579 +
  0.000.000.000.007229/7229ActiveRecord::QueryMethods#readonly_value571 +
  0.000.000.000.007229/38025ActiveRecord::QueryMethods#includes_values564 +
  0.000.000.000.007229/28362Kernel#freeze560 +
  0.000.000.000.009/9City::ActiveRecord_Relation#name322 +
  0.000.000.000.002/2ActiveRecord::Delegation::ClassSpecificRelation#method_missing322 +
  0.600.000.000.60633/4265ActiveRecord::Persistence::ClassMethods#create36
  1.410.000.001.412632/4265ActiveRecord::Associations::CollectionAssociation#insert_record377
  2.880.000.002.881000/4265ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction428
35.06%0.04%3.470.000.003.474265 + + *ActiveRecord::Suppressor#save + + 43
  4.870.000.004.874265/4265ActiveRecord::Transactions#save44 +
  0.000.000.000.004264/5265<Class::ActiveRecord::SuppressorRegistry>#suppressed44 +
  0.000.000.000.004265/635445Kernel#class44 +
  0.000.000.000.001633/39717Module#name44 +
  0.000.000.000.001/4ActiveSupport::PerThreadRegistry#method_missing44 +
  4.870.000.004.874265/4265ActiveRecord::Suppressor#save44
35.03%0.01%3.470.000.003.474265 + + *ActiveRecord::Transactions#save + + 308
  4.870.000.004.874265/4265ActiveRecord::Transactions#rollback_active_record_state!309 +
  4.870.000.004.874265/4265ActiveRecord::Transactions#save309
35.02%0.03%3.470.000.003.474265 + + *ActiveRecord::Transactions#rollback_active_record_state! + + 323
  4.850.000.004.844265/6265ActiveRecord::Transactions#with_transaction_returning_status310 +
  0.020.000.000.024265/10530ActiveRecord::Transactions#remember_transaction_record_state324 +
  0.000.000.000.004265/4265ActiveRecord::Transactions#clear_transaction_record_state330 +
  4.720.000.004.714265/4265ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction310
34.34%0.03%3.400.000.003.404265 + + *ActiveRecord::Validations#save + + 45
  3.230.000.003.233652/3652ActiveRecord::Persistence#save46 +
  1.480.000.001.484265/5265ActiveRecord::Validations#perform_validations46 +
  0.830.000.000.831623/9239ActiveRecord::ConnectionAdapters::DatabaseStatements#select_one77
  2.330.010.002.337616/9239ActiveRecord::Querying#find_by_sql41
31.97%0.09%3.170.010.003.169239 + + ActiveRecord::ConnectionAdapters::QueryCache#select_all + + 95
  3.160.010.003.159239/9239ActiveRecord::ConnectionAdapters::DatabaseStatements#select_all106 +
  3.160.010.003.159239/9239ActiveRecord::ConnectionAdapters::QueryCache#select_all106
31.89%0.08%3.160.010.003.159239 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#select_all + + 59
  2.000.000.001.997616/7616ActiveRecord::ConnectionAdapters::DatabaseStatements#select_prepared68 +
  0.750.000.000.751623/1623ActiveRecord::ConnectionAdapters::DatabaseStatements#select70 +
  0.400.010.000.399239/13508ActiveRecord::ConnectionAdapters::DatabaseStatements#to_sql_and_binds61 +
  0.000.000.000.009239/9239ActiveRecord::ConnectionAdapters::DatabaseStatements#arel_from_relation60 +
  2.940.000.002.947229/7229ActiveRecord::Relation#find_or_create_by164
29.69%0.04%2.940.000.002.947229 + + ActiveRecord::FinderMethods#find_by + + 80
  2.660.000.002.667229/7229ActiveRecord::FinderMethods#take81 +
  0.270.010.000.277229/7616ActiveRecord::QueryMethods#where81 +
  0.720.000.000.721000/4652ActiveRecord::Persistence#save!308
  3.230.000.003.233652/4652ActiveRecord::Persistence#save275
26.92%0.01%2.670.000.002.674652 + + *ActiveRecord::Callbacks#create_or_update + + 341
  3.950.000.003.954652/4652ActiveRecord::Base#_run_save_callbacks342 +
  3.950.000.003.954652/4652ActiveRecord::Callbacks#create_or_update342
26.91%0.01%2.670.000.002.664652 + + *ActiveRecord::Base#_run_save_callbacks + + 815
  3.950.010.003.934652/51015ActiveSupport::Callbacks#run_callbacks816 +
  2.660.000.002.667229/7229ActiveRecord::FinderMethods#find_by81
26.89%0.02%2.660.000.002.667229 + + ActiveRecord::FinderMethods#take + + 102
  2.660.000.002.667229/7229ActiveRecord::FinderMethods#find_take103 +
  2.660.000.002.667229/7229ActiveRecord::FinderMethods#take103
26.87%0.05%2.660.000.002.667229 + + ActiveRecord::FinderMethods#find_take + + 500
  2.630.000.002.637229/7229ActiveRecord::Relation#records504 +
  0.020.000.000.027229/7229ActiveRecord::QueryMethods#limit504 +
  2.630.000.002.637229/7229ActiveRecord::FinderMethods#find_take504
26.59%0.02%2.630.000.002.637229 + + ActiveRecord::Relation#records + + 199
  2.630.000.002.637229/7229ActiveRecord::Relation#load200 +
  2.630.000.002.637229/7229ActiveRecord::Relation#records200
26.56%0.03%2.630.000.002.637229 + + ActiveRecord::Relation#load + + 421
  2.630.000.002.637229/7229ActiveRecord::Relation#exec_queries422 +
  2.630.000.002.637229/7229ActiveRecord::Relation#load422
26.54%0.02%2.630.000.002.637229 + + ActiveRecord::Relation#exec_queries + + 546
  2.630.020.002.617229/8852ActiveRecord::Relation#skip_query_cache_if_necessary547 +
  0.300.000.000.30387/7616ActiveRecord::StatementCache#execute108
  2.310.020.002.297229/7616ActiveRecord::Relation#skip_query_cache_if_necessary560
26.34%0.22%2.610.020.002.597616 + + ActiveRecord::Querying#find_by_sql + + 40
  2.330.010.002.337616/9239ActiveRecord::ConnectionAdapters::QueryCache#select_all41 +
  0.180.010.000.177616/21147ActiveSupport::Notifications::Instrumenter#instrument51 +
  0.040.000.000.047616/42695ActiveRecord::ConnectionHandling#connection41 +
  0.010.000.000.017616/7618<Module::ActiveSupport::Notifications>#instrumenter44 +
  0.010.000.000.007616/12880ActiveRecord::Sanitization::ClassMethods#sanitize_sql41 +
  0.010.000.000.007616/42392ActiveRecord::ModelSchema::ClassMethods#attribute_types43 +
  0.000.000.000.0016232/139363Hash#delete43 +
  0.000.000.000.0015232/39717Module#name41 +
  0.000.000.000.007616/81201Hash#initialize_copy42 +
  0.000.000.000.007616/7616ActiveRecord::Result#length47 +
  3.750.010.003.744652/4652ActiveSupport::Callbacks#run_callbacks342
25.88%0.05%2.560.010.002.564652 + + *ActiveRecord::Persistence#create_or_update + + 702
  3.690.000.003.694265/4265ActiveRecord::Timestamp#_create_record705 +
  0.040.000.000.04387/387ActiveRecord::Timestamp#_update_record705 +
  0.000.000.000.004652/20812ActiveRecord::Persistence#destroyed?704 +
  0.000.000.000.004652/41328ActiveRecord::Persistence#new_record?705 +
  0.000.000.000.004652/7736Integer#==706 +
  0.000.000.000.004652/4652ActiveRecord::Core#readonly?703 +
  3.690.000.003.694265/4265ActiveRecord::Persistence#create_or_update705
25.43%0.04%2.520.000.002.524265 + + *ActiveRecord::Timestamp#_create_record + + 91
  3.660.000.003.664265/4265ActiveRecord::Callbacks#_create_record102 +
  0.010.000.000.014265/4265ActiveRecord::Timestamp#all_timestamp_attributes_in_model95 +
  0.010.000.000.014265/4265ActiveRecord::Timestamp#current_time_from_proper_timezone93 +
  0.000.000.000.004265/4652ActiveRecord::Base#record_timestamps92 +
  3.660.000.003.664265/4265ActiveRecord::Timestamp#_create_record102
25.30%0.01%2.510.000.002.504265 + + *ActiveRecord::Callbacks#_create_record + + 345
  3.660.000.003.664265/4265ActiveRecord::Base#_run_create_callbacks346 +
  3.660.000.003.664265/4265ActiveRecord::Callbacks#_create_record346
25.29%0.01%2.510.000.002.504265 + + *ActiveRecord::Base#_run_create_callbacks + + 815
  3.660.010.003.654265/51015ActiveSupport::Callbacks#run_callbacks816 +
  2.250.010.002.2413530/13530<Class::Thread>#handle_interrupt
22.72%0.08%2.250.010.002.2413530 + + ActiveSupport::Dependencies::Interlock#permit_concurrent_loads + + 46
  2.240.020.002.2313530/13530ActiveSupport::Concurrency::ShareLock#yield_shares47 +
  2.240.020.002.2313530/13530ActiveSupport::Dependencies::Interlock#permit_concurrent_loads47
22.64%0.17%2.240.020.002.2313530 + + ActiveSupport::Concurrency::ShareLock#yield_shares + + 171
  1.211.190.020.005894/5894PG::Connection#exec_params611 +
  0.910.890.020.007616/7616PG::Connection#exec_prepared622 +
  0.080.010.000.0727060/54097MonitorMixin#synchronize173 +
  0.020.020.000.0020/20PG::Connection#async_exec75 +
  0.000.000.000.0013/13ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#result_as_array63 +
  2.150.000.002.155894/5894ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#execute_and_clear596
21.73%0.03%2.150.000.002.155894 + + ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_no_cache + + 607
  2.020.000.002.025894/13530ActiveRecord::ConnectionAdapters::AbstractAdapter#log609 +
  0.130.010.000.125894/13510ActiveRecord::ConnectionAdapters::Quoting#type_casted_binds608 +
  2.050.000.002.044265/4265ActiveSupport::Callbacks#run_callbacks346
20.67%0.05%2.050.000.002.044265 + + ActiveRecord::AttributeMethods::Dirty#_create_record + + 139
  1.870.000.001.864265/4265ActiveRecord::Locking::Optimistic#_create_record140 +
  0.090.010.000.084265/4652ActiveModel::Dirty#changes_applied141 +
  0.080.000.000.084265/4652ActiveRecord::AttributeMethods::Dirty#keys_for_partial_write140 +
  0.010.000.000.004265/5039ActiveRecord::Base#partial_writes?140 +
  2.000.000.001.997616/7616ActiveRecord::ConnectionAdapters::DatabaseStatements#select_all68
20.15%0.03%2.000.000.001.997616 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#select_prepared + + 481
  1.990.000.001.997616/13504ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_query482 +
  3.230.000.003.233652/3652ActiveRecord::Validations#save46
19.67%0.01%1.950.000.001.953652 + + *ActiveRecord::Persistence#save + + 274
  3.230.000.003.233652/4652ActiveRecord::Callbacks#create_or_update275 +
  1.900.010.001.897616/7616ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#execute_and_clear600
19.13%0.06%1.900.010.001.897616 + + ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_cache + + 616
  1.750.000.001.757616/13530ActiveRecord::ConnectionAdapters::AbstractAdapter#log620 +
  0.100.010.000.097616/13510ActiveRecord::ConnectionAdapters::Quoting#type_casted_binds618 +
  0.040.000.000.047616/7616ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#prepare_statement617 +
  1.870.000.001.864265/4265ActiveRecord::AttributeMethods::Dirty#_create_record140
18.85%0.03%1.870.000.001.864265 + + ActiveRecord::Locking::Optimistic#_create_record + + 64
  1.860.000.001.854265/4265ActiveRecord::CounterCache#_create_record70 +
  0.010.000.000.014265/4265ActiveRecord::Locking::Optimistic#locking_enabled?65 +
  0.000.000.000.001/21542Bundler::FeatureFlag#unlock_source_unlocks_spec?22
  0.000.000.000.001/21542Bundler::FeatureFlag#skip_default_git_sources?22
  0.000.000.000.001/21542Bundler::FeatureFlag#default_install_uses_path?22
  0.000.000.000.001/21542Bundler::FeatureFlag#prefer_gems_rb?22
  0.000.000.000.002/21542Bundler::FeatureFlag#setup_makes_kernel_gem_public?22
  0.000.000.000.004/21542Bundler::FeatureFlag#deployment_means_frozen?22
  0.000.000.000.0010/21542Service#autosave_associated_records_for_buses159
  0.000.000.000.001/21542<Class::Rails::Engine>#isolate_namespace391
  0.000.000.000.007/21542<Module::Singleton>#__init__140
  0.000.000.000.0010/21542Service#autosave_associated_records_for_services_buses159
  0.000.000.000.009/21542Bundler::FeatureFlag#lockfile_uses_separate_rubygems_sources?22
  0.000.000.000.0069/21542Bundler::FeatureFlag#specific_platform?22
  0.000.000.000.001/21542Rails::Railtie#configure216
  0.000.000.000.006/21542Listen::FSM::State#call121
  0.000.000.000.001000/21542Bus#autosave_associated_records_for_trips159
  0.000.000.000.001/21542Bundler::Dsl#eval_gemfile47
  0.000.000.000.001613/21542Bus#validate_associated_records_for_trips159
  0.000.000.000.002642/21542Service#validate_associated_records_for_buses159
  0.000.000.000.002632/21542Bus::HABTM_Services#autosave_associated_records_for_left_side159
  0.000.000.000.002642/21542Service#validate_associated_records_for_services_buses159
  0.020.000.000.021000/21542Trip#autosave_associated_records_for_to159
  0.020.000.000.0231/21542ActiveSupport::LazyLoadHooks#with_execution_control71
  0.020.000.000.021000/21542Trip#autosave_associated_records_for_bus159
  0.020.000.000.021000/21542Trip#autosave_associated_records_for_from159
  0.040.000.000.041613/21542Bus#validate_associated_records_for_buses_services159
  0.060.000.000.062632/21542Bus::HABTM_Services#autosave_associated_records_for_service159
  0.140.000.000.141000/21542Bus#autosave_associated_records_for_services159
  0.140.000.000.141613/21542Bus#validate_associated_records_for_services159
  1.450.000.001.451000/21542Bus#autosave_associated_records_for_buses_services159
18.81%0.12%1.860.010.001.8521542 + + *BasicObject#instance_eval + +
  1.590.010.001.583020/3020ActiveRecord::AutosaveAssociation#save_collection_association187 +
  0.190.010.000.1810123/10123ActiveRecord::AutosaveAssociation#validate_collection_association220 +
  0.120.020.000.118264/8264ActiveRecord::AutosaveAssociation#save_belongs_to_association204 +
  0.010.000.000.011/1ActiveRecord::ConnectionHandling#establish_connection136 +
  0.000.000.000.007/639ActiveSupport::Dependencies::Loadable#require60 +
  0.000.000.000.001/1Rails::Application#config_for33 +
  0.000.000.000.001/1Bundler::RubyDsl#ruby4 +
  0.000.000.000.001/1Rails::Application::Configuration#database_configuration133 +
  0.000.000.000.002/2Listen::Event::Loop#setup72 +
  0.000.000.000.002/2Listen::Backend#start68 +
  0.000.000.000.003/642Module#include17 +
  0.000.000.000.005/9Bundler::Dsl#gem6 +
  0.000.000.000.0088/88Bundler::FeatureFlag#bundler_3_mode?51 +
  0.000.000.000.003/3Bundler::Dsl#group11 +
  0.000.000.000.002/3<Class::ActiveSupport::Reloader>#before_class_unload73 +
  0.000.000.000.003/80ActiveSupport::Callbacks::ClassMethods#set_callback56 +
  0.000.000.000.001/1Bundler::Dsl#source1 +
  0.000.000.000.001/12Pathname#join17 +
  0.000.000.000.001/1027<Class::File>#file?93 +
  0.000.000.000.001/8<Class::ActiveSupport::ExecutionWrapper>#to_run61 +
  0.000.000.000.0017/232ActiveSupport::OrderedOptions#method_missing25 +
  0.000.000.000.001/2<Class::ActiveRecord::Base>#configurations=133 +
  0.000.000.000.001/26Module#cattr_accessor2335 +
  0.000.000.000.001/1ActiveRecord::ConnectionHandling#clear_active_connections!191 +
  0.000.000.000.001/1ActiveRecord::ConnectionHandling#flush_idle_connections!192 +
  0.000.000.000.0022/209Rails::Railtie::Configuration#method_missing25 +
  0.000.000.000.001/1Mime::Mimes#symbols111 +
  0.000.000.000.002/2Listen::Event::Loop#resume76 +
  0.000.000.000.002/13Rails::Paths::Path#first32 +
  0.000.000.000.001/2633Hash#with_indifferent_access33 +
  0.000.000.000.002/7Pathname#exist?17 +
  0.000.000.000.003/9I18n::Base#load_path76 +
  0.000.000.000.001/1<Class::ActionView::Base>#assets_prefix=255 +
  0.000.000.000.001/1<Class::ActionView::Base>#logger=39 +
  0.000.000.000.001/2<Class::ActiveRecord::Base>#cache_versioning=124 +
  0.000.000.000.003/1582<Class::File>#expand_path76 +
  0.000.000.000.001/1172Module#class_eval399 +
  0.000.000.000.001/1<Class::ActionView::Base>#assets_precompile=256 +
  0.000.000.000.0027/13695Rails::Application#config7 +
  0.000.000.000.001/1<Class::ActionView::Base>#resolve_assets_with=261 +
  0.000.000.000.001/1<Class::ActionView::Base>#debug_assets=253 +
  0.000.000.000.001/1<Class::ActionView::Base>#digest_assets=254 +
  0.000.000.000.001/1<Class::ActionView::Base>#assets_environment=258 +
  0.000.000.000.001/1<Class::ActionView::Base>#unknown_asset_fallback=264 +
  0.000.000.000.001/1<Class::ActionView::Base>#assets_manifest=259 +
  0.000.000.000.001/1<Class::ActionView::Base>#precompiled_asset_checker=266 +
  0.000.000.000.001/1<Class::ActionView::Base>#check_precompiled_asset=263 +
  0.000.000.000.001/5608Kernel#extend89 +
  0.000.000.000.007/201584Symbol#to_s45 +
  0.000.000.000.003/23Kernel#__dir__76 +
  0.000.000.000.001/1<Class::ActiveRecord::Base>#belongs_to_required_by_default=124 +
  0.000.000.000.001/2<Class::ActiveRecord::Base>#time_zone_aware_attributes=71 +
  0.000.000.000.001/4Bundler::Dsl#git_source2 +
  0.000.000.000.004/1703Module#define_method392 +
  0.000.000.000.002/2<Class::ActionView::Base>#default_formats111 +
  0.000.000.000.001/13516<Module::Rails>#root17 +
  0.000.000.000.001/81125<Class::ActiveRecord::Base>#logger77 +
  0.000.000.000.007/276Thread::Mutex#initialize142 +
  0.000.000.000.002/3<Class::ActionView::Template::Types>#delegate_to112 +
  0.000.000.000.002/27047<Module::Rails>#application33 +
  0.000.000.000.001/1<Class::ActiveRecord::Base>#logger=77 +
  0.000.000.000.001/2<Class::ActionView::Base>#debug_missing_translation=45 +
  0.000.000.000.001/1<Class::ActiveRecord::Base>#maintain_test_schema=124 +
  0.000.000.000.001/2<Class::ActiveRecord::Base>#default_timezone=72 +
  0.000.000.000.004/139363Hash#delete17 +
  0.000.000.000.004/184396Kernel#respond_to?394 +
  0.000.000.000.001/2<Class::ActiveRecord::Base>#verbose_query_logs=124 +
  0.000.000.000.001/917Pathname#initialize32 +
  0.000.000.000.002/59Rails::Paths::Root#[]32 +
  0.000.000.000.001/21<Module::Rails>#env33 +
  0.000.000.000.002/29Rails::Application::Configuration#paths32 +
  0.000.000.000.001/1<Class::ActionView::Base>#logger39 +
  0.000.000.000.001/3253<Class::File>#join91 +
  0.000.000.000.001/1<Class::ActionView::Base>#default_formats=111 +
  0.000.000.000.001/81201Hash#initialize_copy121 +
  0.000.000.000.001/2<Class::ActionView::Resolver>#caching=53 +
  0.000.000.000.001/1<Class::ActionView::Resolver>#caching?60 +
  0.000.000.000.001/2<Module::ActionView::Helpers::FormHelper>#form_with_generates_remote_forms=25 +
  0.000.000.000.001/2<Module::ActionView::Helpers::FormTagHelper>#embed_authenticity_token_in_remote_forms=17 +
  0.000.000.000.001/2<Module::ActionView::Helpers::FormHelper>#form_with_generates_ids=33 +
  0.000.000.000.001/926Kernel#lambda67 +
  1.860.000.001.854265/4265ActiveRecord::Locking::Optimistic#_create_record70
18.73%0.03%1.860.000.001.854265 + + ActiveRecord::CounterCache#_create_record + + 183
  1.840.010.001.834265/4265ActiveRecord::Persistence#_create_record184 +
  0.020.010.000.014265/4265ActiveRecord::CounterCache#each_counter_cached_associations186 +
  1.840.010.001.834265/4265ActiveRecord::CounterCache#_create_record184
18.54%0.08%1.840.010.001.834265 + + ActiveRecord::Persistence#_create_record + + 730
  1.750.010.001.744265/4265ActiveRecord::Persistence::ClassMethods#_insert_record734 +
  0.030.010.000.038530/87731ActiveRecord::AttributeMethods::PrimaryKey#id735 +
  0.030.000.000.024265/4265ActiveRecord::AttributeMethods#attributes_with_values_for_create732 +
  0.020.000.000.014265/4265ActiveRecord::AttributeMethods::PrimaryKey#id=735 +
  0.000.000.000.004265/150660ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods#primary_key735 +
  0.000.000.000.004265/9356Array#&731 +
  0.000.000.000.0012795/635445Kernel#class731 +
  0.000.000.000.004265/49528ActiveRecord::ModelSchema::ClassMethods#column_names731 +
  0.000.000.000.004265/120806Kernel#block_given?739 +
  1.840.050.001.7915173/15173ActiveSupport::Callbacks#run_callbacks131
17.81%0.49%1.760.050.001.7215173 + + *ActiveSupport::Callbacks::CallbackSequence#invoke_before + + 512
  1.780.040.001.7440550/52834Kernel#catch605 +
  0.010.010.000.0081100/104558ActiveSupport::Callbacks::Filters::Environment#halted195 +
  0.000.000.000.0040550/64009ActiveSupport::Callbacks::Filters::Environment#value194 +
  0.000.000.000.0040550/48836ActiveSupport::Callbacks::Filters::Environment#target193 +
  1.750.010.001.744265/4265ActiveRecord::Persistence#_create_record734
17.68%0.09%1.750.010.001.744265 + + ActiveRecord::Persistence::ClassMethods#_insert_record + + 168
  1.590.000.001.594265/4265ActiveRecord::ConnectionAdapters::AbstractAdapter#insert187 +
  0.070.010.000.064265/4265ActiveRecord::Persistence::ClassMethods#_substitute_values184 +
  0.030.000.000.034265/4265ActiveRecord::ModelSchema::ClassMethods#prefetch_primary_key?174 +
  0.020.000.000.024265/42695ActiveRecord::ConnectionHandling#connection187 +
  0.020.000.000.024265/4265Arel::Crud#compile_insert184 +
  0.000.000.000.0012795/150660ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods#primary_key171 +
  0.000.000.000.004265/4809Module#to_s187 +
  0.000.000.000.004265/47710ActiveRecord::Core::ClassMethods#arel_table184 +
  0.000.000.000.004265/887726Module#===171 +
  0.000.000.000.001/52834Kernel#catch
  0.000.000.000.001/52834OptionParser#parse_in_order1575
  0.000.000.000.0022/52834<Module::Forwardable>#_valid_method?4
  0.000.000.000.003065/52834I18n::Backend::Base#resolve_entry149
  0.060.000.000.064291/52834I18n::Backend::Base#resolve149
  0.150.000.000.154904/52834I18n::Base#translate_key362
  1.780.040.001.7440550/52834ActiveSupport::Callbacks::CallbackSequence#invoke_before605
17.36%0.46%1.720.050.001.6752834 + + *Kernel#catch + +
  1.370.020.001.3521143/21143ActiveModel::EachValidator#validate426 +
  0.150.010.000.134904/4904I18n::Backend::Base#translate363 +
  0.140.000.000.141613/1613Bus#validate_associated_records_for_services426 +
  0.060.000.000.062632/2632Bus::HABTM_Services#autosave_associated_records_for_service426 +
  0.050.000.000.053065/4904I18n::Base#translate152 +
  0.040.000.000.041613/1613Bus#validate_associated_records_for_buses_services426 +
  0.040.030.000.0140550/52866ActiveSupport::Callbacks::CallTemplate#expand425 +
  0.030.000.000.021000/1000Trip#autosave_associated_records_for_from426 +
  0.020.000.000.021000/1000Trip#autosave_associated_records_for_bus426 +
  0.020.000.000.021000/1000Trip#autosave_associated_records_for_to426 +
  0.010.000.000.002632/2632Bus::HABTM_Services#autosave_associated_records_for_left_side426 +
  0.010.000.000.002642/2642Service#validate_associated_records_for_services_buses426 +
  0.000.000.000.002642/2642Service#validate_associated_records_for_buses426 +
  0.000.000.000.001613/1613Bus#validate_associated_records_for_trips426 +
  0.000.000.000.001010/1010ActiveRecord::AutosaveAssociation#before_save_collection_association426 +
  0.000.000.000.0011647/887726Module#===150 +
  0.000.000.000.003065/14527Hash#merge152 +
  0.000.000.000.0022/97Kernel#eval5 +
  0.000.000.000.0010/10City#name_has_no_spaces426 +
  0.000.000.000.001/52834Kernel#catch1629 +
  0.000.000.000.001/163OptionParser#visit1630 +
  0.000.000.000.0022/71Kernel#binding5 +
  0.000.000.000.0022/201584Symbol#to_s5 +
  0.000.000.000.002/60121Regexp#===1577 +
  0.000.000.000.002/3150Array#shift1576 +
  0.000.000.000.001/106Array#<<1634 +
  0.200.000.000.204265/5265ActiveRecord::Core#initialize325
  1.600.000.001.591000/5265ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction427
17.31%0.04%1.710.000.001.715265 + + *ActiveModel::AttributeAssignment#assign_attributes + + 28
  1.780.010.001.775265/7897ActiveRecord::AttributeAssignment#_assign_attributes35 +
  0.010.000.000.015265/9164Hash#stringify_keys34 +
  0.000.000.000.005265/5265ActiveModel::ForbiddenAttributesProtection#sanitize_for_mass_assignment35 +
  0.000.000.000.005265/184396Kernel#respond_to?29 +
  0.020.000.000.022632/7897ActiveRecord::Associations::Association#initialize_attributes185
  1.780.010.001.775265/7897ActiveModel::AttributeAssignment#assign_attributes35
17.23%0.13%1.710.010.001.697897 + + *ActiveRecord::AttributeAssignment#_assign_attributes + + 12
  1.780.000.001.787897/7897ActiveModel::AttributeAssignment#_assign_attributes23 +
  0.000.000.000.0013897/448872Kernel#is_a?19 +
  0.000.000.000.0013897/31207String#include?17 +
  1.780.000.001.787897/7897ActiveRecord::AttributeAssignment#_assign_attributes23
17.14%0.05%1.700.000.001.697897 + + *ActiveModel::AttributeAssignment#_assign_attributes + + 42
  1.780.010.001.7713897/13897ActiveModel::AttributeAssignment#_assign_attribute44 +
  1.780.010.001.7713897/13897ActiveModel::AttributeAssignment#_assign_attributes44
17.12%0.12%1.700.010.001.6813897 + + *ActiveModel::AttributeAssignment#_assign_attribute + + 48
  1.580.000.001.581000/1000Bus::GeneratedAssociationMethods#services=51 +
  0.060.000.000.062632/2632Bus::HABTM_Services::GeneratedAssociationMethods#service=51 +
  0.030.020.000.0213897/35161ActiveRecord::AttributeMethods#respond_to?50 +
  0.030.000.000.031000/1000Trip::GeneratedAssociationMethods#from=51 +
  0.020.000.000.021000/1000Trip::GeneratedAssociationMethods#to=51 +
  0.020.000.000.021000/1000Trip::GeneratedAssociationMethods#bus=51 +
  0.010.000.000.012632/2632#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x000000011b9d2b98>#bus_id=51 +
  0.000.000.000.001000/1000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c3f358>#model=51 +
  0.000.000.000.001000/1000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c99e70>#start_time=51 +
  0.000.000.000.001000/1000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c99e70>#duration_minutes=51 +
  0.000.000.000.001000/1000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c99e70>#price_cents=51 +
  0.000.000.000.00613/613#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c3f358>#number=51 +
  0.000.000.000.0010/10#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c2f728>#name=51 +
  0.000.000.000.0010/10#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x000000011b9a8050>#name=51 +
  0.200.000.000.201000/5265ActiveRecord::Validations#save!52
  1.480.000.001.484265/5265ActiveRecord::Validations#save46
16.98%0.02%1.680.000.001.685265 + + ActiveRecord::Validations#perform_validations + + 83
  1.680.010.001.675265/10529ActiveRecord::Validations#valid?84 +
  0.160.000.000.165264/10529ActiveRecord::AutosaveAssociation#association_valid?329
  1.680.010.001.675265/10529ActiveRecord::Validations#perform_validations84
16.96%0.10%1.680.010.001.6710529 + + *ActiveRecord::Validations#valid? + + 65
  1.810.010.001.8010529/10529ActiveModel::Validations#valid?67 +
  0.010.000.000.0110529/21058ActiveModel::Errors#empty?68 +
  0.010.000.000.0110529/10529ActiveRecord::Validations#default_validation_context66 +
  0.000.000.000.0010529/37068ActiveModel::Validations#errors68 +
  1.810.010.001.8010529/10529ActiveRecord::Validations#valid?67
16.78%0.09%1.660.010.001.6510529 + + *ActiveModel::Validations#valid? + + 336
  1.780.000.001.7810529/10529ActiveModel::Validations::Callbacks#run_validations!339 +
  0.020.000.000.0110529/37068ActiveModel::Validations#errors338 +
  0.000.000.000.0010529/10529ActiveModel::Errors#clear338 +
  1.780.000.001.7810529/10529ActiveModel::Validations#valid?339
16.64%0.03%1.650.000.001.6510529 + + *ActiveModel::Validations::Callbacks#run_validations! + + 117
  1.780.000.001.7710529/10529ActiveRecord::Base#_run_validation_callbacks118 +
  1.780.000.001.7710529/10529ActiveModel::Validations::Callbacks#run_validations!118
16.62%0.03%1.650.000.001.6410529 + + *ActiveRecord::Base#_run_validation_callbacks + + 815
  1.770.010.001.7610529/51015ActiveSupport::Callbacks#run_callbacks816 +
  1.630.020.001.6115173/15173ActiveSupport::Callbacks#run_callbacks133
16.44%0.18%1.630.020.001.6115173 + + *ActiveSupport::Callbacks::CallbackSequence#invoke_after + + 516
  1.450.000.001.451000/1000Bus#autosave_associated_records_for_buses_services426 +
  0.140.000.000.141000/1000Bus#autosave_associated_records_for_services426 +
  0.010.010.000.0012316/52866ActiveSupport::Callbacks::CallTemplate#expand425 +
  0.000.000.000.004030/4030ActiveSupport::Callbacks::Conditionals::Value#call426 +
  0.000.000.000.004255/4255ActiveRecord::AutosaveAssociation#_ensure_no_duplicate_errors426 +
  0.000.000.000.001000/1000Bus#autosave_associated_records_for_trips426 +
  0.000.000.000.008286/64009ActiveSupport::Callbacks::Filters::Environment#value271 +
  0.000.000.000.008285/104558ActiveSupport::Callbacks::Filters::Environment#halted246 +
  0.000.000.000.008286/48836ActiveSupport::Callbacks::Filters::Environment#target271 +
  0.000.000.000.001010/1010ActiveRecord::AutosaveAssociation#after_save_collection_association426 +
  0.000.000.000.0010/10Service#autosave_associated_records_for_services_buses426 +
  0.000.000.000.0010/10Service#autosave_associated_records_for_buses426 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::QueryCache#configure_query_cache!426 +
  1.730.010.001.7210529/10529ActiveSupport::Callbacks#run_callbacks118
16.38%0.06%1.620.010.001.6210529 + + *ActiveModel::Validations#run_validations! + + 408
  1.700.000.001.7010529/10529ActiveRecord::Base#_run_validate_callbacks409 +
  0.020.000.000.0110529/21058ActiveModel::Errors#empty?410 +
  0.000.000.000.0010529/37068ActiveModel::Validations#errors410 +
  1.700.000.001.7010529/10529ActiveModel::Validations#run_validations!409
16.26%0.03%1.610.000.001.6110529 + + *ActiveRecord::Base#_run_validate_callbacks + + 815
  1.700.010.001.6910529/51015ActiveSupport::Callbacks#run_callbacks816 +
  1.590.000.001.594265/4265ActiveRecord::Persistence::ClassMethods#_insert_record187
16.06%0.02%1.590.000.001.594265 + + ActiveRecord::ConnectionAdapters::AbstractAdapter#insert + + 19
  1.590.000.001.594265/4265ActiveRecord::ConnectionAdapters::DatabaseStatements#insert21 +
  1.590.010.001.583020/3020BasicObject#instance_eval
16.04%0.09%1.590.010.001.583020 + + ActiveRecord::AutosaveAssociation#save_collection_association + + 381
  1.440.000.001.442632/2632ActiveRecord::Associations::HasManyAssociation#insert_record408 +
  0.110.000.000.112632/2632ActiveRecord::Associations::HasManyThroughAssociation#insert_record408 +
  0.010.000.000.012632/5880ActiveRecord::Reflection::ThroughReflection#nested?407 +
  0.000.000.000.005264/20812ActiveRecord::Persistence#destroyed?400 +
  0.000.000.000.002632/2634ActiveRecord::Reflection::ThroughReflection#validate?410 +
  0.000.000.000.001548/3096ActiveRecord::AutosaveAssociation#associated_records_to_validate_or_save392 +
  0.000.000.000.002632/5276ActiveRecord::Reflection::AssociationReflection#validate?410 +
  0.000.000.000.003020/34587ActiveRecord::Associations#association_instance_get382 +
  0.000.000.000.001548/8728ActiveRecord::Associations::Association#reset_scope390 +
  0.000.000.000.002632/2632ActiveRecord::Reflection::AssociationReflection#nested?407 +
  0.000.000.000.001010/11473ActiveRecord::Reflection::ThroughReflection#name382 +
  0.000.000.000.001000/49299ActiveRecord::Reflection::ThroughReflection#options383 +
  1.590.000.001.594265/4265ActiveRecord::ConnectionAdapters::AbstractAdapter#insert21
16.03%0.03%1.590.000.001.594265 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#insert + + 160
  1.450.000.001.444265/4265ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_insert162 +
  0.140.010.000.134265/13508ActiveRecord::ConnectionAdapters::DatabaseStatements#to_sql_and_binds161 +
  0.000.000.000.004265/4265ActiveRecord::ConnectionAdapters::DatabaseStatements#last_inserted_id163 +
  1.580.000.001.581000/1000ActiveModel::AttributeAssignment#_assign_attribute51
15.95%0.00%1.580.000.001.581000 + + Bus::GeneratedAssociationMethods#services= + + 115
  1.550.000.001.551000/1000ActiveRecord::Associations::CollectionAssociation#writer116 +
  0.020.000.000.021000/13180ActiveRecord::Associations#association116 +
  1.550.000.001.551000/1000Bus::GeneratedAssociationMethods#services=116
15.70%0.00%1.550.000.001.551000 + + ActiveRecord::Associations::CollectionAssociation#writer + + 40
  1.550.000.001.551000/1000ActiveRecord::Associations::CollectionAssociation#replace41 +
  1.550.000.001.551000/1000ActiveRecord::Associations::CollectionAssociation#writer41
15.69%0.03%1.550.000.001.551000 + + ActiveRecord::Associations::CollectionAssociation#replace + + 242
  0.990.000.000.99613/616ActiveRecord::Associations::CollectionAssociation#replace_records247 +
  0.430.000.000.431000/1613ActiveRecord::Associations::CollectionAssociation#load_target244 +
  0.120.000.000.12387/387ActiveRecord::Associations::CollectionAssociation#replace_common_records_in_memory249 +
  0.010.000.000.011583/7324ActiveRecord::Core#==250 +
  0.000.000.000.004229/12493ActiveRecord::Associations::Association#raise_on_type_mismatch!243 +
  0.000.000.000.003/6ActiveRecord::Associations::CollectionAssociation#transaction251 +
  0.000.000.000.001000/41328ActiveRecord::Persistence#new_record?246 +
  0.000.000.000.001000/2039Array#initialize_copy244 +
  1.450.000.001.451000/1000ActiveSupport::Callbacks::CallbackSequence#invoke_after426
14.64%0.01%1.450.000.001.451000 + + Bus#autosave_associated_records_for_buses_services + + 153
  1.450.000.001.451000/21542BasicObject#instance_eval159 +
  1.450.000.001.444265/4265ActiveRecord::ConnectionAdapters::DatabaseStatements#insert162
14.59%0.02%1.450.000.001.444265 + + ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_insert + + 113
  1.440.000.001.444265/4265ActiveRecord::ConnectionAdapters::DatabaseStatements#exec_insert115 +
  0.000.000.000.004265/4265ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#use_insert_returning?114 +
  1.440.000.001.444265/4265ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_insert115
14.57%0.03%1.440.000.001.444265 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#exec_insert + + 128
  1.430.000.001.434265/13504ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_query130 +
  0.010.000.000.004265/4265ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#sql_for_insert129 +
  1.440.000.001.442632/2632ActiveRecord::AutosaveAssociation#save_collection_association408
14.55%0.01%1.440.000.001.442632 + + ActiveRecord::Associations::HasManyAssociation#insert_record + + 34
  1.410.000.001.412632/2632ActiveRecord::Associations::CollectionAssociation#insert_record36 +
  0.030.000.000.032632/2632ActiveRecord::Associations::Association#set_owner_attributes35 +
  1.410.000.001.412632/2632ActiveRecord::Associations::HasManyAssociation#insert_record36
14.23%0.01%1.410.000.001.412632 + + ActiveRecord::Associations::CollectionAssociation#insert_record + + 373
  1.410.000.001.412632/4265ActiveRecord::Suppressor#save377 +
  1.390.010.001.3821147/21147ActiveSupport::Notifications::Instrumenter#instrument29
14.02%0.06%1.390.010.001.3821147 + + ActiveSupport::Notifications::Instrumenter#finish_with_state + + 43
  1.380.010.001.3721147/21147ActiveSupport::Notifications::Fanout#finish44 +
  1.380.010.001.3721147/21147ActiveSupport::Notifications::Instrumenter#finish_with_state44
13.95%0.12%1.380.010.001.3721147 + + ActiveSupport::Notifications::Fanout#finish + + 47
  1.370.010.001.3627060/27060ActiveSupport::Notifications::Fanout::Subscribers::Evented#finish48 +
  1.370.020.001.3521143/21143Kernel#catch
13.85%0.24%1.370.020.001.3521143 + + ActiveModel::EachValidator#validate + + 148
  1.010.000.001.011623/1623ActiveRecord::Validations::UniquenessValidator#validate_each152 +
  0.160.000.000.164255/4255ActiveModel::Validations::InclusionValidator#validate_each152 +
  0.040.000.000.046000/13229Object#blank?151 +
  0.030.010.000.032000/2000ActiveModel::Validations::NumericalityValidator#validate_each152 +
  0.030.010.000.0212265/12265ActiveRecord::Validations::PresenceValidator#validate_each152 +
  0.020.000.000.025284/5284#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x000000011b9a8050>#name150 +
  0.010.000.000.012000/2000Trip::GeneratedAssociationMethods#from150 +
  0.010.000.000.012000/2000Trip::GeneratedAssociationMethods#to150 +
  0.010.000.000.012000/2000Trip::GeneratedAssociationMethods#bus150 +
  0.010.000.000.013226/3226#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c3f358>#number150 +
  0.010.000.000.001613/2226#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c3f358>#model150 +
  0.000.000.000.0010530/33998String#blank?151 +
  0.000.000.000.002000/2000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c99e70>#duration_minutes150 +
  0.000.000.000.002000/2000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c99e70>#price_cents150 +
  0.000.000.000.001000/1000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c99e70>#start_time150 +
  0.000.000.000.001000/1000ActiveModel::Validations::FormatValidator#validate_each152 +
  0.000.000.000.004000/6000Numeric#blank?151 +
  0.000.000.000.00613/8870NilClass#blank?151 +
  0.000.000.000.0020/30#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c2f728>#name150 +
  1.370.010.001.3627060/27060ActiveSupport::Notifications::Fanout#finish48
13.82%0.10%1.370.010.001.3627060 + + ActiveSupport::Notifications::Fanout::Subscribers::Evented#finish + + 103
  1.320.010.001.3213530/13530ActiveSupport::LogSubscriber#finish104 +
  0.040.010.000.0313530/13530ActiveRecord::ExplainSubscriber#finish104 +
  1.320.010.001.3213530/13530ActiveSupport::Notifications::Fanout::Subscribers::Evented#finish104
13.36%0.07%1.320.010.001.3213530 + + ActiveSupport::LogSubscriber#finish + + 83
  1.290.020.001.2713530/13530ActiveSupport::Subscriber#finish84 +
  0.020.000.000.0213530/81123ActiveRecord::LogSubscriber#logger84 +
  1.290.020.001.2713530/13530ActiveSupport::LogSubscriber#finish84
13.06%0.20%1.290.020.001.2713530 + + ActiveSupport::Subscriber#finish + + 94
  1.240.080.001.1713530/13530ActiveRecord::LogSubscriber#sql101 +
  0.020.010.000.0113530/40590ActiveSupport::Subscriber#event_stack96 +
  0.010.000.000.0013530/27060ActiveSupport::Subscriber#now95 +
  0.010.010.000.0013530/16008String#split100 +
  0.000.000.000.0013530/20015Hash#merge!98 +
  0.000.000.000.0013530/15762Array#pop96 +
  1.240.080.001.1713530/13530ActiveSupport::Subscriber#finish101
12.52%0.76%1.240.080.001.1713530 + + ActiveRecord::LogSubscriber#sql + + 20
  0.940.010.000.9313511/13511ActiveRecord::LogSubscriber#debug43 +
  0.040.010.000.0313504/44492Array#inspect36 +
  0.030.010.000.0213511/13511ActiveRecord::LogSubscriber#colorize_payload_name40 +
  0.030.010.000.0213511/13511ActiveRecord::LogSubscriber#sql_color41 +
  0.020.000.000.0213530/13530ActiveSupport::Logger#debug?22 +
  0.020.020.000.0130988/30988ActiveRecord::LogSubscriber#render_bind36 +
  0.020.010.000.0113530/13530<Class::ActiveRecord::LogSubscriber>#runtime21 +
  0.010.010.000.0113511/86161ActiveSupport::NumericWithFormat#to_s28 +
  0.010.000.000.0113530/13530<Class::ActiveRecord::LogSubscriber>#runtime=21 +
  0.010.010.000.0013511/27022ActiveSupport::LogSubscriber#color41 +
  0.010.000.000.0113530/81123ActiveRecord::LogSubscriber#logger22 +
  0.010.010.000.0027041/27041ActiveSupport::Notifications::Event#duration21 +
  0.010.000.000.0013504/13504ActiveRecord::LogSubscriber#type_casted_binds34 +
  0.000.000.000.0013511/13511Float#round28 +
  0.000.000.000.0013530/635445Kernel#class21 +
  0.000.000.000.0010/30707NilClass#to_s28 +
  0.000.000.000.006/11810String#==26 +
  0.000.000.000.001/839Integer#+21 +
  1.211.190.020.005894/5894ActiveSupport::Concurrency::ShareLock#yield_shares611
12.19%11.99%1.211.190.020.005894 + + PG::Connection#exec_params + +
  1.110.000.001.111000/1000<Class::Thread>#handle_interrupt
11.19%0.01%1.110.000.001.111000 + + ActiveRecord::Persistence::ClassMethods#create! + + 48
  0.950.000.000.951000/1000ActiveRecord::Suppressor#save!53 +
  0.160.000.000.151000/4265ActiveRecord::Inheritance::ClassMethods#new52 +
  0.000.000.000.001000/448872Kernel#is_a?49 +
  1.010.000.001.011623/1623ActiveModel::EachValidator#validate152
10.22%0.03%1.010.000.001.011623 + + ActiveRecord::Validations::UniquenessValidator#validate_each + + 19
  0.940.000.000.941623/1623ActiveRecord::FinderMethods#exists?34 +
  0.040.000.000.041623/1623ActiveRecord::Validations::UniquenessValidator#build_relation23 +
  0.010.000.000.01387/387ActiveRecord::QueryMethods::WhereChain#not26 +
  0.000.000.000.001623/1623ActiveRecord::Validations::UniquenessValidator#find_finder_class_for20 +
  0.000.000.000.00387/387ActiveRecord::AttributeMethods::PrimaryKey#id_in_database26 +
  0.000.000.000.001623/1623ActiveRecord::Persistence#persisted?24 +
  0.000.000.000.001623/1623ActiveRecord::Validations::UniquenessValidator#scope_relation31 +
  0.000.000.000.00387/7616ActiveRecord::QueryMethods#where26 +
  0.000.000.000.001623/1623ActiveRecord::Validations::UniquenessValidator#map_enum_attribute21 +
  0.000.000.000.00774/150660ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods#primary_key25 +
  0.000.000.000.003/616ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction251
  0.990.000.000.99613/616ActiveRecord::Associations::CollectionAssociation#replace247
10.03%0.01%0.990.000.000.99616 + + ActiveRecord::Associations::CollectionAssociation#replace_records + + 412
  0.950.000.000.95616/616ActiveRecord::Associations::HasManyThroughAssociation#concat415 +
  0.040.000.000.041232/1232ActiveRecord::Associations::HasManyThroughAssociation#difference413 +
  0.000.000.000.00616/616ActiveRecord::Associations::CollectionAssociation#delete413 +
  0.950.000.000.95616/616ActiveRecord::Associations::CollectionAssociation#replace_records415
9.63%0.00%0.950.000.000.95616 + + ActiveRecord::Associations::HasManyThroughAssociation#concat + + 14
  0.950.000.000.95616/616ActiveRecord::Associations::CollectionAssociation#concat21 +
  0.000.000.000.00616/41328ActiveRecord::Persistence#new_record?15 +
  0.000.000.000.003/23996Array#flatten16 +
  0.950.000.000.95616/616ActiveRecord::Associations::HasManyThroughAssociation#concat21
9.62%0.00%0.950.000.000.95616 + + ActiveRecord::Associations::CollectionAssociation#concat + + 114
  0.950.000.000.94613/616ActiveRecord::Associations::HasManyThroughAssociation#concat_records118 +
  0.010.000.000.00616/23996Array#flatten115 +
  0.000.000.000.00613/1613ActiveRecord::Associations::CollectionAssociation#load_target117 +
  0.000.000.000.00616/41328ActiveRecord::Persistence#new_record?116 +
  0.000.000.000.003/6ActiveRecord::Associations::CollectionAssociation#transaction120 +
  0.950.000.000.951000/1000ActiveRecord::Persistence::ClassMethods#create!53
9.61%0.01%0.950.000.000.951000 + + ActiveRecord::Suppressor#save! + + 47
  0.950.000.000.951000/1000ActiveRecord::Transactions#save!48 +
  0.000.000.000.001000/5265<Class::ActiveRecord::SuppressorRegistry>#suppressed48 +
  0.000.000.000.001000/39717Module#name48 +
  0.000.000.000.001000/635445Kernel#class48 +
  0.950.000.000.951000/1000ActiveRecord::Suppressor#save!48
9.59%0.00%0.950.000.000.951000 + + ActiveRecord::Transactions#save! + + 314
  0.950.000.000.951000/6265ActiveRecord::Transactions#with_transaction_returning_status315 +
  0.000.000.000.003/616ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction120
  0.950.000.000.94613/616ActiveRecord::Associations::CollectionAssociation#concat118
9.55%0.01%0.950.000.000.94616 + + ActiveRecord::Associations::HasManyThroughAssociation#concat_records + + 24
  0.840.000.000.832632/5264ActiveRecord::Associations::HasManyThroughAssociation#build_through_record31 +
  0.100.000.000.10616/616ActiveRecord::Associations::HasManyAssociation#concat_records27 +
  0.000.000.000.00613/23996Array#flatten30 +
  0.000.000.000.00616/3248ActiveRecord::Associations::ThroughAssociation#ensure_not_nested25 +
  0.000.000.000.00616/41328ActiveRecord::Persistence#new_record?29 +
  0.940.010.000.9313511/13511ActiveRecord::LogSubscriber#sql43
9.54%0.10%0.940.010.000.9313511 + + ActiveRecord::LogSubscriber#debug + + 94
  0.700.040.000.6513511/13511ActiveRecord::LogSubscriber#log_query_source98 +
  0.230.010.000.2213511/13511ActiveSupport::LogSubscriber#debug95 +
  0.010.010.000.0013511/13511<Class::ActiveRecord::Base>#verbose_query_logs97 +
  0.940.000.000.941623/1623ActiveRecord::Validations::UniquenessValidator#validate_each34
9.52%0.02%0.940.000.000.941623 + + ActiveRecord::FinderMethods#exists? + + 305
  0.920.000.000.921623/8852ActiveRecord::Relation#skip_query_cache_if_necessary322 +
  0.020.000.000.021623/1623ActiveRecord::FinderMethods#construct_relation_for_exists320 +
  0.000.000.000.001623/16472ActiveRecord::Relation#eager_loading?315 +
  0.000.000.000.001623/19336ActiveRecord::QueryMethods#limit_value313 +
  0.000.000.000.001623/10723ActiveRecord::Core::ClassMethods#===306 +
  0.920.000.000.921000/1000ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction315
9.29%0.01%0.920.000.000.921000 + + ActiveRecord::Validations#save! + + 51
  0.720.000.000.721000/1000ActiveRecord::Persistence#save!52 +
  0.200.000.000.201000/5265ActiveRecord::Validations#perform_validations52 +
  0.910.890.020.007616/7616ActiveSupport::Concurrency::ShareLock#yield_shares622
9.21%8.99%0.910.890.020.007616 + + PG::Connection#exec_prepared + +
  0.000.000.000.0014/320287Kernel#hash +
  0.000.000.000.002632/5264ActiveRecord::Associations::HasManyThroughAssociation#save_through_record75
  0.840.000.000.832632/5264ActiveRecord::Associations::HasManyThroughAssociation#concat_records31
8.44%0.05%0.840.000.000.835264 + + ActiveRecord::Associations::HasManyThroughAssociation#build_through_record + + 56
  0.490.000.000.492632/2632ActiveRecord::Associations::CollectionAssociation#build64 +
  0.320.000.000.322632/2632ActiveRecord::Associations::HasManyThroughAssociation#through_scope_attributes60 +
  0.010.000.000.012632/2632ActiveRecord::Associations::ThroughAssociation#ensure_mutable58 +
  0.010.000.000.012632/5264ActiveRecord::Associations::ThroughAssociation#source_reflection61 +
  0.000.000.000.002632/5880ActiveRecord::Associations::Association#options62 +
  0.000.000.000.005264/21451Kernel#object_id57 +
  0.000.000.000.002632/10528ActiveRecord::Associations::ThroughAssociation#through_association64 +
  0.840.000.000.831623/1623ActiveRecord::Relation#skip_query_cache_if_necessary322
8.43%0.01%0.840.000.000.831623 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#select_one + + 76
  0.830.000.000.831623/9239ActiveRecord::ConnectionAdapters::QueryCache#select_all77 +
  0.000.000.000.001623/1623ActiveRecord::Result#first77 +
  0.750.000.000.751623/1623ActiveRecord::ConnectionAdapters::DatabaseStatements#select_all70
7.61%0.01%0.750.000.000.751623 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#select + + 477
  0.750.000.000.751623/13504ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_query478 +
  0.720.000.000.721000/1000ActiveRecord::Validations#save!52
7.25%0.00%0.720.000.000.721000 + + ActiveRecord::Persistence#save! + + 307
  0.720.000.000.721000/4652ActiveRecord::Callbacks#create_or_update308 +
  0.700.040.000.6513511/13511ActiveRecord::LogSubscriber#debug98
7.03%0.43%0.700.040.000.6513511 + + ActiveRecord::LogSubscriber#log_query_source + + 102
  0.350.150.000.1913511/13511ActiveRecord::LogSubscriber#extract_callstack103 +
  0.150.000.000.1513511/27030Logger#debug111 +
  0.110.110.010.0013511/13629Kernel#caller_locations103 +
  0.010.010.000.0113511/13516<Module::Rails>#root107 +
  0.010.000.000.0113511/81123ActiveRecord::LogSubscriber#logger111 +
  0.010.010.000.0013511/86161ActiveSupport::NumericWithFormat#to_s111 +
  0.010.010.000.0013511/13633Pathname#to_s107 +
  0.000.000.000.0013511/47170String#freeze107 +
  0.040.000.000.04633/4265ActiveRecord::Persistence::ClassMethods#create35
  0.160.000.000.151000/4265ActiveRecord::Persistence::ClassMethods#create!52
  0.460.000.000.462632/4265ActiveRecord::Reflection::AbstractReflection#build_association154
6.62%0.09%0.660.010.000.654265 + + ActiveRecord::Inheritance::ClassMethods#new + + 50
  0.630.010.000.634265/4265ActiveRecord::Core#initialize66 +
  0.010.000.000.014265/4265ActiveRecord::AttributeMethods::ClassMethods#has_attribute?55 +
  0.000.000.000.004265/40006ActiveRecord::ModelSchema::ClassMethods#inheritance_column55 +
  0.000.000.000.004265/36589ActiveRecord::Inheritance::ClassMethods#abstract_class?51 +
  0.000.000.000.002/2256ActiveRecord::Delegation::ClassSpecificRelation#method_missing114
  0.000.000.000.009/2256City::ActiveRecord_Relation#name97
  0.010.000.000.011612/2256Bus::ActiveRecord_Relation#name97
  0.640.000.000.64633/2256ActiveRecord::Relation#create85
6.57%0.02%0.650.000.000.652256 + + *ActiveRecord::Relation#scoping + + 279
  0.640.000.000.64633/633ActiveRecord::Persistence::ClassMethods#create85 +
  0.010.000.000.014512/4512ActiveRecord::Scoping::ClassMethods#current_scope=280 +
  0.000.000.000.002256/23446ActiveRecord::Scoping::ClassMethods#current_scope280 +
  0.000.000.000.00633/633ActiveRecord::Relation#values_for_create85 +
  0.000.000.000.001623/39717Module#name114 +
  0.650.000.000.64633/633ActiveRecord::Relation#find_or_create_by164
6.51%0.00%0.650.000.000.64633 + + ActiveRecord::Relation#create + + 81
  0.640.000.000.64633/2256ActiveRecord::Relation#scoping85 +
  0.000.000.000.00633/448872Kernel#is_a?82 +
  0.640.000.000.64633/633ActiveRecord::Relation#scoping85
6.43%0.01%0.640.000.000.64633 + + ActiveRecord::Persistence::ClassMethods#create + + 31
  0.600.000.000.60633/4265ActiveRecord::Suppressor#save36 +
  0.040.000.000.04633/4265ActiveRecord::Inheritance::ClassMethods#new35 +
  0.000.000.000.00633/448872Kernel#is_a?32 +
  0.630.010.000.634265/4265ActiveRecord::Inheritance::ClassMethods#new66
6.40%0.08%0.630.010.000.634265 + + ActiveRecord::Core#initialize + + 318
  0.310.010.000.302632/2632ActiveRecord::Associations::Association#initialize_attributes285 +
  0.200.000.000.204265/5265ActiveModel::AttributeAssignment#assign_attributes325 +
  0.050.000.000.044265/4265ActiveRecord::Scoping#initialize_internals_callback323 +
  0.030.000.000.034265/4265ActiveModel::AttributeSet#deep_dup320 +
  0.010.000.000.014265/20651ActiveRecord::AttributeMethods::ClassMethods#define_attribute_methods319 +
  0.010.000.000.014265/12458ActiveRecord::Base#_run_initialize_callbacks328 +
  0.010.000.000.004265/12458ActiveRecord::Aggregations#init_internals322 +
  0.000.000.000.004265/4319ActiveRecord::ModelSchema::ClassMethods#_default_attributes320 +
  0.000.000.000.006897/120806Kernel#block_given?327 +
  0.000.000.000.008530/635445Kernel#class319 +
  0.100.000.000.10387/5651ActiveRecord::Associations::CollectionAssociation#find_target305
  0.220.000.000.222632/5651ActiveRecord::Associations::Association#scope_for_create199
  0.300.000.000.302632/5651ActiveRecord::Associations::HasManyThroughAssociation#through_scope_attributes69
6.22%0.04%0.620.000.000.615651 + + ActiveRecord::Associations::CollectionAssociation#scope + + 286
  0.540.000.000.545651/5651ActiveRecord::Associations::Association#scope287 +
  0.060.000.000.055264/5264ActiveRecord::QueryMethods#none!288 +
  0.020.000.000.015651/5651ActiveRecord::Associations::CollectionAssociation#null_scope?288 +
  0.000.000.000.001/2497Rails::Engine#load_tasks458
  0.000.000.000.001/2497<Module::Bundler>#overwrite_loaded_gem_version14
  0.000.000.000.001/2497<Module::Rails>#env73
  0.000.000.000.001/2497I18n::Base#config57
  0.000.000.000.001/2497Rails::Engine#config542
  0.000.000.000.001/2497ActiveSupport::XmlMini#cast_backend_name_to_module202
  0.000.000.000.001/2497Bundler::Definition#converge_dependencies703
  0.000.000.000.001/2497Bundler::SourceList#initialize18
  0.000.000.000.001/2497BasicObject#instance_exec
  0.000.000.000.001/2497Bundler::SharedHelpers#filesystem_access429
  0.000.000.000.002/2497<Module::Bundler>#ui70
  0.000.000.000.001/2497<Class::TZInfo::Timezone>#init_loaded_zones653
  0.000.000.000.001/2497Bundler::Dsl#initialize26
  0.000.000.000.001/2497Bundler::LockfileParser#parse_spec229
  0.000.000.000.001/2497Bundler::LazySpecification::Identifier#platform_string20
  0.000.000.000.002/2497Rails::Application#initialize138
  0.000.000.000.001/2497Bundler::LockfileParser#parse_dependency200
  0.000.000.000.002/2497Concurrent::Utility::NativeExtensionLoader#try_load_c_extension59
  0.000.000.000.001/2497<Module::Bundler>#ui=74
  0.000.000.000.001/2497Bundler::RubyDsl#ruby15
  0.000.000.000.002/2497Bundler::RubygemsIntegration::MoreFuture#all_specs823
  0.000.000.000.001/2497<Module::Bundler>#load118
  0.000.000.000.001/2497<Class::Bundler::FeatureFlag>#settings_flag6
  0.000.000.000.001/2497Bundler::Index#local_search92
  0.000.000.000.001/2497<Module::Bundler>#default_lockfile334
  0.000.000.000.001/2497Bundler::Definition#initialize91
  0.000.000.000.001/2497Bundler::RubygemsIntegration::MoreFuture#backport_ext_builder_monitor836
  0.000.000.000.001/2497<Module::Bundler>#feature_flag478
  0.000.000.000.001/2497<Class::Bundler::Definition>#build34
  0.000.000.000.001/2497<Module::Bundler>#definition135
  0.000.000.000.002/2497<Module::Bootsnap::CompileCache::JSON>#init!49
  0.000.000.000.001/2497Rails::Application#initializers367
  0.000.000.000.0010/2497Kernel#require1
  0.000.000.000.001/2497<Module::Bootsnap::ExplicitRequire>#with_gems5
  0.010.000.000.011/2497Rails::Railtie#config223
  0.010.000.000.012/2497Bundler::Definition#expand_dependencies881
  0.010.000.000.013/2497<Module::Bootsnap::CompileCache::YAML>#init!58
  0.010.000.000.011/2497Rake::TaskManager#in_namespace41
  0.010.000.000.012/2497Rails::Engine#routes535
  0.010.000.000.0126/2497ActiveSupport::Dependencies#new_constants_in291
  0.010.000.000.011/2497Rails::Application#run_tasks_blocks516
  0.040.000.000.0410/2497Kernel#load
  0.080.000.000.08103/2497Kernel#gem_original_require
  0.090.000.000.091/2497Rails::Application#require_environment!337
  0.230.000.000.23613/2497ActiveSupport::Dependencies::Loadable#load_dependency291
  0.340.000.000.3437/2497Kernel#require_relative
  1.200.000.001.201649/2497Kernel#require_without_bootsnap
5.70%0.10%0.560.010.000.552497 + + *Kernel#require + + 37
  1.780.080.001.711204/1209Kernel#require_without_bootsnap32 +
  0.230.040.000.18132/132Kernel#gem_original_require86 +
  0.030.000.000.031/1<Module::Bootsnap>#default_setup5 +
  0.010.000.000.011/200Kernel#require_relative3 +
  0.010.000.000.011231/1236Bootsnap::LoadPathCache::Cache#find14 +
  0.000.000.000.001200/1205Bootsnap::LoadPathCache::LoadedFeaturesIndex#register33 +
  0.000.000.000.0010/2497Kernel#require1 +
  0.000.000.000.0053/55Kernel#gem74 +
  0.000.000.000.002353/2359Bootsnap::LoadPathCache::LoadedFeaturesIndex#key?12 +
  0.000.000.000.00247/303<Class::File>#symlink?54 +
  0.000.000.000.00132/132<Module::Gem>#find_unresolved_default_spec45 +
  0.000.000.000.002353/2359<Module::Bootsnap>#rb_get_path11 +
  0.000.000.000.00247/3253<Class::File>#join62 +
  0.000.000.000.00247/1027<Class::File>#file?63 +
  0.000.000.000.00247/1582<Class::File>#expand_path62 +
  0.000.000.000.0053/53<Class::Gem::Requirement>#default_prerelease74 +
  0.000.000.000.001231/2589BasicObject#equal?15 +
  0.000.000.000.0061/63<Module::Gem>#load_path_insert_index49 +
  0.000.000.000.00132/136<Class::Gem::Specification>#unresolved_deps84 +
  0.000.000.000.00247/53034String#initialize_copy52 +
  0.000.000.000.00175/175Array#[]51 +
  0.000.000.000.00132/132Monitor#exit85 +
  0.000.000.000.00132/132Monitor#enter41 +
  0.000.000.000.00132/184396Kernel#respond_to?43 +
  0.000.000.000.0061/61<Module::Gem>#suffixes50 +
  0.000.000.000.0061/62<Module::Gem>#activated_gem_paths49 +
  0.000.000.000.0022/236IO#set_encoding37 +
  0.000.000.000.00119/20053Module#method_added22 +
  0.000.000.000.004/4Bootsnap::LoadPathCache::LoadedFeaturesIndex#cursor16 +
  0.000.000.000.0010/642Module#include18 +
  0.000.000.000.004/117Module#module_function36 +
  0.000.000.000.006/270Module#undef_method6 +
  0.000.000.000.002/544Module#attr_reader17 +
  0.000.000.000.0014/2095Class#inherited37 +
  0.000.000.000.001/39717Module#name97 +
  0.000.000.000.001/5<Class::Time>#at8 +
  0.000.000.000.0010/826Module#private20 +
  0.000.000.000.002/926Kernel#lambda14 +
  0.000.000.000.001/685Module#alias_method9 +
  0.000.000.000.007/3660BasicObject#singleton_method_added37 +
  0.000.000.000.002/125Integer#<<13 +
  0.000.000.000.001/1798Module#method_defined?6 +
  0.000.000.000.001/3MessagePack::Factory#initialize20 +
  0.000.000.000.001/635445Kernel#class97 +
  0.540.000.000.545651/5651ActiveRecord::Associations::CollectionAssociation#scope287
5.46%0.03%0.540.000.000.545651 + + ActiveRecord::Associations::Association#scope + + 78
  0.230.010.000.223019/3020ActiveRecord::Associations::ThroughAssociation#target_scope79 +
  0.120.000.000.125651/14324ActiveRecord::SpawnMethods#merge!79 +
  0.100.000.000.095651/10915ActiveRecord::Associations::Association#association_scope79 +
  0.090.000.000.092632/5652ActiveRecord::Associations::Association#target_scope79 +
  0.000.000.000.004/13508ActiveRecord::ConnectionAdapters::DatabaseStatements#delete175
  0.140.010.000.134265/13508ActiveRecord::ConnectionAdapters::DatabaseStatements#insert161
  0.400.010.000.399239/13508ActiveRecord::ConnectionAdapters::DatabaseStatements#select_all61
5.40%0.17%0.530.020.000.5213508 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#to_sql_and_binds + + 17
  0.470.010.000.4713121/13122ActiveRecord::ConnectionAdapters::DetermineIfPreparableVisitor#accept25 +
  0.030.010.000.0213121/13122ActiveRecord::ConnectionAdapters::AbstractAdapter#collector25 +
  0.010.010.000.0013121/13122Arel::Collectors::Composite#value25 +
  0.000.000.000.0013121/13121ActiveRecord::ConnectionAdapters::DatabaseLimits#bind_params_length27 +
  0.000.000.000.0013508/47170String#freeze36 +
  0.000.000.000.0013508/184396Kernel#respond_to?18 +
  0.000.000.000.00387/53034String#initialize_copy39 +
  0.490.000.000.492632/2632ActiveRecord::Associations::HasManyThroughAssociation#build_through_record64
4.93%0.01%0.490.000.000.492632 + + ActiveRecord::Associations::CollectionAssociation#build + + 104
  0.460.000.000.462632/2632ActiveRecord::Associations::Association#build_record108 +
  0.020.000.000.022632/5264ActiveRecord::Associations::CollectionAssociation#add_to_target108 +
  0.000.000.000.002632/448872Kernel#is_a?105 +
  0.000.000.000.001/13122ActiveRecord::ConnectionAdapters::DatabaseStatements#cacheable_query48
  0.470.010.000.4713121/13122ActiveRecord::ConnectionAdapters::DatabaseStatements#to_sql_and_binds25
4.79%0.06%0.470.010.000.4713122 + + ActiveRecord::ConnectionAdapters::DetermineIfPreparableVisitor#accept + + 8
  0.470.000.000.4713122/13122Arel::Visitors::Reduce#accept10 +
  0.470.000.000.4713122/13122ActiveRecord::ConnectionAdapters::DetermineIfPreparableVisitor#accept10
4.73%0.03%0.470.000.000.4713122 + + Arel::Visitors::Reduce#accept + + 7
  0.470.010.000.4513122/123860Arel::Visitors::Reduce#visit8 +
  0.000.000.000.001/123860Arel::Visitors::ToSql#visit_Arel_Nodes_On601
  0.000.000.000.002/123860Arel::Visitors::ToSql#visit_Arel_Nodes_InnerJoin590
  0.000.000.000.004/123860Arel::Visitors::ToSql#visit_Arel_Nodes_DeleteStatement81
  0.000.000.000.00774/123860Arel::Visitors::ToSql#visit_Arel_Nodes_NotEqual677
  0.010.000.000.014265/123860Arel::Visitors::ToSql#visit_Arel_Nodes_InsertStatement126
  0.020.010.000.028853/123860Arel::Visitors::ToSql#visit_Arel_Nodes_JoinSource546
  0.030.010.000.028852/123860Arel::Visitors::ToSql#visit_Arel_Nodes_Limit408
  0.040.010.000.038853/123860Arel::Visitors::ToSql#visit_Arel_Nodes_SelectCore251
  0.040.010.000.0312510/123860Arel::Visitors::ToSql#visit_Arel_Nodes_Values198
  0.060.010.000.0517708/123860Arel::Visitors::ToSql#visit_Arel_Nodes_Equality664
  0.100.010.000.099241/123860Arel::Visitors::ToSql#inject_join822
  0.120.020.000.1021969/123860Arel::Visitors::ToSql#maybe_visit815
  0.150.010.000.1417706/123860Arel::Visitors::ToSql#collect_nodes_for270
  0.470.010.000.4513122/123860Arel::Visitors::Reduce#accept8
4.70%0.96%0.470.090.000.37123860 + + *Arel::Visitors::Reduce#visit + + 13
  0.340.010.000.338853/8853Arel::Visitors::ToSql#visit_Arel_Nodes_SelectStatement15 +
  0.120.000.000.118853/8853Arel::Visitors::ToSql#visit_Arel_Nodes_And15 +
  0.110.010.000.104265/4265Arel::Visitors::ToSql#visit_Arel_Nodes_InsertStatement15 +
  0.080.010.000.088854/8854Arel::Visitors::ToSql#visit_Arel_Nodes_Equality15 +
  0.070.010.000.0630602/30602Arel::Visitors::PostgreSQL#visit_Arel_Nodes_BindParam15 +
  0.060.010.000.054265/4265Arel::Visitors::ToSql#visit_Arel_Nodes_Values15 +
  0.050.010.000.0316472/16472Arel::Visitors::ToSql#visit_Arel_Attributes_Attribute15 +
  0.030.000.000.038852/8852Arel::Visitors::ToSql#visit_Arel_Nodes_Limit15 +
  0.030.000.000.028853/8853Arel::Visitors::ToSql#visit_Arel_Nodes_JoinSource15 +
  0.020.010.000.0213123/13123Arel::Visitors::ToSql#visit_Arel_Table15 +
  0.010.010.000.00123860/123860Arel::Visitors::Visitor#dispatch14 +
  0.010.010.000.00123884/320287Kernel#hash17 +
  0.010.010.000.00123860/635445Kernel#class14 +
  0.000.000.000.00387/387Arel::Visitors::ToSql#visit_Arel_Nodes_NotEqual15 +
  0.000.000.000.001623/1623ActiveRecord::ConnectionAdapters::DetermineIfPreparableVisitor#visit_Arel_Nodes_SqlLiteral15 +
  0.000.000.000.008852/8852Arel::Visitors::ToSql#visit_Arel_Nodes_Top15 +
  0.000.000.000.004/4Arel::Visitors::ToSql#visit_Arel_Nodes_DeleteStatement15 +
  0.000.000.000.001/1Arel::Visitors::ToSql#visit_Arel_Nodes_InnerJoin15 +
  0.000.000.000.001/1Arel::Visitors::ToSql#visit_Arel_Nodes_On15 +
  0.000.000.000.0016/39717Module#name17 +
  0.460.000.000.462632/2632ActiveRecord::Associations::CollectionAssociation#build108
4.68%0.01%0.460.000.000.462632 + + ActiveRecord::Associations::Association#build_record + + 283
  0.460.000.000.462632/2632ActiveRecord::Reflection::AbstractReflection#build_association284 +
  0.460.000.000.462632/2632ActiveRecord::Associations::Association#build_record284
4.67%0.01%0.460.000.000.462632 + + ActiveRecord::Reflection::AbstractReflection#build_association + + 153
  0.460.000.000.462632/4265ActiveRecord::Inheritance::ClassMethods#new154 +
  0.000.000.000.002632/53539ActiveRecord::Reflection::MacroReflection#klass154 +
  0.000.000.000.00613/1613ActiveRecord::Associations::CollectionAssociation#concat117
  0.430.000.000.431000/1613ActiveRecord::Associations::CollectionAssociation#replace244
4.31%0.01%0.430.000.000.431613 + + ActiveRecord::Associations::CollectionAssociation#load_target + + 270
  0.420.000.000.42387/387ActiveRecord::Associations::HasManyThroughAssociation#find_target272 +
  0.000.000.000.001613/1613ActiveRecord::Associations::Association#find_target?271 +
  0.000.000.000.001613/12877ActiveRecord::Associations::Association#loaded!275 +
  0.000.000.000.00387/387ActiveRecord::Associations::CollectionAssociation#merge_target_lists272 +
  0.420.000.000.42387/387ActiveRecord::Associations::CollectionAssociation#load_target272
4.25%0.00%0.420.000.000.42387 + + ActiveRecord::Associations::HasManyThroughAssociation#find_target + + 209
  0.420.000.000.42387/387ActiveRecord::Associations::CollectionAssociation#find_target211 +
  0.000.000.000.00387/387ActiveRecord::Associations::HasManyThroughAssociation#target_reflection_has_associated_record?210 +
  0.420.000.000.42387/387ActiveRecord::Associations::HasManyThroughAssociation#find_target211
4.23%0.01%0.420.000.000.42387 + + ActiveRecord::Associations::CollectionAssociation#find_target + + 304
  0.300.000.000.30387/387ActiveRecord::StatementCache#execute315 +
  0.100.000.000.10387/5651ActiveRecord::Associations::CollectionAssociation#scope305 +
  0.010.000.000.01387/387ActiveRecord::Associations::Association#skip_statement_cache?306 +
  0.000.000.000.00387/7311ActiveRecord::Reflection::AbstractReflection#chain314 +
  0.000.000.000.00387/387<Class::ActiveRecord::Associations::AssociationScope>#get_bind_values314 +
  0.000.000.000.00387/387ActiveRecord::Reflection::ThroughReflection#association_scope_cache309 +
  0.000.000.000.00387/42695ActiveRecord::ConnectionHandling#connection308 +
  0.000.000.000.00387/29316ActiveRecord::Associations::Association#klass308 +
  0.010.000.000.015/1209<Module::Kernel>#require32
  1.780.080.001.711204/1209Kernel#require32
4.07%0.79%0.400.080.000.331209 + + *Kernel#require_without_bootsnap + +
  1.200.000.001.201649/2497Kernel#require4 +
  0.160.000.000.161165/1346Bootsnap::CompileCache::ISeq::InstructionSequenceMixin#load_iseq +
  0.120.000.000.11524/639ActiveSupport::Dependencies::Loadable#require6 +
  0.090.000.000.091/1Rails::Application#initialize!5 +
  0.030.000.000.0372/200Kernel#require_relative3 +
  0.020.000.000.024/7ActiveSupport::LazyLoadHooks#run_load_hooks14 +
  0.010.000.000.0112/31Kernel#load21 +
  0.010.000.000.01409/642Module#include35 +
  0.010.000.000.011/1<Class::Rails::Engine>#isolate_namespace15 +
  0.010.000.000.0167/92Module#delegate43 +
  0.010.000.000.011/1Sprockets::Transformers#register_transformer_suffix180 +
  0.010.000.000.0186/94<Class::Rails::Railtie>#config16 +
  0.010.010.000.001/1OpenSSL::X509::Store#set_default_paths90 +
  0.000.000.000.00316/1172Module#class_eval44 +
  0.000.000.000.008/8Sprockets::Processing#register_preprocessor116 +
  0.000.000.000.00176/5608Kernel#extend36 +
  0.000.000.000.009/9Object#DelegateClass38 +
  0.000.000.000.001/1<Module::ObjectSpace>#each_object6 +
  0.000.000.000.00194/403ActiveSupport::Autoload#autoload29 +
  0.000.000.000.0018/18ActiveSupport::Autoload#eager_autoload48 +
  0.000.000.000.0036/56Module#mattr_accessor43 +
  0.000.000.000.00193/272Module#attr_accessor636 +
  0.000.000.000.0024/26Module#cattr_accessor84 +
  0.000.000.000.009/23Sprockets::Transformers#register_transformer95 +
  0.000.000.000.001/1Concurrent::Utility::NativeExtensionLoader#load_native_extensions77 +
  0.000.000.000.0099/110Thor::Base::ClassMethods#method_added273 +
  0.000.000.000.0011907/20053Module#method_added +
  0.000.000.000.001/1OpenSSL::PKey::DH#initialize33 +
  0.000.000.000.00406/544Module#attr_reader6 +
  0.000.000.000.001/1<Class::TZInfo::Timezone>#init_loaded_zones655 +
  0.000.000.000.001/1<Module::Concurrent::ThreadSafe::Util>#make_synchronized_on_cruby33 +
  0.000.000.000.00162/5417String#to_sym328 +
  0.000.000.000.0045/59Sprockets::Mime#register_mime_type50 +
  0.000.000.000.0037/50<Class::Struct>#new34 +
  0.000.000.000.0055/976Module#module_eval33 +
  0.000.000.000.0085/1703Module#define_method38 +
  0.000.000.000.001/1<Module::JSON>#generator=11 +
  0.000.000.000.005/8ActiveSupport::Autoload#autoload_under51 +
  0.000.000.000.001/1<Class::Rails::Generators::AppBase>#add_shared_options_for258 +
  0.000.000.000.00103/103Rails::Initializable::ClassMethods#initializer69 +
  0.000.000.000.006/6<Class::Concurrent::Synchronization::Object>#attr_atomic12 +
  0.000.000.000.001/4207ActiveSupport::Inflector#inflections12 +
  0.000.000.000.007/19ActiveSupport::Callbacks::ClassMethods#define_callbacks70 +
  0.000.000.000.003/3ActiveSupport::Deprecation::InstanceDelegator::ClassMethods#include27 +
  0.000.000.000.001/1Rails::Railtie#configure1 +
  0.000.000.000.009/67Class#class_attribute1622 +
  0.000.000.000.004/4Forwardable#delegate29 +
  0.000.000.000.001/1ActiveSupport::XmlMini#backend=208 +
  0.000.000.000.001658/2095Class#inherited +
  0.000.000.000.004/4Thor::Base::ClassMethods#public_task287 +
  0.000.000.000.004/4Module#deprecate184 +
  0.000.000.000.001/9I18n::Base#load_path15 +
  0.000.000.000.0042/42<Class::Marcel::MimeType>#extend1 +
  0.000.000.000.0018/10655Set#initialize20 +
  0.000.000.000.00246/685Module#alias_method91 +
  0.000.000.000.0035/35<Class::Mime::Type>#register6 +
  0.000.000.000.001443/3660BasicObject#singleton_method_added +
  0.000.000.000.003/3Integer#**7 +
  0.000.000.000.001/92<Class::Dir>#[]439 +
  0.000.000.000.003/3Module#delegate_missing_to12 +
  0.000.000.000.0052/232ActiveSupport::OrderedOptions#method_missing21 +
  0.000.000.000.002/2<Class::Rails::Generators::Base>#inherited255 +
  0.000.000.000.0014/35Module#instance_methods23 +
  0.000.000.000.00667/826Module#private24 +
  0.000.000.000.004/4Module#attr_internal10 +
  0.000.000.000.001/29<Class::Dir>#glob3 +
  0.000.000.000.0031/50String#underscore125 +
  0.000.000.000.00183/649Module#autoload83 +
  0.000.000.000.0011/11Sprockets::Compressing#register_compressor134 +
  0.000.000.000.001/1ActiveSupport::Dependencies#hook!753 +
  0.000.000.000.0024/31Module#prepend102 +
  0.000.000.000.004/4<Class::ActionView::LookupContext>#register_detail45 +
  0.000.000.000.00256/1857String#%36 +
  0.000.000.000.006/6Sprockets::DirectiveProcessor#initialize116 +
  0.000.000.000.006/12IPAddr#initialize42 +
  0.000.000.000.0070/209Rails::Railtie::Configuration#method_missing16 +
  0.000.000.000.004/5<Class::Rails::Engine>#inherited14 +
  0.000.000.000.007/7Sprockets::Processing#register_bundle_metadata_reducer123 +
  0.000.000.000.007/16Module#public_instance_methods238 +
  0.000.000.000.0029/29<Module::ActiveRecord::Type>#register66 +
  0.000.000.000.001/55Kernel#gem4 +
  0.000.000.000.0075/118Class#initialize13 +
  0.000.000.000.004/30<Class::Rails::Generators::Base>#class_option261 +
  0.000.000.000.0016/22<Class::Concurrent::Synchronization::Object>#safe_initialization!98 +
  0.000.000.000.001/2WebConsole::Whitelist#initialize8 +
  0.000.000.000.0046/46<Module::FileUtils>#options_of23 +
  0.000.000.000.008/18Concurrent::Synchronization::SafeInitialization#new18 +
  0.000.000.000.009/25Comparable#<371 +
  0.000.000.000.001/1Module#thread_mattr_accessor13 +
  0.000.000.000.001/1<Class::ActionView::FallbackFileSystemResolver>#instances19 +
  0.000.000.000.002/2<Class::ActiveSupport::Subscriber>#attach_to137 +
  0.000.000.000.001/1<Class::Rails::Generators::Base>#add_shebang_option!20 +
  0.000.000.000.007/7Sprockets::Dependencies#register_dependency_resolver161 +
  0.000.000.000.001/1Thor::Actions::ClassMethods#add_runtime_options!24 +
  0.000.000.000.0033/47Regexp#to_s69 +
  0.000.000.000.004/4Sprockets::Processing#register_pipeline98 +
  0.000.000.000.001/8<Class::ActiveSupport::ExecutionWrapper>#to_run46 +
  0.000.000.000.002/3Sprockets::Exporting#register_exporter203 +
  0.000.000.000.007/67ActiveSupport::LazyLoadHooks#on_load178 +
  0.000.000.000.001/1Module#initialize_copy40 +
  0.000.000.000.00133/270Module#undef_method150 +
  0.000.000.000.0018/1582<Class::File>#expand_path10 +
  0.000.000.000.0045/192ActiveSupport::Concern#included11 +
  0.000.000.000.001/35Thor::Base::ClassMethods#class_option21 +
  0.000.000.000.001/1Concurrent::Utility::ProcessorCounter#initialize67 +
  0.000.000.000.00233/60121Regexp#===4 +
  0.000.000.000.001/1Thor::Base::ClassMethods#argument22 +
  0.000.000.000.001/1<Class::PG::Connection>#async_api=950 +
  0.000.000.000.0058/58<Module::TZInfo::RubyCoreSupport>#rational_new!38 +
  0.000.000.000.0013/18<Class::Rails::Railtie>#inherited15 +
  0.000.000.000.00266/201584Symbol#to_s38 +
  0.000.000.000.002/3Sprockets::Dependencies#depend_on223 +
  0.000.000.000.001/3Thor::Base::ClassMethods#inherited17 +
  0.000.000.000.004/6<Class::Regexp>#union181 +
  0.000.000.000.002/2Sprockets::Processing#register_bundle_processor120 +
  0.000.000.000.0018/30Module#attr_writer41 +
  0.000.000.000.0077/1109Kernel#!~8 +
  0.000.000.000.0055/154Module#const_set24 +
  0.000.000.000.0010/25951Array#-44 +
  0.000.000.000.008/8Range#to_a309 +
  0.000.000.000.00126/171Module#protected23 +
  0.000.000.000.0011/11<Module::ActiveModel::Type>#register41 +
  0.000.000.000.007/84Concurrent::Collection::MriMapBackend#initialize106 +
  0.000.000.000.00164/4889String#downcase38 +
  0.000.000.000.006/6Listen::FSM::ClassMethods#state65 +
  0.000.000.000.003/3Thor::Base::ClassMethods#remove_task312 +
  0.000.000.000.0040/117Module#module_function135 +
  0.000.000.000.001/83Module#mattr_reader11 +
  0.000.000.000.005/42<Class::Rails::Railtie>#rake_tasks36 +
  0.000.000.000.001/15ActiveSupport::Deprecation::InstanceDelegator::ClassMethods#method_added38 +
  0.000.000.000.001/1<Module::Listen>#setup_default_logger_if_unset18 +
  0.000.000.000.002/97Kernel#eval147 +
  0.000.000.000.001/4Logger#initialize46 +
  0.000.000.000.00259/393String#force_encoding20 +
  0.000.000.000.001/1RubyDep::Warning#initialize10 +
  0.000.000.000.0036/5676Array#join233 +
  0.000.000.000.0074/28362Kernel#freeze41 +
  0.000.000.000.001/71Set#merge329 +
  0.000.000.000.002/7Rails::Railtie::Configuration#app_generators18 +
  0.000.000.000.00276/578Symbol#===63 +
  0.000.000.000.004/8ActiveSupport::Autoload#autoload_at21 +
  0.000.000.000.001/1<Module::Concurrent>#mutex_owned_per_thread?18 +
  0.000.000.000.0010/12Concurrent::Utility::EngineDetector#on_cruby?23 +
  0.000.000.000.001/2Thor::Base::ClassMethods#attr_accessor19 +
  0.000.000.000.003/20Singleton::SingletonClassMethods#instance17 +
  0.000.000.000.0062/103Module#private_constant236 +
  0.000.000.000.003/39Module#initialize25 +
  0.000.000.000.0040/1798Module#method_defined?53 +
  0.000.000.000.002/3<Module::Loofah>#html5_support?36 +
  0.000.000.000.0010/23Kernel#__dir__20 +
  0.000.000.000.001/1Array#product590 +
  0.000.000.000.006/676Module#silence_redefinition_of_method32 +
  0.000.000.000.006/1406<Class::Gem::Version>#new3 +
  0.000.000.000.0037/46<Class::ActiveSupport::Subscriber>#method_added17 +
  0.000.000.000.008/17Set#freeze20 +
  0.000.000.000.001/1Rake::PrivateReader::ClassMethods#private_reader9 +
  0.000.000.000.0063/190Symbol#inspect1678 +
  0.000.000.000.006/6Sprockets::Railtie::OrderedOptions#configure142 +
  0.000.000.000.0017/926Kernel#lambda88 +
  0.000.000.000.0061/320287Kernel#hash10 +
  0.000.000.000.001/1<Module::Signal>#list398 +
  0.000.000.000.001/17Set#+144 +
  0.000.000.000.001/23996Array#flatten593 +
  0.000.000.000.007/7<Module::Minitest>#cattr_accessor28 +
  0.000.000.000.0021/21<Class::ActionCable::Channel::Base>#method_added142 +
  0.000.000.000.006/6<Class::ActionDispatch::Routing::PolymorphicRoutes::HelperMethodBuilder>#build350 +
  0.000.000.000.003/3ActiveModel::Type::Helpers::AcceptsMultiparameterTime#initialize7 +
  0.000.000.000.0035/124039BasicObject#initialize235 +
  0.000.000.000.0016/47Module#private_class_method618 +
  0.000.000.000.001/1ActiveSupport::Dependencies::Interlock#initialize23 +
  0.000.000.000.002/2<Module::ActiveRecord::Type>#add_modifier842 +
  0.000.000.000.0049/3116Module#const_get37 +
  0.000.000.000.0036/184396Kernel#respond_to?21 +
  0.000.000.000.004/93<Class::Hash>#[]68 +
  0.000.000.000.002/4<Class::ActiveSupport::ExecutionWrapper>#inherited6 +
  0.000.000.000.001/6<Module::ActiveSupport::Notifications>#subscribe32 +
  0.000.000.000.001/4Rails::Configuration::Generators#method_missing18 +
  0.000.000.000.002/839Integer#+10 +
  0.000.000.000.003/3<Class::Rails::Railtie>#console55 +
  0.000.000.000.001/1ActionView::LogSubscriber#initialize96 +
  0.000.000.000.003/16008String#split5 +
  0.000.000.000.00131/399228String#to_s61 +
  0.000.000.000.0062/55685Regexp#match?15 +
  0.000.000.000.006/281Module#method_undefined301 +
  0.000.000.000.001/1ActiveSupport::Notifications::Fanout#initialize214 +
  0.000.000.000.001/45Regexp#initialize19 +
  0.000.000.000.001/12ActiveSupport::DescendantsTracker#inherited80 +
  0.000.000.000.0019/21Concurrent::Utility::EngineDetector#on_jruby?291 +
  0.000.000.000.009/14655Kernel#proc388 +
  0.000.000.000.001/2Numeric#megabytes137 +
  0.000.000.000.003/14Rails::Railtie::Configuration#after_initialize67 +
  0.000.000.000.0018/15218<Class::Proc>#new63 +
  0.000.000.000.004/7Kernel#autoload95 +
  0.000.000.000.001/1<Module::Mime>#[]11 +
  0.000.000.000.002/2<Class::Listen::Logger>#info22 +
  0.000.000.000.001/1<Class::ActionView::DependencyTracker>#register_tracker173 +
  0.000.000.000.001/1<Module::I18n>#new_double_nested_cache407 +
  0.000.000.000.001/1RubyDep::Warning#show_warnings10 +
  0.000.000.000.0027/104Symbol#=~91 +
  0.000.000.000.005/3253<Class::File>#join5 +
  0.000.000.000.009/170Kernel#method124 +
  0.000.000.000.0031/31747Hash#initialize11 +
  0.000.000.000.0010/139<Object::Object>#[]10 +
  0.000.000.000.001/1ActiveSupport::Concern#class_methods10 +
  0.000.000.000.001/2ActiveSupport::Subscriber#initialize137 +
  0.000.000.000.001/1<Class::Thor>#map649 +
  0.000.000.000.005/311Kernel#define_singleton_method27 +
  0.000.000.000.001/1ActionDispatch::Journey::Nodes::Dummy#initialize9 +
  0.000.000.000.003/3Module#remove_possible_method22 +
  0.000.000.000.001/334<Class::File>#exist?10 +
  0.000.000.000.003/70Module#constants36 +
  0.000.000.000.001/1ActiveSupport::Dependencies::ClassCache#initialize603 +
  0.000.000.000.001/4Kernel#silence_warnings21 +
  0.000.000.000.002/2Module#rake_extension6 +
  0.000.000.000.009/11<Class::Regexp>#quote12 +
  0.000.000.000.0088/53681Symbol#to_sym352 +
  0.000.000.000.009/47170String#freeze20 +
  0.000.000.000.0011/457Module#public115 +
  0.000.000.000.001/1Mime::Mimes#initialize35 +
  0.000.000.000.001/2<Module::Etc>#nprocessors36 +
  0.000.000.000.004/635445Kernel#class635 +
  0.000.000.000.001/1Concurrent::ReInclude#include58 +
  0.000.000.000.001/1883<Class::File>#basename237 +
  0.000.000.000.004/20015Hash#merge!21 +
  0.000.000.000.009/80String#tr9 +
  0.000.000.000.0010/10Rails::Railtie::Configuration#eager_load_namespaces34 +
  0.000.000.000.001/1Kernel#Complex130 +
  0.000.000.000.007/152Comparable#>=355 +
  0.000.000.000.001/148Method#to_proc295 +
  0.000.000.000.0028/28String#delete_prefix435 +
  0.000.000.000.0010/276Thread::Mutex#initialize69 +
  0.000.000.000.001/1<Class::TZInfo::Country>#init_countries189 +
  0.000.000.000.002/2039Array#initialize_copy106 +
  0.000.000.000.001/2<Module::Nokogiri>#uses_gumbo?128 +
  0.000.000.000.001/31294<Class::Time>#now14 +
  0.000.000.000.001/1OpenSSL::X509::Store#initialize89 +
  0.000.000.000.006/591Kernel#singleton_class6 +
  0.000.000.000.001/2<Class::ActiveRecord::Associations::AssociationScope>#create19 +
  0.000.000.000.0010/1014String#upcase110 +
  0.000.000.000.002/12285Array#compact68 +
  0.000.000.000.001/815<Class::File>#directory?4 +
  0.000.000.000.001/17<Module::Rake::Win32>#windows?763 +
  0.000.000.000.003/137<Class::File>#dirname5 +
  0.000.000.000.001/1<Class::Rails::Railtie>#runner65 +
  0.000.000.000.005/6Module#deprecate_constant65 +
  0.000.000.000.001/1<Class::Minitest::Runnable>#inherited10 +
  0.000.000.000.001/3Module#private_instance_methods90 +
  0.000.000.000.002/2<Class::ActiveRecord::Relation::WhereClause>#empty1223 +
  0.000.000.000.001/1<Class::ActiveRecord::Relation::FromClause>#empty1223 +
  0.000.000.000.001/1<Class::Rack::QueryParser>#make_default33 +
  0.000.000.000.006/887726Module#===68 +
  0.000.000.000.002/2810<Class::Delegator>#const_missing108 +
  0.000.000.000.001/1<Module::FileUtils>#commands22 +
  0.000.000.000.001/1<Class::ActionController::Parameters>#hook_into_yaml_loading771 +
  0.000.000.000.001/1<Module::JSON>#parser=10 +
  0.000.000.000.001/3Rake::TaskArguments#initialize108 +
  0.000.000.000.003/4Concurrent::Utility::EngineDetector#on_truffleruby?5 +
  0.000.000.000.006/101Symbol#downcase93 +
  0.000.000.000.001/2<Class::Arel::Visitors::Visitor>#dispatch_cache191 +
  0.000.000.000.001/1<Object::Object>#using148 +
  0.000.000.000.001/1Hash#compare_by_identity72 +
  0.000.000.000.003/3<Module::PG>#make_shareable869 +
  0.000.000.000.004/628Exception#initialize +
  0.000.000.000.001/1Minitest::Parallel::Executor#initialize38 +
  0.000.000.000.004/531Module#const_defined?14 +
  0.000.000.000.001/1<Class::Concurrent::LockFreeStack::Node>#[]32 +
  0.000.000.000.001/1ActionCable::Server::Configuration#initialize15 +
  0.000.000.000.006/632Exception#backtrace68 +
  0.000.000.000.007/8422String#<=>309 +
  0.000.000.000.001/1Rails::Railtie::Configuration#before_eager_load24 +
  0.000.000.000.001/4266Time#utc14 +
  0.000.000.000.006/19Exception#exception68 +
  0.000.000.000.001/14549Hash#default_proc=74 +
  0.000.000.000.002/2String#encode!20 +
  0.000.000.000.001/1Array#*49 +
  0.000.000.000.001/3<Class::ActionView::Template::Types>#delegate_to46 +
  0.000.000.000.005/53034String#initialize_copy20 +
  0.000.000.000.003/30Module#ruby2_keywords275 +
  0.000.000.000.004/2106String#to_i5 +
  0.000.000.000.001/1<Class::ActionDispatch::Response::ContentTypeHeader>#new409 +
  0.000.000.000.001/1<Class::Thor>#desc651 +
  0.000.000.000.002/27047<Module::Rails>#application5 +
  0.000.000.000.001/1<Class::ActionDispatch::Routing::RouteSet::Config>#new369 +
  0.000.000.000.003/4874Hash#keys4 +
  0.000.000.000.001/1ActiveSupport::Dependencies::WatchStack#initialize172 +
  0.000.000.000.004/5<Class::Time>#at81 +
  0.000.000.000.001/1Psych::Handler::DumperOptions#initialize27 +
  0.000.000.000.006/125Integer#<<396 +
  0.000.000.000.002/2ActiveModel::Type::Registry#initialize23 +
  0.000.000.000.001/271Sprockets::Configuration#config=20 +
  0.000.000.000.001/1Hash#rehash72 +
  0.000.000.000.001/1<Class::#<Class:0x000000011b887180>>#new9 +
  0.000.000.000.002/1256String#+107 +
  0.000.000.000.003/4Concurrent::Utility::NativeExtensionLoader#c_extensions_loaded?83 +
  0.000.000.000.002/221<Module::Rake>#application5 +
  0.000.000.000.002/2<Module::Rack>#release11 +
  0.000.000.000.001/1<Class::Encoding>#find +
  0.000.000.000.002/2Float#/100 +
  0.000.000.000.001/1<Class::ActiveRecord::Migration>#verbose=633 +
  0.000.000.000.002/2Integer#-8 +
  0.000.000.000.001/1<Module::Concurrent>#create_simple_logger106 +
  0.000.000.000.001/1Integer#~26 +
  0.000.000.000.002/2ActionDispatch::Http::ParameterFilter#initialize31 +
  0.000.000.000.001/1ActiveRecord::Migration#initialize635 +
  0.000.000.000.001/1OpenSSL::X509::Store#flags=91 +
  0.000.000.000.003/3Integer#size7 +
  0.000.000.000.001/3Listen::FSM::ClassMethods#default_state63 +
  0.000.000.000.003/56119Integer#to_i74 +
  0.000.000.000.001/1Numeric#kilobyte712 +
  0.000.000.000.001/8ActionDispatch::Routing::Mapper::Scope#initialize2249 +
  0.000.000.000.001/2<Module::ActionView::Helpers::FormTagHelper>#embed_authenticity_token_in_remote_forms=23 +
  0.000.000.000.003/3Rake::LinkedList::EmptyLinkedList#initialize110 +
  0.000.000.000.001/1ActionDispatch::Journey::Visitors::Dot#initialize263 +
  0.000.000.000.001/1<Class::Minitest::Runnable>#reset329 +
  0.000.000.000.001/1<Module::Psych>#libyaml_version233 +
  0.000.000.000.001/7946Hash#update92 +
  0.000.000.000.003/3Numeric#dup94 +
  0.000.000.000.001/1ActiveSupport::Messages::RotationConfiguration#initialize35 +
  0.000.000.000.001/1<Class::ActionCable::Server::Base>#config87 +
  0.000.000.000.001/155Module#public_method_defined?9 +
  0.000.000.000.001/48Hash#values_at5 +
  0.000.000.000.001/6Integer#-@7 +
  0.000.000.000.001/1<Class::ActionView::Helpers::FormBuilder>#field_helpers1677 +
  0.000.000.000.001/17Thread::ConditionVariable#initialize50 +
  0.000.000.000.001/1<Class::FSEvent>#root_path12 +
  0.000.000.000.001/1<Module::TZInfo::RubyCoreSupport>#time_supports_64bit14 +
  0.000.000.000.001/8Logger#level=47 +
  0.000.000.000.001/1003Kernel#Rational145 +
  0.000.000.000.001/1Thor::Base::ClassMethods#strict_args_position!25 +
  0.000.000.000.001/2Comparable#>16 +
  0.000.000.000.001/662244String#start_with?51 +
  0.000.000.000.001/1Float#-@104 +
  0.000.000.000.004/30229String#hash649 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::NullTransaction#initialize273 +
  0.000.000.000.001/4String#b120 +
  0.000.000.000.001/417Rails::Initializable::ClassMethods#initializers59 +
  0.000.000.000.001/1Concurrent::Promises::InternalStates::Fulfilled#initialize491 +
  0.000.000.000.001/23216Module#<129 +
  0.000.000.000.001/105Rake::LinkedList::EmptyLinkedList#empty?19 +
  0.000.000.000.001/11621Array#concat17 +
  0.000.000.000.001/1Time#year14 +
  0.000.000.000.001/9Thread::Queue#initialize51 +
  0.000.000.000.001/141Module#instance_method106 +
  0.000.000.000.001/72749Integer#to_s22 +
  0.000.000.000.001/31306Kernel#frozen?17 +
  0.000.000.000.001/22<Module::Listen>#logger22 +
  0.000.000.000.001/39717Module#name635 +
  0.000.000.000.001/104Rake::TaskManager#current_scope19 +
  0.010.000.000.011623/15600ActiveRecord::Validations::UniquenessValidator#build_relation85
  0.030.010.000.035264/15600ActiveRecord::QueryMethods#none!737
  0.070.000.000.071484/15600ActiveRecord::Associations::AssociationScope#apply_scope158
  0.250.010.000.237229/15600ActiveRecord::QueryMethods#where581
3.66%0.25%0.360.020.000.3415600 + + ActiveRecord::QueryMethods#where! + + 585
  0.250.020.000.2315600/15987ActiveRecord::Relation::WhereClauseFactory#build588 +
  0.030.010.000.028713/12120ActiveRecord::QueryMethods#references!587 +
  0.020.010.000.018713/9100<Class::ActiveRecord::PredicateBuilder>#references587 +
  0.010.000.000.0115600/21639ActiveRecord::QueryMethods#where_clause=588 +
  0.010.010.000.0015600/15987ActiveRecord::QueryMethods#where_clause_factory588 +
  0.010.010.000.0015600/15987ActiveRecord::Relation::WhereClause#+588 +
  0.010.000.000.0015600/68875ActiveRecord::QueryMethods#where_clause588 +
  0.010.000.000.0015600/15987ActiveModel::ForbiddenAttributesProtection#sanitize_forbidden_attributes586 +
  0.000.000.000.0015600/887726Module#===587 +
  0.000.000.000.001/200Gem::Dependency#matching_specs282
  0.000.000.000.0012/200Kernel#gem_original_require
  0.000.000.000.002/200<Module::Bootsnap::LoadPathCache>#setup44
  0.000.000.000.003/200<Module::Bootsnap::CompileCache>#setup15
  0.010.000.000.011/200Kernel#require3
  0.030.010.000.03107/200Kernel#require_relative
  0.030.000.000.0372/200Kernel#require_without_bootsnap
  0.350.000.000.352/200Kernel#load
3.64%0.17%0.360.020.000.34200 + + *Kernel#require_relative + +
  0.340.000.000.3437/2497Kernel#require3 +
  0.030.010.000.03107/200Kernel#require_relative9 +
  0.020.000.000.02147/1346Bootsnap::CompileCache::ISeq::InstructionSequenceMixin#load_iseq +
  0.010.000.000.011/1<Module::Bundler>#require7 +
  0.000.000.000.001/1<Module::Bootsnap::ExplicitRequire>#with_gems5 +
  0.000.000.000.001/94<Class::Rails::Railtie>#config12 +
  0.000.000.000.001/1<Class::Nokogiri::EncodingHandler>#install_default_aliases57 +
  0.000.000.000.007/639ActiveSupport::Dependencies::Loadable#require7 +
  0.000.000.000.002/2<Module::Loofah::MetaHelpers>#add_downcased_set_members_to_all_set_constants97 +
  0.000.000.000.001/1Forwardable#def_delegators68 +
  0.000.000.000.0044/1172Module#class_eval172 +
  0.000.000.000.0029/10655Set#initialize79 +
  0.000.000.000.001/1<Class::Rails::Application>#inherited10 +
  0.000.000.000.00368/23996Array#flatten2031 +
  0.000.000.000.001/1<Module::Rails>#groups7 +
  0.000.000.000.002/4<Module::Nokogiri>#uses_libxml?1538 +
  0.000.000.000.0059/642Module#include66 +
  0.000.000.000.0011/17Set#+92 +
  0.000.000.000.0068/544Module#attr_reader113 +
  0.000.000.000.005/50<Class::Struct>#new6 +
  0.000.000.000.0013/976Module#module_eval58 +
  0.000.000.000.001/1Nokogiri::VersionInfo#to_hash222 +
  0.000.000.000.001027/20053Module#method_added100 +
  0.000.000.000.001/3Rails::Application::Configuration#load_defaults12 +
  0.000.000.000.0030/272Module#attr_accessor21 +
  0.000.000.000.0095/101Symbol#downcase172 +
  0.000.000.000.001/1Pathname#cleanpath13 +
  0.000.000.000.0075/685Module#alias_method136 +
  0.000.000.000.001/2Nokogiri::VersionInfo#warnings186 +
  0.000.000.000.00368/368Struct#[]2031 +
  0.000.000.000.0092/92<Class::Struct::HTMLElementDescription>#new2027 +
  0.000.000.000.00368/368Struct#[]=2031 +
  0.000.000.000.00187/3660BasicObject#singleton_method_added4 +
  0.000.000.000.0011/5676Array#join15 +
  0.000.000.000.00256/201584Symbol#to_s172 +
  0.000.000.000.001/2<Module::Bootsnap::CompileCache::ISeq>#compile_option_updated108 +
  0.000.000.000.001/1<Class::RubyVM::InstructionSequence>#compile23 +
  0.000.000.000.0011/5608Kernel#extend176 +
  0.000.000.000.00120/2095Class#inherited65 +
  0.000.000.000.0042/236IO#set_encoding +
  0.000.000.000.0023/1703Module#define_method51 +
  0.000.000.000.007/1582<Class::File>#expand_path1 +
  0.000.000.000.001/1RubyVM::InstructionSequence#to_binary23 +
  0.000.000.000.0023/270Module#undef_method8 +
  0.000.000.000.003/31Module#prepend99 +
  0.000.000.000.004/4<Module::Nokogiri>#jruby?130 +
  0.000.000.000.0054/826Module#private342 +
  0.000.000.000.007/184396Kernel#respond_to?217 +
  0.000.000.000.001/13513Float#to_s216 +
  0.000.000.000.001/25Comparable#<5 +
  0.000.000.000.007/23Kernel#__dir__1 +
  0.000.000.000.002/70Module#constants169 +
  0.000.000.000.006/649Module#autoload12 +
  0.000.000.000.001/1<Module::Nokogiri>#libxml2_patches10 +
  0.000.000.000.006/118Class#initialize9 +
  0.000.000.000.0016/171Module#protected98 +
  0.000.000.000.0010/12285Array#compact15 +
  0.000.000.000.002/2Concurrent::AbstractLocals#initialize42 +
  0.000.000.000.001/2<Module::Bootsnap::LoadPathCache>#supported?73 +
  0.000.000.000.001/21Bootsnap#bundler?12 +
  0.000.000.000.007/8<Class::Rack::Files>#method_added29 +
  0.000.000.000.002/2<Class::Rails::HTML::Sanitizer>#html5_support?54 +
  0.000.000.000.002/30Module#attr_writer6 +
  0.000.000.000.001/2<Module::Bootsnap::CompileCache::ISeq>#supported?108 +
  0.000.000.000.0026/53681Symbol#to_sym170 +
  0.000.000.000.005/190Symbol#inspect117 +
  0.000.000.000.0013/28362Kernel#freeze14 +
  0.000.000.000.002/20Singleton::SingletonClassMethods#instance186 +
  0.000.000.000.005/1176<Class::File>#extname42 +
  0.000.000.000.005/1883<Class::File>#basename41 +
  0.000.000.000.0013/1798Module#method_defined?13 +
  0.000.000.000.002/17Set#freeze79 +
  0.000.000.000.006/31207String#include?39 +
  0.000.000.000.001/9<Object::Object>#[]=1 +
  0.000.000.000.0021/125Integer#<<73 +
  0.000.000.000.001/1Exception#message9 +
  0.000.000.000.001/311Kernel#define_singleton_method16 +
  0.000.000.000.001/150<Class::Regexp>#escape3 +
  0.000.000.000.005/30Module#ruby2_keywords240 +
  0.000.000.000.001/39Module#initialize3 +
  0.000.000.000.001/1<Class::Regexp>#last_match7 +
  0.000.000.000.003/103Module#private_constant130 +
  0.000.000.000.005/124039BasicObject#initialize5 +
  0.000.000.000.001/1Kernel#rand216 +
  0.000.000.000.001/48Hash#values_at11 +
  0.000.000.000.001/7Kernel#autoload3 +
  0.000.000.000.002/152Comparable#>=68 +
  0.000.000.000.001/43Module#remove_method29 +
  0.000.000.000.003/47Module#private_class_method38 +
  0.000.000.000.002/141Module#instance_method337 +
  0.000.000.000.001/47Regexp#to_s7 +
  0.000.000.000.001/137<Class::File>#dirname3 +
  0.000.000.000.001/25<Module::Bundler>#bundle_path13 +
  0.000.000.000.002/276Thread::Mutex#initialize548 +
  0.000.000.000.001/13633Pathname#to_s13 +
  0.000.000.000.001/12Concurrent::Utility::EngineDetector#on_cruby?47 +
  0.000.000.000.001/170Kernel#method16 +
  0.000.000.000.001/628Exception#initialize +
  0.000.000.000.002/117Module#module_function4 +
  0.000.000.000.001/139<Object::Object>#[]1 +
  0.000.000.000.003/47170String#freeze13 +
  0.000.000.000.001/393String#force_encoding216 +
  0.000.000.000.001/2589BasicObject#equal?218 +
  0.000.000.000.001/6Module#deprecate_constant1050 +
  0.000.000.000.001/10997String#-@218 +
  0.000.000.000.001/19Exception#exception +
  0.000.000.000.001/887726Module#===7 +
  0.000.000.000.001/632Exception#backtrace +
  0.000.000.000.008/27030<Class::Listen::Logger>#debug28
  0.150.000.000.1513511/27030ActiveRecord::LogSubscriber#log_query_source111
  0.200.000.000.2013511/27030ActiveSupport::LogSubscriber#debug96
3.57%0.08%0.350.010.000.3527030 + + Logger#debug + + 493
  0.350.010.000.3327022/27022ActiveSupport::Logger#add494 +
  0.000.000.000.008/27032Logger#add494 +
  0.350.150.000.1913511/13511ActiveRecord::LogSubscriber#log_query_source103
3.52%1.55%0.350.150.000.1913511 + + ActiveRecord::LogSubscriber#extract_callstack + + 115
  0.120.080.000.04621260/621260ActiveRecord::LogSubscriber#ignored_callstack117 +
  0.070.070.000.001242520/1242635Thread::Backtrace::Location#absolute_path117 +
  0.000.000.000.0013511/13625Thread::Backtrace::Location#lineno123 +
  0.000.000.000.0013511/13625Thread::Backtrace::Location#path123 +
  0.350.010.000.3327022/27022Logger#debug494
3.48%0.13%0.350.010.000.3327022 + + ActiveSupport::Logger#add + + 87
  0.300.030.000.2727022/27032Logger#add89 +
  0.030.010.000.0227022/67574ActiveSupport::LoggerThreadSafeLevel#level88 +
  0.340.010.000.338853/8853Arel::Visitors::Reduce#visit15
3.44%0.10%0.340.010.000.338853 + + Arel::Visitors::ToSql#visit_Arel_Nodes_SelectStatement + + 210
  0.270.020.000.268853/8853Arel::Visitors::ToSql#visit_Arel_Nodes_SelectCore217 +
  0.060.000.000.058853/8853Arel::Visitors::ToSql#visit_Arel_Nodes_SelectOptions229 +
  0.320.000.000.322632/2632ActiveRecord::Associations::HasManyThroughAssociation#build_through_record60
3.26%0.05%0.320.000.000.322632 + + ActiveRecord::Associations::HasManyThroughAssociation#through_scope_attributes + + 68
  0.300.000.000.302632/5651ActiveRecord::Associations::CollectionAssociation#scope69 +
  0.010.000.000.012632/6530ActiveRecord::Relation#where_values_hash69 +
  0.000.000.000.007896/10528ActiveRecord::Associations::ThroughAssociation#through_association69 +
  0.000.000.000.002632/40006ActiveRecord::ModelSchema::ClassMethods#inheritance_column69 +
  0.000.000.000.005264/139363Hash#delete21 +
  0.000.000.000.002632/54437ActiveRecord::Reflection::AssociationReflection#foreign_key69 +
  0.000.000.000.002632/53539ActiveRecord::Reflection::MacroReflection#klass69 +
  0.000.000.000.002632/201584Symbol#to_s69 +
  0.000.000.000.004/8857ActiveRecord::Relation#delete_all406
  0.000.000.000.001/8857<Class::ActiveRecord::StatementCache>#create92
  0.320.000.000.328852/8857ActiveRecord::Relation#skip_query_cache_if_necessary560
3.24%0.03%0.320.000.000.328857 + + ActiveRecord::QueryMethods#arel + + 899
  0.320.040.000.278857/8857ActiveRecord::QueryMethods#build_arel900 +
  0.320.040.000.278857/8857ActiveRecord::QueryMethods#arel900
3.20%0.44%0.320.040.000.278857 + + ActiveRecord::QueryMethods#build_arel + + 923
  0.060.000.000.068852/11960ActiveRecord::Delegation#connection932 +
  0.050.010.000.048857/8857ActiveRecord::QueryMethods#build_select951 +
  0.050.020.000.038857/8857Arel::SelectManager#initialize924 +
  0.020.000.000.028853/8853ActiveRecord::Relation::WhereClause#ast929 +
  0.010.010.000.018852/8852Arel::SelectManager#take937 +
  0.010.010.000.008857/8857ActiveRecord::QueryMethods#build_order949 +
  0.010.000.000.0017709/19336ActiveRecord::QueryMethods#limit_value931 +
  0.010.000.000.008852/8852<Class::ActiveModel::Attribute>#with_cast_value932 +
  0.010.000.000.0017710/68875ActiveRecord::QueryMethods#where_clause929 +
  0.000.000.000.0017714/46362ActiveRecord::Relation::WhereClause#empty?929 +
  0.000.000.000.008858/30162ActiveRecord::QueryMethods#joins_values926 +
  0.000.000.000.008857/15744ActiveRecord::QueryMethods#distinct_value953 +
  0.000.000.000.008857/8861ActiveRecord::QueryMethods#offset_value939 +
  0.000.000.000.008857/23181ActiveRecord::QueryMethods#lock_value955 +
  0.000.000.000.008857/23185ActiveRecord::QueryMethods#left_outer_joins_values927 +
  0.000.000.000.008853/8853Arel::TreeManager#where929 +
  0.000.000.000.008857/8857ActiveRecord::QueryMethods#group_values947 +
  0.000.000.000.008857/37505ActiveRecord::QueryMethods#having_clause930 +
  0.000.000.000.008857/40751ActiveRecord::QueryMethods#from_clause954 +
  0.000.000.000.008852/8852ActiveRecord::ConnectionAdapters::DatabaseStatements#sanitize_limit932 +
  0.000.000.000.008852/32085Arel::Nodes::BindParam#initialize937 +
  0.000.000.000.008857/8857Arel::SelectManager#distinct953 +
  0.000.000.000.001/1ActiveRecord::QueryMethods#build_joins926 +
  0.000.000.000.008852/10729<Module::ActiveRecord::Type>#default_value932 +
  0.000.000.000.008857/37505ActiveRecord::Relation::FromClause#empty?954 +
  0.000.000.000.001/23996Array#flatten926 +
  0.310.010.000.302632/2632ActiveRecord::Core#initialize285
3.14%0.07%0.310.010.000.302632 + + ActiveRecord::Associations::Association#initialize_attributes + + 179
  0.240.000.000.242632/2632ActiveRecord::Associations::Association#scope_for_create184 +
  0.030.000.000.032632/7284ActiveRecord::AttributeMethods::Dirty#changed_attribute_names_to_save182 +
  0.020.000.000.022632/7897ActiveRecord::AttributeAssignment#_assign_attributes185 +
  0.010.000.000.012632/16722ActiveRecord::Associations::Association#set_inverse_instance186 +
  0.000.000.000.005264/139363Hash#delete21 +
  0.000.000.000.002632/25951Array#-184 +
  0.000.000.000.002632/54437ActiveRecord::Reflection::AssociationReflection#foreign_key181 +
  0.000.000.000.002632/201584Symbol#to_s183 +
  0.000.000.000.002632/4874Hash#keys183 +
  0.000.000.000.002632/12285Array#compact181 +
  0.000.000.000.002/27032Logger#info528
  0.000.000.000.008/27032Logger#debug494
  0.300.030.000.2727022/27032ActiveSupport::Logger#add89
3.05%0.32%0.300.030.000.2727032 + + Logger#add + + 458
  0.160.010.000.1527022/27022Logger::LogDevice#write474 +
  0.070.010.000.0627022/27022Logger#format_message474 +
  0.020.010.000.0227022/67574ActiveSupport::LoggerThreadSafeLevel#level460 +
  0.010.010.000.0027022/31294<Class::Time>#now474 +
  0.000.000.000.0027022/27022Logger#format_severity474 +
  0.000.000.000.0027022/120806Kernel#block_given?467 +
  0.300.000.000.30387/387ActiveRecord::Associations::CollectionAssociation#find_target315
3.01%0.00%0.300.000.000.30387 + + ActiveRecord::StatementCache#execute + + 103
  0.300.000.000.30387/7616ActiveRecord::Querying#find_by_sql108 +
  0.000.000.000.00387/387ActiveRecord::StatementCache::BindMap#bind104 +
  0.000.000.000.00387/387ActiveRecord::StatementCache::Query#sql_for106 +
  0.000.000.000.001/14324<Class::ActiveRecord::StatementCache>#create311
  0.050.000.000.053020/14324ActiveRecord::Associations::ThroughAssociation#target_scope34
  0.110.000.000.105652/14324ActiveRecord::Associations::Association#target_scope135
  0.120.000.000.125651/14324ActiveRecord::Associations::Association#scope79
2.86%0.11%0.280.010.000.2714324 + + ActiveRecord::SpawnMethods#merge! + + 41
  0.250.040.000.2114324/14324ActiveRecord::Relation::Merger#merge45 +
  0.020.000.000.0114324/14324ActiveRecord::Relation::Merger#initialize45 +
  0.000.000.000.0028648/448872Kernel#is_a?42 +
  0.000.000.000.00387/7616ActiveRecord::Validations::UniquenessValidator#validate_each26
  0.270.010.000.277229/7616ActiveRecord::FinderMethods#find_by81
2.77%0.06%0.270.010.000.277616 + + ActiveRecord::QueryMethods#where + + 575
  0.250.010.000.237229/15600ActiveRecord::QueryMethods#where!581 +
  0.020.000.000.027616/14845ActiveRecord::SpawnMethods#spawn581 +
  0.000.000.000.007229/24185Hash#blank?578 +
  0.000.000.000.00387/387ActiveRecord::QueryMethods::WhereChain#initialize577 +
  0.270.020.000.268853/8853Arel::Visitors::ToSql#visit_Arel_Nodes_SelectStatement217
2.75%0.16%0.270.020.000.268853 + + Arel::Visitors::ToSql#visit_Arel_Nodes_SelectCore + + 240
  0.180.020.000.1735412/35412Arel::Visitors::ToSql#collect_nodes_for247 +
  0.040.010.000.038853/123860Arel::Visitors::Reduce#visit251 +
  0.020.000.000.0217706/48534Arel::Visitors::ToSql#maybe_visit243 +
  0.010.010.000.0117706/132392Arel::Collectors::Composite#<<241 +
  0.000.000.000.008853/8853Arel::Nodes::JoinSource#empty?249 +
  0.000.000.000.001/42695<Class::Thread>#handle_interrupt
  0.000.000.000.005/42695ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods#get_primary_key100
  0.000.000.000.004/42695ActiveRecord::Relation#delete_all409
  0.000.000.000.0010/42695ActiveRecord::ModelSchema::ClassMethods#table_exists?324
  0.000.000.000.0022/42695ActiveRecord::ModelSchema::ClassMethods#load_schema!466
  0.000.000.000.00387/42695ActiveRecord::Associations::CollectionAssociation#find_target308
  0.010.000.000.011623/42695ActiveRecord::Validations::UniquenessValidator#build_relation83
  0.020.000.000.024265/42695ActiveRecord::Persistence::ClassMethods#_insert_record187
  0.030.000.000.034265/42695ActiveRecord::ModelSchema::ClassMethods#prefetch_primary_key?313
  0.030.000.000.036265/42695ActiveRecord::Transactions#add_to_transaction372
  0.040.000.000.047616/42695ActiveRecord::Querying#find_by_sql41
  0.050.000.000.056272/42695ActiveRecord::Transactions::ClassMethods#transaction212
  0.080.000.000.0711960/42695ActiveRecord::Delegation#connection76
2.74%0.11%0.270.010.000.2642695 + + ActiveRecord::ConnectionHandling#connection + + 89
  0.190.010.000.1831612/42695ActiveRecord::ConnectionHandling#retrieve_connection90 +
  0.070.000.000.0611083/11083<Class::Bus::HABTM_Services>#retrieve_connection90 +
  0.060.000.000.0611083/42695<Class::Bus::HABTM_Services>#retrieve_connection78
  0.190.010.000.1831612/42695ActiveRecord::ConnectionHandling#connection90
2.60%0.20%0.260.020.000.2442695 + + ActiveRecord::ConnectionHandling#retrieve_connection + + 117
  0.140.020.000.1242695/42695ActiveRecord::ConnectionAdapters::ConnectionHandler#retrieve_connection118 +
  0.050.020.000.0342695/42698<Class::ActiveRecord::Base>#connection_handler118 +
  0.050.020.000.0342695/128081ActiveRecord::ConnectionHandling#connection_specification_name118 +
  0.010.000.000.01387/15987ActiveRecord::QueryMethods::WhereChain#not50
  0.250.020.000.2315600/15987ActiveRecord::QueryMethods#where!588
2.57%0.20%0.250.020.000.2315987 + + ActiveRecord::Relation::WhereClauseFactory#build + + 11
  0.200.000.000.199100/9100ActiveRecord::PredicateBuilder#build_from_hash19 +
  0.020.000.000.029100/9100ActiveRecord::PredicateBuilder#resolve_column_aliases16 +
  0.010.000.000.009100/9100Hash#stringify_keys!17 +
  0.000.000.000.005264/12880ActiveRecord::Sanitization::ClassMethods#sanitize_sql14 +
  0.000.000.000.0039056/887726Module#===12 +
  0.000.000.000.0015987/61010ActiveRecord::Relation::WhereClause#initialize26 +
  0.250.040.000.2114324/14324ActiveRecord::SpawnMethods#merge!45
2.54%0.39%0.250.040.000.2114324 + + ActiveRecord::Relation::Merger#merge + + 65
  0.100.020.000.0814324/14324ActiveRecord::Relation::Merger#merge_clauses83 +
  0.040.010.000.0314324/14324ActiveRecord::Relation::Merger#merge_multi_values81 +
  0.020.010.000.0114324/14324ActiveRecord::Relation::Merger#merge_single_values82 +
  0.020.010.000.0114324/14324ActiveRecord::Relation::Merger#merge_joins85 +
  0.020.010.000.0114324/14324ActiveRecord::Relation::Merger#merge_preloads84 +
  0.010.000.000.0114324/14324ActiveRecord::Relation::Merger#merge_outer_joins86 +
  0.010.000.000.003020/12120ActiveRecord::QueryMethods#references!76 +
  0.000.000.000.0014324/14324ActiveRecord::Relation::Merger#normal_values66 +
  0.000.000.000.0011304/45952Array#blank?72 +
  0.000.000.000.003020/201584Symbol#to_s76 +
  0.240.000.000.242632/2632ActiveRecord::Associations::Association#initialize_attributes184
2.42%0.01%0.240.000.000.242632 + + ActiveRecord::Associations::Association#scope_for_create + + 198
  0.220.000.000.222632/5651ActiveRecord::Associations::CollectionAssociation#scope199 +
  0.020.000.000.022632/3265ActiveRecord::Relation#scope_for_create199 +
  0.000.000.000.0030/157302#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c2f728>#name40
  0.000.000.000.001000/157302#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c99e70>#start_time40
  0.000.000.000.002632/157302ActiveRecord::AttributeMethods#attribute_present?374
  0.000.000.000.002000/157302#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c99e70>#price_cents40
  0.000.000.000.002000/157302#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c99e70>#duration_minutes40
  0.010.000.000.002226/157302#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c3f358>#model40
  0.010.000.000.004503/157302ActiveRecord::AttributeMethods::Read#read_attribute64
  0.010.000.000.013226/157302#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c3f358>#number40
  0.010.000.000.0112510/157302ActiveRecord::AttributeMethods#attributes_with_values465
  0.010.000.000.015632/157302ActiveRecord::Associations::BelongsToAssociation#replace_keys98
  0.020.000.000.015284/157302#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x000000011b9a8050>#name40
  0.050.010.000.0428528/157302ActiveRecord::Associations::BelongsToAssociation#stale_state125
  0.120.020.000.0987731/157302ActiveRecord::AttributeMethods::PrimaryKey#id21
2.38%0.41%0.240.040.000.19157302 + + ActiveRecord::AttributeMethods::Read#_read_attribute + + 76
  0.190.040.000.14157302/157302ActiveModel::AttributeSet#fetch_value77 +
  0.010.010.000.00157302/399228String#to_s77 +
  0.000.000.000.001/54097ActiveRecord::ConnectionAdapters::ConnectionPool#flush619
  0.000.000.000.001/54097ActiveRecord::ConnectionAdapters::ConnectionPool#reap595
  0.000.000.000.001/54097ActiveRecord::ConnectionAdapters::ConnectionPool::Queue#synchronize155
  0.000.000.000.002/54097ActiveRecord::ConnectionAdapters::ConnectionPool#try_to_checkout_new_connection844
  0.000.000.000.005/54097ActiveSupport::Concurrency::ShareLock#stop_exclusive97
  0.000.000.000.005/54097ActiveSupport::Concurrency::ShareLock#start_exclusive77
  0.080.010.000.0727060/54097ActiveSupport::Concurrency::ShareLock#yield_shares173
  0.150.010.000.1527022/54097Logger::LogDevice#write33
2.36%0.14%0.230.010.000.2254097 + + MonitorMixin#synchronize + + 201
  0.220.040.000.1854097/54197Monitor#synchronize202 +
  0.230.010.000.2213511/13511ActiveRecord::LogSubscriber#debug95
2.30%0.07%0.230.010.000.2213511 + + ActiveSupport::LogSubscriber#debug + + 95
  0.200.000.000.2013511/27030Logger#debug96 +
  0.020.010.000.0127022/81123ActiveRecord::LogSubscriber#logger96 +
  0.000.000.000.001/3020<Class::ActiveRecord::StatementCache>#create311
  0.230.010.000.223019/3020ActiveRecord::Associations::Association#scope79
2.30%0.05%0.230.010.000.223020 + + ActiveRecord::Associations::ThroughAssociation#target_scope + + 30
  0.100.000.000.103020/5652ActiveRecord::Associations::Association#target_scope31 +
  0.050.000.000.053020/14324ActiveRecord::SpawnMethods#merge!34 +
  0.020.010.000.013020/4643ActiveRecord::SpawnMethods#except34 +
  0.020.000.000.023020/3020ActiveRecord::Scoping::Named::ClassMethods#scope_for_association33 +
  0.020.000.000.023020/7311ActiveRecord::Reflection::AbstractReflection#chain32 +
  0.010.000.000.013020/19012ActiveRecord::Core::ClassMethods#relation33 +
  0.000.000.000.003020/53539ActiveRecord::Reflection::MacroReflection#klass33 +
  0.230.000.000.231/1Rake::Application#standard_exception_handling82
2.30%0.00%0.230.000.000.231 + + Rake::Application#load_rakefile + + 124
  0.230.000.000.231/3Rake::Application#standard_exception_handling125 +
  0.230.000.000.231/1Rake::Application#standard_exception_handling126
2.30%0.00%0.230.000.000.231 + + Rake::Application#raw_load_rakefile + + 719
  0.230.000.000.231/1<Module::Rake>#load_rakefile735 +
  0.000.000.000.001/1Rake::Application#find_rakefile_location720 +
  0.000.000.000.001/1582<Class::File>#expand_path735 +
  0.000.000.000.001/1Rake::Application#glob737 +
  0.000.000.000.001/1Rake::Application#load_imports742 +
  0.000.000.000.001/1<Object::OpenStruct>#rakelib736 +
  0.000.000.000.001/1Rake::Application#print_rakefile_directory733 +
  0.000.000.000.001/29<Class::Dir>#chdir732 +
  0.000.000.000.003/57Rake::Application#options721 +
  0.000.000.000.001/1<Object::OpenStruct>#ignore_system721 +
  0.000.000.000.001/1<Object::OpenStruct>#load_system721 +
  0.230.000.000.231/1Rake::Application#raw_load_rakefile735
2.30%0.00%0.230.000.000.231 + + <Module::Rake>#load_rakefile + + 28
  0.230.000.000.231/31Kernel#load29 +
  0.100.010.000.097616/13510ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_cache618
  0.130.010.000.125894/13510ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_no_cache608
2.24%0.17%0.220.020.000.2013510 + + ActiveRecord::ConnectionAdapters::Quoting#type_casted_binds + + 141
  0.120.010.000.1130988/30988ActiveRecord::ConnectionAdapters::Quoting#type_cast145 +
  0.070.010.000.0722136/22136ActiveRecord::Relation::QueryAttribute#value_for_database145 +
  0.010.000.000.018852/48924ActiveModel::Attribute#value_for_database145 +
  0.000.000.000.0013510/448872Kernel#is_a?142 +
  0.010.000.000.015632/87731ActiveRecord::AutosaveAssociation#save_belongs_to_association492
  0.030.010.000.0214373/87731ActiveRecord::Core#eql?432
  0.030.010.000.0210530/87731ActiveRecord::Transactions#remember_transaction_record_state404
  0.030.010.000.038530/87731ActiveRecord::Persistence#_create_record735
  0.040.010.000.0321972/87731ActiveRecord::Core#==432
  0.060.010.000.0526694/87731ActiveRecord::Core#hash442
2.09%0.46%0.210.050.000.1687731 + + ActiveRecord::AttributeMethods::PrimaryKey#id + + 18
  0.120.020.000.0987731/157302ActiveRecord::AttributeMethods::Read#_read_attribute21 +
  0.030.020.000.0187731/166914ActiveRecord::Transactions#sync_with_transaction_state19 +
  0.010.010.000.0087731/150660ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods#primary_key20 +
  0.000.000.000.0087731/635445Kernel#class20 +
  0.200.000.000.199100/9100ActiveRecord::Relation::WhereClauseFactory#build19
2.00%0.04%0.200.000.000.199100 + + ActiveRecord::PredicateBuilder#build_from_hash + + 19
  0.190.020.000.179100/10036ActiveRecord::PredicateBuilder#expand_from_hash21 +
  0.010.010.000.009100/9100ActiveRecord::PredicateBuilder#convert_dot_notation_to_hash20 +
  0.090.000.000.092632/5652ActiveRecord::Associations::Association#scope79
  0.100.000.000.103020/5652ActiveRecord::Associations::ThroughAssociation#target_scope31
1.96%0.05%0.190.000.000.195652 + + ActiveRecord::Associations::Association#target_scope + + 134
  0.110.000.000.105652/14324ActiveRecord::SpawnMethods#merge!135 +
  0.060.000.000.055652/13518ActiveRecord::Scoping::Named::ClassMethods#all135 +
  0.020.000.000.025652/29307ActiveRecord::Delegation::ClassMethods#create135 +
  0.000.000.000.0011304/29316ActiveRecord::Associations::Association#klass135 +
  0.010.000.000.01936/10036ActiveRecord::PredicateBuilder#expand_from_hash73
  0.190.020.000.179100/10036ActiveRecord::PredicateBuilder#build_from_hash21
1.90%0.19%0.190.020.000.1710036 + + *ActiveRecord::PredicateBuilder#expand_from_hash + + 68
  0.100.010.000.099100/9100ActiveRecord::PredicateBuilder#build112 +
  0.030.000.000.03936/936ActiveRecord::PredicateBuilder#associated_predicate_builder73 +
  0.020.000.000.029100/9100ActiveRecord::TableMetadata#arel_attribute112 +
  0.010.000.000.01936/10036ActiveRecord::PredicateBuilder#expand_from_hash73 +
  0.010.000.000.019100/9100ActiveRecord::TableMetadata#aggregated_with?94 +
  0.010.000.000.009100/9100ActiveRecord::TableMetadata#associated_with?74 +
  0.000.000.000.00936/936ActiveRecord::TableMetadata#has_column?72 +
  0.000.000.000.0010036/448872Kernel#is_a?72 +
  0.190.040.000.14157302/157302ActiveRecord::AttributeMethods::Read#_read_attribute77
1.87%0.45%0.190.040.000.14157302 + + ActiveModel::AttributeSet#fetch_value + + 47
  0.080.030.000.05157302/235994ActiveModel::Attribute#value48 +
  0.060.030.000.03157302/274702ActiveModel::AttributeSet#[]48 +
  0.180.020.000.1735412/35412Arel::Visitors::ToSql#visit_Arel_Nodes_SelectCore247
1.86%0.18%0.180.020.000.1735412 + + Arel::Visitors::ToSql#collect_nodes_for + + 265
  0.150.010.000.1417706/123860Arel::Visitors::Reduce#visit270 +
  0.010.010.000.0017706/132392Arel::Collectors::Composite#<<267 +
  0.190.010.000.1810123/10123BasicObject#instance_eval
1.84%0.06%0.180.010.000.1810123 + + *ActiveRecord::AutosaveAssociation#validate_collection_association + + 313
  0.170.000.000.175264/5264ActiveRecord::AutosaveAssociation#association_valid?316 +
  0.000.000.000.001548/3096ActiveRecord::AutosaveAssociation#associated_records_to_validate_or_save315 +
  0.000.000.000.0010123/34587ActiveRecord::Associations#association_instance_get314 +
  0.000.000.000.001548/41328ActiveRecord::Persistence#new_record?315 +
  0.000.000.000.004255/11473ActiveRecord::Reflection::ThroughReflection#name314 +
  0.000.000.000.001000/49299ActiveRecord::Reflection::ThroughReflection#options315 +
  0.080.000.000.085264/10915ActiveRecord::Associations::CollectionAssociation#add_to_target280
  0.100.000.000.095651/10915ActiveRecord::Associations::Association#scope79
1.80%0.04%0.180.000.000.1710915 + + ActiveRecord::Associations::Association#association_scope + + 88
  0.170.000.000.171483/1483<Class::ActiveRecord::Associations::AssociationScope>#scope90 +
  0.000.000.000.0010915/29316ActiveRecord::Associations::Association#klass89 +
  0.000.000.000.001/639ActiveSupport::Dependencies::Loadable#require90 +
  0.000.000.000.005/1346<Module::Kernel>#load
  0.000.000.000.0029/1346Kernel#load
  0.020.000.000.02147/1346Kernel#require_relative
  0.160.000.000.161165/1346Kernel#require_without_bootsnap
1.80%0.01%0.180.000.000.181346 + + Bootsnap::CompileCache::ISeq::InstructionSequenceMixin#load_iseq + + 85
  0.180.000.000.181346/1346<Module::Bootsnap::CompileCache::ISeq>#fetch89 +
  0.000.000.000.001346/399228String#to_s89 +
  0.000.000.000.006/1352Bootsnap::CompileCache::YAML::Psych3::Patch#load_file304
  0.180.100.000.071346/1352<Module::Bootsnap::CompileCache::ISeq>#fetch64
1.79%1.06%0.180.100.000.071352 + + <Module::Bootsnap::CompileCache::Native>#fetch + +
  0.070.000.000.071346/1346<Module::Bootsnap::CompileCache::ISeq>#storage_to_output +
  0.000.000.000.006/6Bootsnap::CompileCache::YAML::Psych3#storage_to_output +
  0.180.000.000.181346/1346Bootsnap::CompileCache::ISeq::InstructionSequenceMixin#load_iseq89
1.78%0.01%0.180.000.000.181346 + + <Module::Bootsnap::CompileCache::ISeq>#fetch + + 63
  0.180.100.000.071346/1352<Module::Bootsnap::CompileCache::Native>#fetch64 +
  0.000.000.000.001346/399228String#to_s64 +
  0.170.000.000.175264/5264ActiveRecord::AutosaveAssociation#validate_collection_association316
1.75%0.04%0.170.000.000.175264 + + ActiveRecord::AutosaveAssociation#association_valid? + + 324
  0.160.000.000.165264/10529ActiveRecord::Validations#valid?329 +
  0.000.000.000.005264/20812ActiveRecord::Persistence#destroyed?325 +
  0.000.000.000.005264/6038ActiveRecord::AutosaveAssociation#custom_validation_context?327 +
  0.000.000.000.002632/49299ActiveRecord::Reflection::ThroughReflection#options325 +
  0.170.000.000.171483/1483ActiveRecord::Associations::Association#association_scope90
1.71%0.00%0.170.000.000.171483 + + <Class::ActiveRecord::Associations::AssociationScope>#scope + + 6
  0.170.000.000.171483/1484ActiveRecord::Associations::AssociationScope#scope7 +
  0.000.000.000.001/1484<Class::ActiveRecord::StatementCache>#create311
  0.170.000.000.171483/1484<Class::ActiveRecord::Associations::AssociationScope>#scope7
1.71%0.02%0.170.000.000.171484 + + ActiveRecord::Associations::AssociationScope#scope + + 21
  0.130.000.000.121484/1484ActiveRecord::Associations::AssociationScope#add_constraints29 +
  0.010.000.000.011484/1484ActiveRecord::Associations::AssociationScope#get_chain26 +
  0.010.000.000.011484/1485ActiveRecord::Relation#alias_tracker26 +
  0.010.000.000.001484/3107ActiveRecord::Scoping::Default::ClassMethods#unscoped24 +
  0.010.000.000.001484/6748ActiveRecord::QueryMethods#extending!28 +
  0.000.000.000.00936/936ActiveRecord::Reflection::ThroughReflection#extensions28 +
  0.000.000.000.001484/29316ActiveRecord::Associations::Association#klass22 +
  0.000.000.000.00548/1484ActiveRecord::Reflection::AssociationReflection#extensions28 +
  0.160.010.000.1527022/27022Logger#add474
1.61%0.07%0.160.010.000.1527022 + + Logger::LogDevice#write + + 31
  0.150.010.000.1527022/54097MonitorMixin#synchronize33 +
  0.160.010.000.157616/7616ActiveSupport::Notifications::Instrumenter#instrument52
1.60%0.07%0.160.010.000.157616 + + ActiveRecord::Result#each + + 55
  0.130.010.000.128193/8193ActiveRecord::Persistence::ClassMethods#instantiate52 +
  0.020.020.000.007616/7616ActiveRecord::Result#hash_rows57 +
  0.000.000.000.007616/120806Kernel#block_given?56 +
  0.160.000.000.164255/4255ActiveModel::EachValidator#validate152
1.59%0.03%0.160.000.000.164255 + + ActiveModel::Validations::InclusionValidator#validate_each + + 10
  0.150.000.000.14613/613ActiveModel::Errors#add22 +
  0.010.000.000.004255/4255ActiveModel::Validations::Clusivity#include?11 +
  0.000.000.000.001226/139363Hash#delete21 +
  0.000.000.000.00613/37068ActiveModel::Validations#errors12 +
  0.000.000.000.00613/81201Hash#initialize_copy13 +
  0.000.000.000.00613/20015Hash#merge!22 +
  0.150.000.000.14613/613ActiveModel::Validations::InclusionValidator#validate_each22
1.47%0.01%0.150.000.000.14613 + + ActiveModel::Errors#add + + 295
  0.140.000.000.14613/613ActiveModel::Errors#normalize_message298 +
  0.000.000.000.00613/613ActiveModel::Errors#normalize_detail297 +
  0.000.000.000.00613/184396Kernel#respond_to?296 +
  0.000.000.000.001226/53681Symbol#to_sym304 +
  0.140.000.000.141613/1613Kernel#catch
1.45%0.01%0.140.000.000.141613 + + Bus#validate_associated_records_for_services + + 153
  0.140.000.000.141613/21542BasicObject#instance_eval159 +
  0.000.000.000.004/48534Arel::Visitors::ToSql#visit_Arel_Nodes_DeleteStatement87
  0.020.000.000.0217706/48534Arel::Visitors::ToSql#visit_Arel_Nodes_SelectCore243
  0.050.000.000.0526559/48534Arel::Visitors::ToSql#visit_Arel_Nodes_SelectOptions235
  0.070.000.000.074265/48534Arel::Visitors::ToSql#visit_Arel_Nodes_InsertStatement134
1.44%0.10%0.140.010.000.1348534 + + Arel::Visitors::ToSql#maybe_visit + + 812
  0.120.020.000.1021969/123860Arel::Visitors::Reduce#visit815 +
  0.010.010.000.0121969/132392Arel::Collectors::Composite#<<814 +
  0.140.000.000.14613/613ActiveModel::Errors#add298
1.44%0.01%0.140.000.000.14613 + + ActiveModel::Errors#normalize_message + + 451
  0.140.000.000.14613/613ActiveModel::Errors#generate_message22 +
  0.000.000.000.003678/139363Hash#delete21 +
  0.000.000.000.00613/887726Module#===452 +
  0.000.000.000.00613/81201Hash#initialize_copy13 +
  0.140.000.000.14613/613ActiveModel::Errors#normalize_message22
1.42%0.05%0.140.000.000.14613 + + ActiveModel::Errors#generate_message + + 401
  0.060.000.000.06613/4904I18n::Base#translate430 +
  0.040.000.000.04613/613ActiveModel::Translation#human_attribute_name423 +
  0.030.000.000.03613/613ActiveModel::Name#human423 +
  0.000.000.000.00613/1839ActiveRecord::Translation#lookup_ancestors406 +
  0.000.000.000.00613/2226#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000158c3f358>#model420 +
  0.000.000.000.006130/201584Symbol#to_s405 +
  0.000.000.000.00613/184396Kernel#respond_to?404 +
  0.000.000.000.00613/613ActiveRecord::Base#model_name423 +
  0.000.000.000.001226/3065ActiveModel::Naming#model_name407 +
  0.000.000.000.002452/635445Kernel#class404 +
  0.000.000.000.00613/20015Hash#merge!423 +
  0.000.000.000.00613/448872Kernel#is_a?402 +
  0.000.000.000.00613/1839ActiveRecord::Translation#i18n_scope405 +
  0.000.000.000.00613/3150Array#shift418 +
  0.000.000.000.004/13518ActiveRecord::Querying#delete_all10
  0.000.000.000.00633/13518ActiveRecord::Scoping::ClassMethods#scope_attributes26
  0.060.000.000.055652/13518ActiveRecord::Associations::Association#target_scope135
  0.080.010.000.077229/13518ActiveRecord::Querying#find_or_create_by8
1.41%0.10%0.140.010.000.1313518 + + ActiveRecord::Scoping::Named::ClassMethods#all + + 26
  0.060.000.000.0613518/23446ActiveRecord::Scoping::ClassMethods#current_scope27 +
  0.050.010.000.0412885/19012ActiveRecord::Core::ClassMethods#relation36 +
  0.020.000.000.0212885/15905ActiveRecord::Scoping::Named::ClassMethods#default_scoped36 +
  0.000.000.000.00633/15480Kernel#clone31 +
  0.140.020.000.1242695/42695ActiveRecord::ConnectionHandling#retrieve_connection118
1.41%0.18%0.140.020.000.1242695 + + ActiveRecord::ConnectionAdapters::ConnectionHandler#retrieve_connection + + 1030
  0.060.020.000.0542695/42695ActiveRecord::ConnectionAdapters::ConnectionPool#connection1033 +
  0.060.010.000.0442695/42695ActiveRecord::ConnectionAdapters::ConnectionHandler#retrieve_connection_pool1031 +
  0.140.000.000.141000/1000ActiveSupport::Callbacks::CallbackSequence#invoke_after426
1.41%0.01%0.140.000.000.141000 + + Bus#autosave_associated_records_for_services + + 153
  0.140.000.000.141000/21542BasicObject#instance_eval159 +
  0.230.040.000.18132/132Kernel#require86
1.31%0.43%0.130.040.000.09132 + + *Kernel#gem_original_require + +
  0.100.000.000.101/2<Module::Bundler>#setup10 +
  0.080.000.000.08103/2497Kernel#require3 +
  0.000.000.000.0012/200Kernel#require_relative13 +
  0.000.000.000.005/1116<Module::Bundler>#rubygems312 +
  0.000.000.000.0031/31<Class::Bundler::FeatureFlag>#settings_flag30 +
  0.000.000.000.001/1Bundler::EnvironmentPreserver#initialize21 +
  0.000.000.000.001/2URI::RFC2396_Parser#initialize22 +
  0.000.000.000.0089/976Module#module_eval1677 +
  0.000.000.000.001280/1857String#%342 +
  0.000.000.000.002560/10997String#-@342 +
  0.000.000.000.001280/1280Integer#chr342 +
  0.000.000.000.0019/2260<Class::Gem::Platform>#new189 +
  0.000.000.000.008/50<Class::Struct>#new52 +
  0.000.000.000.00109/2095Class#inherited14 +
  0.000.000.000.0030/30<Class::Bundler::BundlerError>#status_code20 +
  0.000.000.000.0059/544Module#attr_reader15 +
  0.000.000.000.001209/20053Module#method_added61 +
  0.000.000.000.00142/1703Module#define_method83 +
  0.000.000.000.00168/236IO#set_encoding +
  0.000.000.000.0077/83Gem::Platform#hash73 +
  0.000.000.000.0024/272Module#attr_accessor27 +
  0.000.000.000.004/1043Gem::Version#hash32 +
  0.000.000.000.004/4<Module::Bundler::FileUtils>#collect_method1656 +
  0.000.000.000.003/4Bundler::RubygemsIntegration#provides?18 +
  0.000.000.000.003/35Module#instance_methods29 +
  0.000.000.000.005/457Module#public1686 +
  0.000.000.000.0033/642Module#include207 +
  0.000.000.000.001/1<Object::Object>#replace23 +
  0.000.000.000.0057/649Module#autoload26 +
  0.000.000.000.0055/117Module#module_function19 +
  0.000.000.000.002/25Comparable#<6 +
  0.000.000.000.0076/826Module#private509 +
  0.000.000.000.00178/3660BasicObject#singleton_method_added65 +
  0.000.000.000.0046/46UnboundMethod#parameters1604 +
  0.000.000.000.001/6<Class::Bundler::RubygemsIntegration>#provides?879 +
  0.000.000.000.00256/268Integer#>>348 +
  0.000.000.000.001/1<Module::Bundler>#overwrite_loaded_gem_version23 +
  0.000.000.000.004/854<Class::Gem::Version>#create32 +
  0.000.000.000.0038/685Module#alias_method39 +
  0.000.000.000.0016/16<Module::Bundler::FileUtils>#private_module_function161 +
  0.000.000.000.001/1Bundler::EnvironmentPreserver#backup23 +
  0.000.000.000.00169/53681Symbol#to_sym29 +
  0.000.000.000.007/5608Kernel#extend1181 +
  0.000.000.000.001/1Bundler::EnvironmentPreserver#restore22 +
  0.000.000.000.002/2Kernel#singleton_methods1656 +
  0.000.000.000.0043/28362Kernel#freeze27 +
  0.000.000.000.0042/154Module#const_set25 +
  0.000.000.000.0046/141Module#instance_method1604 +
  0.000.000.000.004/1406<Class::Gem::Version>#new6 +
  0.000.000.000.0025/171Module#protected292 +
  0.000.000.000.004/30Module#attr_writer31 +
  0.000.000.000.0046/201584Symbol#to_s1604 +
  0.000.000.000.001/3Module#private_instance_methods1603 +
  0.000.000.000.002/25951Array#-1656 +
  0.000.000.000.005/5<Class::Bundler::Runtime>#definition_method113 +
  0.000.000.000.001/1URI::RFC3986_Parser#initialize19 +
  0.000.000.000.001/1Kernel#methods1603 +
  0.000.000.000.0046/4458Array#compact!1604 +
  0.000.000.000.001/1<Module::Bundler::Plugin>#reset!30 +
  0.000.000.000.001/1582<Class::File>#expand_path24 +
  0.000.000.000.0029/32String#intern1656 +
  0.000.000.000.001/6<Class::Regexp>#union439 +
  0.000.000.000.0031/531Module#const_defined?24 +
  0.000.000.000.001/9356Array#&1603 +
  0.000.000.000.001/1Bundler::SharedHelpers#in_bundle?5 +
  0.000.000.000.006/47Regexp#to_s181 +
  0.000.000.000.0011/16008String#split5 +
  0.000.000.000.0012/80String#tr82 +
  0.000.000.000.001/2<Module::Bundler>#ui=27 +
  0.000.000.000.001/5676Array#join4 +
  0.000.000.000.002/7959Numeric#nonzero?22 +
  0.000.000.000.001/71String#scan4 +
  0.000.000.000.002/7Kernel#autoload13 +
  0.000.000.000.002/2<Class::Bundler::GemHelpers::PlatformMatch>#new67 +
  0.000.000.000.0012/47170String#freeze6 +
  0.000.000.000.001/1<Class::Bundler::FeatureFlag>#settings_option62 +
  0.000.000.000.006/184396Kernel#respond_to?168 +
  0.000.000.000.005/47Module#private_class_method22 +
  0.000.000.000.0010/72749Integer#to_s28 +
  0.000.000.000.001/2IO#tty?8 +
  0.000.000.000.002/43Module#remove_method30 +
  0.000.000.000.002/270Module#undef_method195 +
  0.000.000.000.004/1798Module#method_defined?76 +
  0.000.000.000.001/23996Array#flatten38 +
  0.000.000.000.006/53034String#initialize_copy32 +
  0.000.000.000.001/33<Class::Bundler::FeatureFlag>#settings_method64 +
  0.000.000.000.004/2106String#to_i5 +
  0.000.000.000.003/12461Class#allocate168 +
  0.000.000.000.002/11<Class::Regexp>#quote34 +
  0.000.000.000.002/2Bundler::RubygemsIntegration::MoreFuture#stubs_provide_full_functionality?312 +
  0.000.000.000.001/14655Kernel#proc26 +
  0.000.000.000.001/152Comparable#>=4 +
  0.000.000.000.001/21663Hash#values38 +
  0.000.000.000.001/60121Regexp#===1148 +
  0.000.000.000.001/276Thread::Mutex#initialize24 +
  0.000.000.000.001/124039BasicObject#initialize10 +
  0.000.000.000.001/4874Hash#keys16 +
  0.000.000.000.001/31747Hash#initialize24 +
  0.000.000.000.001/448872Kernel#is_a?89 +
  0.130.010.000.128193/8193ActiveRecord::Result#each52
1.29%0.09%0.130.010.000.128193 + + ActiveRecord::Persistence::ClassMethods#instantiate + + 68
  0.070.010.000.068193/8193ActiveRecord::Core#init_with71 +
  0.020.010.000.028193/8193ActiveRecord::Inheritance::ClassMethods#discriminate_class_for_record69 +
  0.010.010.000.018193/8193ActiveModel::AttributeSet::Builder#build_from_database70 +
  0.010.000.000.018193/8193ActiveRecord::Core::ClassMethods#allocate71 +
  0.000.000.000.008193/8193ActiveRecord::ModelSchema::ClassMethods#attributes_builder70 +
  0.130.000.000.121484/1484ActiveRecord::Associations::AssociationScope#scope29
1.28%0.03%0.130.000.000.121484 + + ActiveRecord::Associations::AssociationScope#add_constraints + + 123
  0.090.000.000.091484/1484ActiveRecord::Associations::AssociationScope#last_chain_scope124 +
  0.020.000.000.02936/936ActiveRecord::Associations::AssociationScope#next_chain_scope127 +
  0.010.000.000.001484/1484ActiveRecord::Reflection::RuntimeReflection#constraints134 +
  0.000.000.000.00936/2808Delegator#method_missing134 +
  0.000.000.000.001484/1884Array#size126 +
  0.000.000.000.001484/50425Array#last124 +
  0.120.080.000.04621260/621260ActiveRecord::LogSubscriber#extract_callstack117
1.26%0.84%0.120.080.000.04621260 + + ActiveRecord::LogSubscriber#ignored_callstack + + 130
  0.040.040.000.00634771/662244String#start_with?131 +
  0.010.000.000.018852/48924ActiveRecord::ConnectionAdapters::Quoting#type_casted_binds145
  0.050.010.000.0417936/48924ActiveModel::Attribute#forgetting_assignment67
  0.070.010.000.0622136/48924ActiveRecord::Relation::QueryAttribute#value_for_database13
1.26%0.18%0.120.020.000.1148924 + + ActiveModel::Attribute#value_for_database + + 54
  0.070.010.000.0625567/25567ActiveModel::Type::Integer#serialize55 +
  0.020.010.000.0114118/14118ActiveModel::Type::ImmutableString#serialize55 +
  0.020.010.000.0048924/235994ActiveModel::Attribute#value55 +
  0.000.000.000.009239/23357ActiveModel::Type::Value#serialize55 +
  0.120.020.000.118264/8264BasicObject#instance_eval
1.25%0.15%0.120.020.000.118264 + + ActiveRecord::AutosaveAssociation#save_belongs_to_association + + 477
  0.030.000.000.025632/13896ActiveRecord::AttributeMethods#[]=493 +
  0.020.000.000.025632/12877ActiveRecord::Associations::Association#loaded!494 +
  0.020.000.000.015632/5632ActiveRecord::Associations::Association#load_target481 +
  0.020.000.000.015632/17264ActiveRecord::Associations::Association#stale_target?479 +
  0.010.000.000.015632/87731ActiveRecord::AttributeMethods::PrimaryKey#id492 +
  0.000.000.000.005632/20812ActiveRecord::Persistence#destroyed?482 +
  0.000.000.000.005632/41328ActiveRecord::Persistence#new_record?489 +
  0.000.000.000.008264/34587ActiveRecord::Associations#association_instance_get478 +
  0.000.000.000.005632/54437ActiveRecord::Reflection::AssociationReflection#foreign_key493 +
  0.000.000.000.005632/5632ActiveRecord::Associations::BelongsToAssociation#updated?491 +
  0.000.000.000.005632/41773ActiveRecord::Associations::Association#loaded?479 +
  0.120.010.000.1130988/30988ActiveRecord::ConnectionAdapters::Quoting#type_casted_binds145
1.23%0.11%0.120.010.000.1130988 + + ActiveRecord::ConnectionAdapters::Quoting#type_cast + + 24
  0.110.020.000.0930988/30988ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting#_type_cast31 +
  0.000.000.000.0030988/448872Kernel#is_a?25 +
  0.020.000.000.022632/5264ActiveRecord::Associations::CollectionAssociation#build108
  0.100.000.000.092632/5264ActiveRecord::Associations::CollectionAssociation#concat_records437
1.21%0.03%0.120.000.000.125264 + + ActiveRecord::Associations::CollectionAssociation#add_to_target + + 279
  0.080.000.000.085264/10915ActiveRecord::Associations::Association#association_scope280 +
  0.030.010.000.035264/6861ActiveRecord::Associations::CollectionAssociation#replace_on_target283 +
  0.000.000.000.005264/15744ActiveRecord::QueryMethods#distinct_value280 +
  0.120.000.000.12387/387ActiveRecord::Associations::CollectionAssociation#replace249
1.20%0.02%0.120.000.000.12387 + + ActiveRecord::Associations::CollectionAssociation#replace_common_records_in_memory + + 424
  0.080.000.000.08387/387ActiveRecord::Associations::HasManyThroughAssociation#intersection425 +
  0.040.000.000.035741/7324ActiveRecord::Core#==428 +
  0.000.000.000.001597/6861ActiveRecord::Associations::CollectionAssociation#replace_on_target428 +
  0.030.000.000.02613/4904ActiveModel::Name#human190
  0.030.000.000.03613/4904ActiveModel::Translation#human_attribute_name67
  0.050.000.000.053065/4904Kernel#catch
  0.060.000.000.06613/4904ActiveModel::Errors#generate_message430
1.20%0.05%0.120.000.000.114904 + + *I18n::Base#translate + + 210
  0.150.000.000.154904/4904I18n::Base#translate_key222 +
  0.010.000.000.014904/4904I18n::Base#enforce_available_locales!213 +
  0.000.000.000.006743/23935I18n::Base#config211 +
  0.000.000.000.004904/4908I18n::Config#backend215 +
  0.000.000.000.001839/1839I18n::Config#locale211 +
  0.000.000.000.004904/448872Kernel#is_a?217 +
  0.120.000.000.1121147/21147ActiveSupport::Notifications::Instrumenter#instrument21
1.17%0.05%0.120.000.000.1121147 + + ActiveSupport::Notifications::Instrumenter#start + + 34
  0.110.010.000.1021147/21147ActiveSupport::Notifications::Fanout#start35 +
  0.030.000.000.032632/7284ActiveRecord::Associations::Association#initialize_attributes182
  0.080.000.000.084652/7284ActiveRecord::AttributeMethods::Dirty#keys_for_partial_write146
1.17%0.03%0.120.000.000.117284 + + ActiveRecord::AttributeMethods::Dirty#changed_attribute_names_to_save + + 113
  0.110.010.000.107284/7284ActiveModel::AttributeMutationTracker#changed_attribute_names114 +
  0.010.000.000.007284/19974ActiveModel::Dirty#mutations_from_database114 +
  0.000.000.000.002/27024Kernel#printf
  0.120.110.000.0027022/27024Monitor#synchronize
1.17%1.13%0.120.110.000.0027024 + + IO#write + +
  0.120.000.000.118853/8853Arel::Visitors::Reduce#visit15
1.17%0.02%0.120.000.000.118853 + + Arel::Visitors::ToSql#visit_Arel_Nodes_And + + 638
  0.110.020.000.108853/8854Arel::Visitors::ToSql#inject_join639 +
  0.110.000.000.112632/2632ActiveRecord::AutosaveAssociation#save_collection_association408
1.16%0.02%0.110.000.000.112632 + + ActiveRecord::Associations::HasManyThroughAssociation#insert_record + + 38
  0.060.000.000.062632/2632ActiveRecord::Associations::HasManyThroughAssociation#save_through_record45 +
  0.040.000.000.042632/3019ActiveRecord::AttributeMethods::Dirty#has_changes_to_save?41 +
  0.010.000.000.012632/3248ActiveRecord::Associations::ThroughAssociation#ensure_not_nested39 +
  0.000.000.000.002632/41328ActiveRecord::Persistence#new_record?41 +
  0.000.000.000.001/8854Arel::Visitors::ToSql#visit_Arel_Nodes_JoinSource550
  0.110.020.000.108853/8854Arel::Visitors::ToSql#visit_Arel_Nodes_And639
1.14%0.17%0.110.020.000.108854 + + Arel::Visitors::ToSql#inject_join + + 818
  0.100.010.000.099241/123860Arel::Visitors::Reduce#visit822 +
  0.000.000.000.00387/132392Arel::Collectors::Composite#<<824 +
  0.000.000.000.004/13629<Class::Rails::Engine>#inherited363
  0.000.000.000.0022/13629<Module::Forwardable>#_delegator_method209
  0.000.000.000.0092/13629Module#delegate170
  0.110.110.010.0013511/13629ActiveRecord::LogSubscriber#log_query_source103
1.13%1.08%0.110.110.010.0013629 + + Kernel#caller_locations + +
  0.110.010.000.116265/6265ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction386
1.12%0.06%0.110.010.000.116265 + + ActiveRecord::Transactions#add_to_transaction + + 367
  0.030.000.000.036265/42695ActiveRecord::ConnectionHandling#connection372 +
  0.030.010.000.036265/10530ActiveRecord::Transactions#remember_transaction_record_state374 +
  0.030.010.000.026265/6265ActiveRecord::Transactions#has_transactional_callbacks?368 +
  0.010.000.000.006265/6265ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction_state372 +
  0.000.000.000.006265/166914ActiveRecord::Transactions#sync_with_transaction_state371 +
  0.000.000.000.006265/6265ActiveRecord::Transactions#set_transaction_state372 +
  0.000.000.000.006265/635445Kernel#class372 +
  0.110.010.000.1021147/21147ActiveSupport::Notifications::Instrumenter#start35
1.12%0.12%0.110.010.000.1021147 + + ActiveSupport::Notifications::Fanout#start + + 43
  0.090.010.000.0827060/27060ActiveSupport::Notifications::Fanout::Subscribers::Evented#start44 +
  0.010.010.000.0021147/21156ActiveSupport::Notifications::Fanout#listeners_for44 +
  0.110.020.000.0930988/30988ActiveRecord::ConnectionAdapters::Quoting#type_cast31
1.10%0.22%0.110.020.000.0930988 + + ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting#_type_cast + + 111
  0.080.040.000.0430988/30988ActiveRecord::ConnectionAdapters::Quoting#_type_cast125 +
  0.010.010.000.00154940/887726Module#===112 +
  0.110.010.000.104265/4265Arel::Visitors::Reduce#visit15
1.09%0.09%0.110.010.000.104265 + + Arel::Visitors::ToSql#visit_Arel_Nodes_InsertStatement + + 124
  0.070.000.000.074265/48534Arel::Visitors::ToSql#maybe_visit134 +
  0.010.000.000.014265/123860Arel::Visitors::Reduce#visit126 +
  0.010.000.000.008530/132392Arel::Collectors::Composite#<<125 +
  0.010.000.000.0012510/28982Arel::Visitors::ToSql#quote_column_name129 +
  0.000.000.000.004265/5676Array#join129 +
  0.000.000.000.0012510/52446#<Class:0x000000014ad53068>#name129 +
  0.000.000.000.001/235994ActiveRecord::StatementCache::BindMap#initialize77
  0.000.000.000.0013851/235994ActiveModel::Attribute#changed_in_place?63
  0.010.000.000.0015916/235994ActiveModel::Attribute#changed_from_assignment?156
  0.020.010.000.0048924/235994ActiveModel::Attribute#value_for_database55
  0.080.030.000.05157302/235994ActiveModel::AttributeSet#fetch_value48
1.09%0.54%0.110.050.000.05235994 + + ActiveModel::Attribute#value + + 40
  0.040.010.000.0322794/22794ActiveModel::Attribute::FromUser#type_cast42 +
  0.010.000.000.0117110/33413ActiveModel::Attribute::FromDatabase#type_cast42 +
  0.000.000.000.0022137/22137ActiveRecord::Relation::QueryAttribute#type_cast42 +
  0.000.000.000.008852/8852ActiveModel::Attribute::WithCastValue#type_cast42 +
  0.010.000.000.0111/650ActiveSupport::Dependencies::Loadable#load285
  0.240.000.000.24639/650ActiveSupport::Dependencies::Loadable#require291
1.09%0.01%0.110.000.000.11650 + + *ActiveSupport::Dependencies::Loadable#load_dependency + + 251
  0.230.000.000.23613/2497Kernel#require291 +
  0.010.000.000.0126/31ActiveSupport::Dependencies#new_constants_in255 +
  0.010.000.000.0111/31Kernel#load285 +
  0.000.000.000.00650/655ActiveSupport::Dependencies#load?252 +
  0.000.000.000.00650/650ActiveSupport::Dependencies::WatchStack#watching?252 +
  0.000.000.000.00676/738<Module::ActiveSupport::Dependencies>#constant_watch_stack252 +
  0.000.000.000.002/632Exception#backtrace261 +
  0.000.000.000.0026/23996Array#flatten253 +
  0.000.000.000.002/2ActiveSupport::Dependencies::Blamable#blame_file!260 +
  0.000.000.000.002/619Kernel#raise261 +
  0.000.000.000.002/4Exception#respond_to?260 +
  0.000.000.000.002/887726Module#===291 +
  0.150.000.000.154904/4904I18n::Base#translate222
1.09%0.02%0.110.000.000.114904 + + *I18n::Base#translate_key + + 361
  0.150.000.000.154904/52834Kernel#catch362 +
  0.000.000.000.002452/2452I18n::Base#handle_exception367 +
  0.000.000.000.004904/448872Kernel#is_a?366 +
  0.010.000.000.017896/40153ActiveModel::AttributeMutationTracker#changed_values20
  0.020.000.000.026425/40153ActiveModel::AttributeMutationTracker#any_changes?43
  0.080.020.000.0625832/40153ActiveModel::AttributeMutationTracker#changed_attribute_names15
1.08%0.26%0.110.030.000.0840153 + + ActiveModel::AttributeMutationTracker#changed? + + 46
  0.070.010.000.0640153/40153ActiveModel::Attribute#changed?244 +
  0.010.010.000.0040153/274702ActiveModel::AttributeSet#[]244 +
  0.000.000.000.0040153/399228String#to_s47 +
  0.150.010.000.134904/4904Kernel#catch
1.07%0.15%0.110.010.000.094904 + + *I18n::Backend::Base#translate + + 28
  0.070.000.000.061839/1839I18n::Backend::Base#default36 +
  0.040.010.000.024904/4904I18n::Backend::Simple::Implementation#lookup33 +
  0.010.000.000.012452/2452I18n::Backend::Base#interpolate62 +
  0.010.010.000.002452/4291<Module::I18n::Utils>#except57 +
  0.000.000.000.002452/2452I18n::MissingTranslation::Base#initialize45 +
  0.000.000.000.003065/3065I18n::Backend::Base#resolve_entry38 +
  0.000.000.000.0012260/448872Kernel#is_a?29 +
  0.000.000.000.009195/134333Hash#key?35 +
  0.000.000.000.001226/1226I18n::Backend::Base#pluralize50 +
  0.000.000.000.004904/4909Symbol#empty?29 +
  0.000.000.000.002452/4926Kernel#throw45 +
  0.000.000.000.002452/2452I18n::Backend::Base#subtrees?43 +
  0.000.000.000.002452/53034String#initialize_copy49 +
  0.110.010.000.107284/7284ActiveRecord::AttributeMethods::Dirty#changed_attribute_names_to_save114
1.07%0.08%0.110.010.000.107284 + + ActiveModel::AttributeMutationTracker#changed_attribute_names + + 14
  0.080.020.000.0625832/40153ActiveModel::AttributeMutationTracker#changed?15 +
  0.020.000.000.027284/12935ActiveModel::AttributeMutationTracker#attr_names15 +
  0.000.000.000.0012/500601ActiveRecord::Relation#delete_all388
  0.000.000.000.007229/500601ActiveRecord::QueryMethods#readonly_value70
  0.000.000.000.008857/500601ActiveRecord::QueryMethods#group_values70
  0.000.000.000.008861/500601ActiveRecord::QueryMethods#offset_value70
  0.000.000.000.008852/500601ActiveRecord::QueryMethods#skip_query_cache_value70
  0.000.000.000.0012103/500601ActiveRecord::QueryMethods#select_values70
  0.000.000.000.0012120/500601ActiveRecord::QueryMethods#references_values70
  0.000.000.000.0018222/500601ActiveRecord::QueryMethods#create_with_value70
  0.000.000.000.0016472/500601ActiveRecord::QueryMethods#eager_load_values70
  0.000.000.000.0014324/500601ActiveRecord::QueryMethods#reordering_value70
  0.000.000.000.0015744/500601ActiveRecord::QueryMethods#distinct_value70
  0.000.000.000.0023185/500601ActiveRecord::QueryMethods#left_outer_joins_values70
  0.000.000.000.0019336/500601ActiveRecord::QueryMethods#limit_value70
  0.000.000.000.0023181/500601ActiveRecord::QueryMethods#order_values70
  0.000.000.000.0023181/500601ActiveRecord::QueryMethods#lock_value70
  0.000.000.000.0021553/500601ActiveRecord::QueryMethods#preload_values70
  0.010.010.000.0023403/500601ActiveRecord::QueryMethods#extending_values70
  0.010.010.000.0028648/500601ActiveRecord::QueryMethods#extensions70
  0.010.010.000.0030162/500601ActiveRecord::QueryMethods#joins_values70
  0.010.010.000.0037505/500601ActiveRecord::QueryMethods#having_clause70
  0.010.010.000.0038025/500601ActiveRecord::QueryMethods#includes_values70
  0.010.010.000.0040751/500601ActiveRecord::QueryMethods#from_clause70
  0.010.010.000.0068875/500601ActiveRecord::QueryMethods#where_clause70
1.05%1.05%0.100.100.000.00500601 + + ActiveRecord::QueryMethods#get_value + + 904
  0.020.000.000.021000/5632Trip::GeneratedAssociationMethods#bus=116
  0.020.000.000.021000/5632Trip::GeneratedAssociationMethods#to=116
  0.020.000.000.021000/5632Trip::GeneratedAssociationMethods#from=116
  0.050.000.000.052632/5632Bus::HABTM_Services::GeneratedAssociationMethods#service=116
1.04%0.01%0.100.000.000.105632 + + ActiveRecord::Associations::SingularAssociation#writer + + 16
  0.100.010.000.105632/5632ActiveRecord::Associations::BelongsToAssociation#replace17 +
  0.100.010.000.105632/5632ActiveRecord::Associations::SingularAssociation#writer17
1.03%0.06%0.100.010.000.105632 + + ActiveRecord::Associations::BelongsToAssociation#replace + + 19
  0.050.000.000.055632/5632ActiveRecord::Associations::BelongsToAssociation#replace_keys29 +
  0.030.000.000.035632/5632ActiveRecord::Associations::Association#target=31 +
  0.010.000.000.015632/16722ActiveRecord::Associations::Association#set_inverse_instance23 +
  0.010.000.000.005632/5632ActiveRecord::Associations::BelongsToAssociation#update_counters_on_replace22 +
  0.000.000.000.005632/12493ActiveRecord::Associations::Association#raise_on_type_mismatch!21 +
  0.100.010.000.099100/9100ActiveRecord::PredicateBuilder#expand_from_hash112
1.02%0.07%0.100.010.000.099100 + + ActiveRecord::PredicateBuilder#build + + 50
  0.050.000.000.049100/9100ActiveRecord::PredicateBuilder::BasicObjectHandler#call55 +
  0.020.020.000.019100/9100ActiveRecord::PredicateBuilder#handler_for55 +
  0.020.000.000.029100/32333ActiveRecord::TableMetadata#type51 +
  0.000.000.000.009100/9100ActiveModel::Type::Value#force_equality?51 +
  0.000.000.000.009100/52446#<Class:0x000000014ad53068>#name51 +
  0.100.000.000.10616/616ActiveRecord::Associations::HasManyThroughAssociation#concat_records27
1.02%0.00%0.100.000.000.10616 + + ActiveRecord::Associations::HasManyAssociation#concat_records + + 116
  0.100.000.000.10616/616ActiveRecord::Associations::CollectionAssociation#concat_records117 +
  0.000.000.000.00616/616ActiveRecord::Associations::HasManyAssociation#update_counter_if_success117 +
  0.000.000.000.001/639Rails::Application#config_for234
  0.000.000.000.002/639Rails::Application::Configuration#database_configuration170
  0.000.000.000.002/639Kernel#with_warnings61
  0.000.000.000.001/639Rails::Application::DefaultMiddlewareStack#show_exceptions_app103
  0.000.000.000.001/639ActiveRecord::Relation#alias_tracker530
  0.000.000.000.001/639Rails::Application#default_middleware_stack575
  0.000.000.000.001/639ActiveRecord::QueryMethods#none!737
  0.000.000.000.001/639Rails::Application::DefaultMiddlewareStack#build_stack15
  0.000.000.000.001/639ActiveRecord::Core#init_with346
  0.000.000.000.001/639ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#execute_and_clear89
  0.000.000.000.001/639ActiveRecord::Associations::Association#association_scope90
  0.000.000.000.001/639ActiveRecord::Relation::QueryAttribute#nil?21
  0.000.000.000.001/639ActiveRecord::Associations::ClassMethods#has_and_belongs_to_many1824
  0.000.000.000.001/639ActiveSupport::Cache::Strategy::LocalCache#middleware90
  0.000.000.000.002/639ActiveSupport::LazyLoadHooks#with_execution_control75
  0.000.000.000.001/639ActiveRecord::Core::ClassMethods#table_metadata306
  0.000.000.000.001/639Rails::Application#routes_reloader341
  0.000.000.000.001/639ActiveRecord::ConnectionHandling::MergeAndResolveDefaultUrlConfig#resolve72
  0.000.000.000.001/639Sprockets::Railtie#build_environment154
  0.000.000.000.001/639ActiveRecord::Reflection::BelongsToReflection#association_class718
  0.000.000.000.001/639Rails::Application#initializers367
  0.000.000.000.001/639<Module::ActiveSupport::Cache>#retrieve_store_class107
  0.000.000.000.001/639ActiveRecord::Associations::ClassMethods#belongs_to1654
  0.000.000.000.001/639ActionDispatch::FileHandler#initialize20
  0.000.000.000.001/639ActiveRecord::ConnectionAdapters::DatabaseStatements#reset_transaction282
  0.000.000.000.001/639ActiveRecord::Associations::ClassMethods#has_many1369
  0.000.000.000.001/639ActiveRecord::Associations::JoinDependency#initialize72
  0.000.000.000.001/639<Class::TZInfo::DataSource>#create_default_data_source172
  0.000.000.000.002/639<Class::Listen::Adapter::Darwin>#usable?25
  0.000.000.000.002/639I18n::Config#backend21
  0.000.000.000.001/639<Class::ActiveRecord::Base>#connection_handler141
  0.000.000.000.001/639ActionDispatch::Routing::RouteSet#eval_block428
  0.000.000.000.001/639ActiveRecord::Core::ClassMethods#predicate_builder280
  0.000.000.000.001/639ActiveRecord::QueryMethods#build_joins992
  0.000.000.000.001/639Module#const_get
  0.000.000.000.007/639Kernel#require_relative
  0.000.000.000.004/639<Module::ActionView::Template::Handlers>#extended13
  0.000.000.000.0012/639ActionDispatch::MiddlewareStack#initialize20
  0.000.000.000.001/639ActiveRecord::Reflection::HasManyReflection#association_class678
  0.000.000.000.007/639BasicObject#instance_eval
  0.010.000.000.012/639<Module::ActionCable>#server46
  0.010.000.000.0114/639Module#class_eval
  0.010.000.000.013/639ActiveRecord::Delegation::DelegateCache#initialize_relation_delegate_cache13
  0.010.000.000.011/639ActiveRecord::ConnectionAdapters::ConnectionSpecification::Resolver#spec191
  0.020.000.000.0223/639BasicObject#instance_exec
  0.050.000.000.051/639Rake::Task#execute_without_timestamps6
  0.120.000.000.11524/639Kernel#require_without_bootsnap
1.01%0.00%0.100.000.000.10639 + + *ActiveSupport::Dependencies::Loadable#require + + 289
  0.240.000.000.24639/650ActiveSupport::Dependencies::Loadable#load_dependency291 +
* indicates recursively called methods
+ +

Thread 620, Fiber: 4800

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%9.700.009.700.001 + + <Module::Concurrent>#mutex_owned_per_thread? + + 14
  0.000.000.000.001/1Thread::Mutex#owned?14 +
* indicates recursively called methods
+ +

Thread 10620, Fiber: 10600

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%9.420.000.009.421 + + <Module::Listen::Internals::ThreadPool>#add + + 6
  9.420.000.009.421/1Listen::Adapter::Polling#_run78 +
  0.000.000.000.001/1Listen::Adapter::Base#_timed76 +
  0.000.000.000.001/1Hash#values75 +
  9.420.000.009.421/1<Module::Listen::Internals::ThreadPool>#add78
100.00%0.00%9.420.000.009.421 + + Listen::Adapter::Polling#_run + + 20
  9.420.000.009.421/1Kernel#loop21 +
  9.420.000.009.421/1Listen::Adapter::Polling#_run21
100.00%0.00%9.420.000.009.421 + + Kernel#loop + +
  9.420.009.410.0010/10Kernel#sleep27 +
  0.000.000.000.0010/10Listen::Adapter::Polling#_process_event42 +
  0.000.000.000.0020/33Time#to_f22 +
  0.000.000.000.0020/22<Class::Time>#now22 +
  0.000.000.000.0010/10Listen::Options#method_missing25 +
  0.000.000.000.0010/10Float#>27 +
  9.420.009.410.0010/10Kernel#loop
99.94%0.01%9.420.009.410.0010 + + Kernel#sleep + +
* indicates recursively called methods
+ +

Thread 10660, Fiber: 10640

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%9.420.000.009.421 + + <Module::Listen::Internals::ThreadPool>#add + + 6
  9.420.000.009.421/1Listen::Event::Loop#_wait_for_changes42 +
  9.420.000.009.421/1<Module::Listen::Internals::ThreadPool>#add42
100.00%0.00%9.420.000.009.421 + + Listen::Event::Loop#_wait_for_changes + + 80
  9.420.000.009.421/1Listen::Event::Processor#loop_for84 +
  0.000.000.000.001/1Listen::Event::Loop#_wait_until_resumed83 +
  0.000.000.000.001/1Listen::Event::Processor#initialize81 +
  9.420.000.009.421/1Listen::Event::Loop#_wait_for_changes84
100.00%0.00%9.420.000.009.421 + + Listen::Event::Processor#loop_for + + 12
  9.420.000.009.421/1Kernel#loop15 +
  9.420.000.009.421/1Listen::Event::Processor#loop_for15
100.00%0.00%9.420.000.009.421 + + Kernel#loop + +
  9.420.000.009.421/1Listen::Event::Processor#_wait_until_events16 +
  9.420.000.009.421/1Kernel#loop
100.00%0.00%9.420.000.009.421 + + Listen::Event::Processor#_wait_until_events + + 82
  9.420.000.009.421/1Listen::Event::Processor#_sleep84 +
  0.000.000.000.001/1Listen::Event::Queue#empty?84 +
  9.420.000.009.421/1Listen::Event::Processor#_wait_until_events84
100.00%0.00%9.420.000.009.421 + + Listen::Event::Processor#_sleep + + 57
  9.420.000.009.421/1Listen::Event::Config#sleep59 +
  0.000.000.000.001/1Listen::Event::Processor#_check_stopped58 +
  9.420.000.009.421/1Listen::Event::Processor#_sleep59
100.00%0.00%9.420.000.009.421 + + Listen::Event::Config#sleep + + 18
  9.420.009.420.001/1<Module::Kernel>#sleep19 +
  9.420.009.420.001/1Listen::Event::Config#sleep19
100.00%0.00%9.420.009.420.001 + + <Module::Kernel>#sleep + +
* indicates recursively called methods
+ +

Thread 10700, Fiber: 10680

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%9.420.000.009.421 + + <Module::Timeout>#create_timeout_thread + + 99
  9.400.009.400.003/3Thread::Queue#pop102 +
  0.020.000.000.021/4Thread::Mutex#synchronize108 +
  0.000.000.000.003/3Timeout::Request#done?103 +
  0.000.000.000.001/1Timeout::Request#expired?115 +
  0.000.000.000.004/6Thread::Queue#empty?100 +
  9.400.009.400.003/3<Module::Timeout>#create_timeout_thread102
99.75%0.00%9.400.009.400.003 + + Thread::Queue#pop + +
* indicates recursively called methods
+ +

Thread 11060, Fiber: 11040

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%9.400.000.009.401 + + <Module::Listen::Internals::ThreadPool>#add + + 6
  9.340.000.009.341/1Listen::Adapter::Polling#_run78 +
  0.060.000.000.069/9Listen::Adapter::Base#_timed76 +
  0.000.000.000.001/1Hash#values75 +
  9.340.000.009.341/1<Module::Listen::Internals::ThreadPool>#add78
99.34%0.00%9.340.000.009.341 + + Listen::Adapter::Polling#_run + + 20
  9.340.000.009.341/1Kernel#loop21 +
  9.340.000.009.341/1Listen::Adapter::Polling#_run21
99.34%0.00%9.340.000.009.341 + + Kernel#loop + +
  9.180.009.180.0010/10Kernel#sleep27 +
  0.150.000.000.1582/82Listen::Adapter::Polling#_process_event42 +
  0.000.000.000.0092/110<Class::Time>#now22 +
  0.000.000.000.0082/82Listen::Options#method_missing25 +
  0.000.000.000.0092/406Time#to_f22 +
  0.000.000.000.0082/82Float#>27 +
  9.180.009.180.0010/10Kernel#loop
97.69%0.02%9.180.009.180.0010 + + Kernel#sleep + +
  0.150.000.000.1582/82Kernel#loop
1.65%0.00%0.150.000.000.1582 + + Listen::Adapter::Polling#_process_event + + 32
  0.150.000.000.1582/82Listen::Adapter::Base#_queue_change33 +
  0.150.000.000.1582/82Listen::Adapter::Polling#_process_event33
1.64%0.00%0.150.000.000.1582 + + Listen::Adapter::Base#_queue_change + + 113
  0.150.000.000.1582/441Listen::Change#invalidate114 +
  0.000.000.000.0082/782Pathname#hash114 +
  0.140.000.000.14359/441<Class::Listen::Directory>#_change73
  0.150.000.000.1582/441Listen::Adapter::Base#_queue_change114
1.64%0.01%0.150.000.000.15441 + + *Listen::Change#invalidate + + 31
  0.240.000.000.23173/173<Class::Listen::Directory>#scan55 +
  0.040.000.000.04268/268<Class::Listen::File>#change57 +
  0.000.000.000.00441/1241Pathname#+42 +
  0.000.000.000.00441/441Listen::Change::Config#silenced?37 +
  0.000.000.000.00441/614<Class::Listen::Logger>#debug44 +
  0.000.000.000.00441/6182Pathname#initialize32 +
  0.240.000.000.23173/173Listen::Change#invalidate55
1.63%0.02%0.150.000.000.15173 + + *<Class::Listen::Directory>#scan + + 6
  0.130.000.000.13350/359<Class::Listen::Directory>#_change27 +
  0.040.000.000.04350/350Pathname#relative_path_from26 +
  0.030.000.000.03173/173<Class::Listen::Directory>#_children15 +
  0.010.000.010.00350/646<Class::File>#lstat25 +
  0.010.000.000.01173/173<Class::Listen::Directory>#_async_changes38 +
  0.000.000.000.00523/1241Pathname#+14 +
  0.000.000.000.00350/350File::Stat#directory?25 +
  0.000.000.000.00173/182Set#initialize15 +
  0.000.000.000.00173/173Listen::Record#dir_entries9 +
  0.000.000.000.00173/614<Class::Listen::Logger>#debug17 +
  0.000.000.000.00700/3627Pathname#to_s25 +
  0.000.000.000.00346/6182Pathname#initialize8 +
  0.000.000.000.00173/191Listen::Record#add_dir11 +
  0.000.000.000.00341/341Pathname#eql?244 +
  0.000.000.000.00350/782Pathname#hash244 +
  0.010.000.000.019/359<Class::Listen::Directory>#_async_changes62
  0.130.000.000.13350/359<Class::Listen::Directory>#scan27
1.08%0.00%0.100.000.000.10359 + + *<Class::Listen::Directory>#_change + + 66
  0.140.000.000.14359/441Listen::Change#invalidate73 +
  0.000.000.000.00268/536Hash#initialize_copy71 +
  0.000.000.000.00268/268Hash#delete72 +
* indicates recursively called methods
+ +

Thread 11100, Fiber: 11080

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%9.400.000.009.401 + + <Module::Listen::Internals::ThreadPool>#add + + 6
  9.400.000.009.401/1Listen::Event::Loop#_wait_for_changes42 +
  9.400.000.009.401/1<Module::Listen::Internals::ThreadPool>#add42
100.00%0.00%9.400.000.009.401 + + Listen::Event::Loop#_wait_for_changes + + 80
  9.400.000.009.401/1Listen::Event::Processor#loop_for84 +
  0.000.000.000.001/1Listen::Event::Loop#_wait_until_resumed83 +
  0.000.000.000.001/1Listen::Event::Processor#initialize81 +
  9.400.000.009.401/1Listen::Event::Loop#_wait_for_changes84
100.00%0.00%9.400.000.009.401 + + Listen::Event::Processor#loop_for + + 12
  9.400.000.009.401/1Kernel#loop15 +
  9.400.000.009.401/1Listen::Event::Processor#loop_for15
100.00%0.00%9.400.000.009.401 + + Kernel#loop + +
  9.400.000.009.401/1Listen::Event::Processor#_wait_until_events16 +
  9.400.000.009.401/1Kernel#loop
100.00%0.00%9.400.000.009.401 + + Listen::Event::Processor#_wait_until_events + + 82
  9.400.000.009.401/1Listen::Event::Processor#_sleep84 +
  0.000.000.000.001/1Listen::Event::Queue#empty?84 +
  9.400.000.009.401/1Listen::Event::Processor#_wait_until_events84
100.00%0.00%9.400.000.009.401 + + Listen::Event::Processor#_sleep + + 57
  9.400.000.009.401/1Listen::Event::Config#sleep59 +
  0.000.000.000.001/1Listen::Event::Processor#_check_stopped58 +
  9.400.000.009.401/1Listen::Event::Processor#_sleep59
100.00%0.00%9.400.000.009.401 + + Listen::Event::Config#sleep + + 18
  9.400.009.400.001/1<Module::Kernel>#sleep19 +
  9.400.009.400.001/1Listen::Event::Config#sleep19
100.00%0.00%9.400.009.400.001 + + <Module::Kernel>#sleep + +
* indicates recursively called methods
+ +

Thread 11320, Fiber: 11300

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%9.340.000.009.341 + + ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper#run + + 300
  9.340.000.009.341/1Kernel#loop300 +
  9.340.000.009.341/1ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper#run300
100.00%0.00%9.340.000.009.341 + + Kernel#loop + +
  9.340.009.340.001/1Kernel#sleep301 +
  9.340.009.340.001/1Kernel#loop
100.00%0.00%9.340.009.340.001 + + Kernel#sleep + +
* indicates recursively called methods
+ +
+ + + + diff --git a/PROFILE.txt b/PROFILE.txt new file mode 100644 index 00000000..072e56b5 --- /dev/null +++ b/PROFILE.txt @@ -0,0 +1,1985 @@ +Total allocated: 434.78 MB (5551850 objects) +Total retained: 16.29 MB (92199 objects) + +allocated memory by gem +----------------------------------- + 264.84 MB activerecord-5.2.8.1 + 64.41 MB activesupport-5.2.8.1 + 24.14 MB activemodel-5.2.8.1 + 17.11 MB arel-9.0.0 + 16.23 MB bootsnap-1.17.0 + 13.29 MB rubygems + 5.60 MB i18n-1.14.1 + 5.21 MB listen-3.1.5 + 4.44 MB pathname + 2.34 MB logger + 2.28 MB rails-optimization-task3/lib + 1.61 MB bundler-2.0.2 + 1.44 MB json + 1.19 MB sprockets-4.2.1 + 1.05 MB timeout-0.4.1 + 986.00 kB msgpack-1.7.2 + 985.30 kB tzinfo-1.2.11 + 833.79 kB set + 707.95 kB thor-1.3.0 + 645.29 kB uri + 591.90 kB railties-5.2.8.1 + 588.17 kB rake-13.1.0 + 517.36 kB actionpack-5.2.8.1 + 397.38 kB pg-1.5.4 + 348.87 kB delegate + 343.77 kB concurrent-ruby-1.2.2 + 337.90 kB arm64-darwin22 + 331.18 kB nokogiri-1.15.4 + 321.89 kB marcel-1.0.2 + 180.24 kB actionview-5.2.8.1 + 133.39 kB forwardable + 129.55 kB loofah-2.21.4 + 126.92 kB optparse + 108.19 kB rack-2.2.8 + 106.26 kB tsort + 83.98 kB fileutils + 73.12 kB 2.7.0 + 70.14 kB psych + 64.16 kB erb + 55.78 kB other + 55.50 kB openssl + 35.29 kB actioncable-5.2.8.1 + 33.95 kB rails-optimization-task3/app + 33.26 kB minitest-5.20.0 + 32.64 kB sprockets-rails-3.4.2 + 31.72 kB rails-html-sanitizer-1.6.0 + 28.78 kB activestorage-5.2.8.1 + 24.57 kB rails-optimization-task3/bin + 23.21 kB racc-1.7.3 + 19.19 kB rack-test-2.1.0 + +allocated memory by file +----------------------------------- + 140.28 MB activerecord-5.2.8.1/lib/active_record/log_subscriber.rb + 21.34 MB activesupport-5.2.8.1/lib/active_support/callbacks.rb + 14.36 MB bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb + 11.80 MB activerecord-5.2.8.1/lib/active_record/transactions.rb + 9.43 MB activerecord-5.2.8.1/lib/active_record/relation.rb + 8.49 MB activerecord-5.2.8.1/lib/active_record/relation/query_methods.rb + 8.12 MB activesupport-5.2.8.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb + 7.98 MB activerecord-5.2.8.1/lib/active_record/reflection.rb + 7.84 MB activerecord-5.2.8.1/lib/active_record/relation/where_clause.rb + 7.34 MB ruby/lib/rubygems.rb + 6.80 MB activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb + 6.13 MB activemodel-5.2.8.1/lib/active_model/attribute.rb + 5.92 MB activemodel-5.2.8.1/lib/active_model/errors.rb + 5.82 MB activerecord-5.2.8.1/lib/active_record/relation/predicate_builder.rb + 5.37 MB activerecord-5.2.8.1/lib/active_record/autosave_association.rb + 4.45 MB activesupport-5.2.8.1/lib/active_support/logger.rb + 4.44 MB ruby/lib/pathname.rb + 4.38 MB activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract_adapter.rb + 4.32 MB activerecord-5.2.8.1/lib/active_record/relation/delegation.rb + 4.27 MB activesupport-5.2.8.1/lib/active_support/tagged_logging.rb + 4.20 MB listen-3.1.5/lib/listen/internals/thread_pool.rb + 4.01 MB activerecord-5.2.8.1/lib/active_record/relation/spawn_methods.rb + 3.65 MB activerecord-5.2.8.1/lib/active_record/persistence.rb + 3.47 MB activerecord-5.2.8.1/lib/active_record/querying.rb + 3.45 MB activesupport-5.2.8.1/lib/active_support/core_ext/numeric/conversions.rb + 3.20 MB activemodel-5.2.8.1/lib/active_model/attribute_set.rb + 3.15 MB arel-9.0.0/lib/arel/visitors/to_sql.rb + 3.14 MB activerecord-5.2.8.1/lib/active_record/core.rb + 3.08 MB activesupport-5.2.8.1/lib/active_support/log_subscriber.rb + 3.08 MB i18n-1.14.1/lib/i18n/backend/base.rb + 2.96 MB activemodel-5.2.8.1/lib/active_model/attribute_set/builder.rb + 2.93 MB activesupport-5.2.8.1/lib/active_support/subscriber.rb + 2.82 MB activesupport-5.2.8.1/lib/active_support/notifications/instrumenter.rb + 2.76 MB ruby/lib/rubygems/core_ext/kernel_require.rb + 2.73 MB activerecord-5.2.8.1/lib/active_record/associations/collection_association.rb + 2.65 MB activerecord-5.2.8.1/lib/active_record/result.rb + 2.50 MB activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql_adapter.rb + 2.39 MB activesupport-5.2.8.1/lib/active_support/core_ext/hash/except.rb + 2.33 MB ruby/lib/logger.rb + 2.33 MB activerecord-5.2.8.1/lib/active_record/relation/merger.rb + 2.28 MB rails-optimization-task3/lib/tasks/utils.rake + 2.15 MB activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb + 2.13 MB arel-9.0.0/lib/arel/nodes/select_core.rb + 2.06 MB activesupport-5.2.8.1/lib/active_support/core_ext/object/deep_dup.rb + 2.02 MB activerecord-5.2.8.1/lib/active_record/attribute_methods.rb + 2.01 MB activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract/database_statements.rb + 1.93 MB activerecord-5.2.8.1/lib/active_record/associations.rb + 1.91 MB arel-9.0.0/lib/arel/select_manager.rb + 1.88 MB arel-9.0.0/lib/arel/collectors/plain_string.rb + 1.80 MB activerecord-5.2.8.1/lib/active_record/table_metadata.rb + +allocated memory by location +----------------------------------- + 110.71 MB activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:103 + 10.15 MB activesupport-5.2.8.1/lib/active_support/callbacks.rb:404 + 10.04 MB activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:37 + 9.72 MB activerecord-5.2.8.1/lib/active_record/transactions.rb:385 + 8.00 MB bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 7.33 MB ruby/lib/rubygems.rb:786 + 6.33 MB bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:64 + 4.45 MB activesupport-5.2.8.1/lib/active_support/logger.rb:104 + 4.28 MB activerecord-5.2.8.1/lib/active_record/relation/delegation.rb:132 + 4.27 MB activesupport-5.2.8.1/lib/active_support/tagged_logging.rb:23 + 4.22 MB activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:35 + 4.20 MB listen-3.1.5/lib/listen/internals/thread_pool.rb:6 + 4.15 MB activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:108 + 4.06 MB activesupport-5.2.8.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21 + 4.06 MB activesupport-5.2.8.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25 + 3.45 MB activesupport-5.2.8.1/lib/active_support/core_ext/numeric/conversions.rb:107 + 3.37 MB activerecord-5.2.8.1/lib/active_record/autosave_association.rb:159 + 3.24 MB activesupport-5.2.8.1/lib/active_support/callbacks.rb:198 + 3.14 MB activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 3.08 MB activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:43 + 3.08 MB activesupport-5.2.8.1/lib/active_support/log_subscriber.rb:109 + 2.85 MB activerecord-5.2.8.1/lib/active_record/reflection.rb:802 + 2.54 MB ruby/lib/rubygems/core_ext/kernel_require.rb:86 + 2.52 MB activerecord-5.2.8.1/lib/active_record/relation.rb:36 + 2.45 MB activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:89 + 2.44 MB activerecord-5.2.8.1/lib/active_record/relation/query_methods.rb:874 + 2.36 MB activemodel-5.2.8.1/lib/active_model/attribute.rb:9 + 2.32 MB ruby/lib/logger.rb:475 + 2.27 MB activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract_adapter.rb:570 + 2.27 MB activesupport-5.2.8.1/lib/active_support/notifications/instrumenter.rb:60 + 2.27 MB activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:82 + 2.16 MB activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:107 + 2.14 MB activerecord-5.2.8.1/lib/active_record/relation/spawn_methods.rb:11 + 2.11 MB activesupport-5.2.8.1/lib/active_support/callbacks.rb:425 + 2.11 MB activesupport-5.2.8.1/lib/active_support/callbacks.rb:426 + 2.11 MB activemodel-5.2.8.1/lib/active_model/attribute_set.rb:37 + 2.11 MB activerecord-5.2.8.1/lib/active_record/relation.rb:25 + 2.03 MB activemodel-5.2.8.1/lib/active_model/attribute.rb:13 + 2.03 MB activerecord-5.2.8.1/lib/active_record/relation/predicate_builder.rb:60 + 2.01 MB activesupport-5.2.8.1/lib/active_support/callbacks.rb:103 + 1.88 MB arel-9.0.0/lib/arel/collectors/plain_string.rb:6 + 1.77 MB activerecord-5.2.8.1/lib/active_record/transactions.rb:404 + 1.77 MB activesupport-5.2.8.1/lib/active_support/core_ext/hash/reverse_merge.rb:15 + 1.73 MB activerecord-5.2.8.1/lib/active_record/associations/collection_association.rb:481 + 1.69 MB activerecord-5.2.8.1/lib/active_record/relation.rb:508 + 1.67 MB ruby/lib/pathname.rb:42 + 1.62 MB activesupport-5.2.8.1/lib/active_support/subscriber.rb:100 + 1.57 MB arel-9.0.0/lib/arel/visitors/to_sql.rb:820 + 1.55 MB activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract/query_cache.rb:106 + 1.55 MB activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:75 + +allocated memory by class +----------------------------------- + 97.38 MB Array + 85.70 MB String + 74.40 MB Thread::Backtrace::Location + 61.96 MB Hash + 30.74 MB Thread::Backtrace + 8.18 MB File + 7.94 MB Class + 7.22 MB Proc + 6.30 MB Thread + 5.82 MB MatchData + 4.68 MB ActiveRecord::Relation + 3.71 MB ActiveModel::Attribute::FromDatabase + 3.10 MB Enumerator + 2.79 MB Time + 2.44 MB ActiveRecord::Relation::WhereClause + 2.43 MB Binding + 2.07 MB ActiveRecord::Relation::QueryAttribute + 2.03 MB ActiveModel::Attribute::FromUser + 1.30 MB ActiveSupport::Notifications::Event + 1.29 MB Arel::Attributes::Attribute + 1.28 MB Arel::Nodes::BindParam + 1.01 MB RubyVM::InstructionSequence + 972.30 kB ActiveRecord::Result + 921.14 kB Arel::Nodes::SelectCore + 867.60 kB Service + 863.92 kB Regexp + 779.42 kB Arel::Nodes::SelectStatement + 720.99 kB ActiveModel::LazyAttributeHash + 708.16 kB ActiveModel::Attribute::WithCastValue + 684.60 kB ActiveModel::AttributeSet + 668.39 kB Module + 656.02 kB ActiveRecord::AssociationRelation + 624.00 kB ActiveRecord::Relation::WhereClauseFactory + 606.92 kB ActiveSupport::Callbacks::Filters::Environment + 593.14 kB PG::Result + 585.74 kB ActiveRecord::Associations::BelongsToAssociation + 572.96 kB ActiveRecord::Relation::Merger + 524.88 kB Arel::Collectors::Bind + 524.88 kB Arel::Collectors::Composite + 524.88 kB Arel::Collectors::SQLString + 502.09 kB ActiveSupport::HashWithIndifferentAccess + 466.36 kB Arel::Nodes::Equality + 463.23 kB HABTM_Services + 434.08 kB Set + 396.64 kB ActiveModel::AttributeMutationTracker + 354.28 kB Arel::Nodes::JoinSource + 354.28 kB Arel::Nodes::SqlLiteral + 354.28 kB Arel::SelectManager + 354.12 kB Arel::Nodes::And + 354.08 kB Arel::Nodes::Limit + +allocated objects by gem +----------------------------------- + 3500864 activerecord-5.2.8.1 + 739946 activesupport-5.2.8.1 + 379905 activemodel-5.2.8.1 + 321248 arel-9.0.0 + 168461 bootsnap-1.17.0 + 83357 rubygems + 82149 pathname + 52778 i18n-1.14.1 + 27108 logger + 22252 json + 21202 bundler-2.0.2 + 18830 tzinfo-1.2.11 + 17471 rails-optimization-task3/lib + 15297 listen-3.1.5 + 11587 msgpack-1.7.2 + 11434 set + 10409 sprockets-4.2.1 + 8911 uri + 6325 rake-13.1.0 + 5426 marcel-1.0.2 + 5155 railties-5.2.8.1 + 5125 actionpack-5.2.8.1 + 4563 delegate + 3852 pg-1.5.4 + 3734 thor-1.3.0 + 3663 arm64-darwin22 + 3140 nokogiri-1.15.4 + 2405 loofah-2.21.4 + 2327 concurrent-ruby-1.2.2 + 1511 optparse + 1403 tsort + 1195 forwardable + 953 2.7.0 + 917 rack-2.2.8 + 849 fileutils + 847 actionview-5.2.8.1 + 594 psych + 421 openssl + 388 other + 351 sprockets-rails-3.4.2 + 327 erb + 327 racc-1.7.3 + 259 minitest-5.20.0 + 205 actioncable-5.2.8.1 + 205 cgi + 202 ipaddr + 194 rails-html-sanitizer-1.6.0 + 177 date-3.3.4 + 172 ostruct + 154 activestorage-5.2.8.1 + +allocated objects by file +----------------------------------- + 1500689 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb + 263413 activesupport-5.2.8.1/lib/active_support/callbacks.rb + 194190 activerecord-5.2.8.1/lib/active_record/reflection.rb + 177031 activerecord-5.2.8.1/lib/active_record/relation/where_clause.rb + 155932 activerecord-5.2.8.1/lib/active_record/relation/query_methods.rb + 150825 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb + 136848 activerecord-5.2.8.1/lib/active_record/relation.rb + 114807 activerecord-5.2.8.1/lib/active_record/transactions.rb + 114242 activerecord-5.2.8.1/lib/active_record/relation/predicate_builder.rb + 108859 activemodel-5.2.8.1/lib/active_model/errors.rb + 101621 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb + 89285 activemodel-5.2.8.1/lib/active_model/attribute.rb + 86163 activesupport-5.2.8.1/lib/active_support/core_ext/numeric/conversions.rb + 82149 ruby/lib/pathname.rb + 66100 activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract_adapter.rb + 58788 activerecord-5.2.8.1/lib/active_record/relation/delegation.rb + 58089 activerecord-5.2.8.1/lib/active_record/relation/merger.rb + 54180 activesupport-5.2.8.1/lib/active_support/subscriber.rb + 53178 arel-9.0.0/lib/arel/nodes/select_core.rb + 50815 activerecord-5.2.8.1/lib/active_record/associations/collection_association.rb + 50479 activerecord-5.2.8.1/lib/active_record/persistence.rb + 50245 activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract/database_statements.rb + 48989 arel-9.0.0/lib/arel/visitors/to_sql.rb + 44520 activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract/quoting.rb + 43504 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql_adapter.rb + 43100 activerecord-5.2.8.1/lib/active_record/relation/spawn_methods.rb + 42306 activesupport-5.2.8.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb + 42169 activerecord-5.2.8.1/lib/active_record/core.rb + 39665 activerecord-5.2.8.1/lib/active_record/result.rb + 39446 activemodel-5.2.8.1/lib/active_model/attribute_set.rb + 37705 activerecord-5.2.8.1/lib/active_record/querying.rb + 37048 arel-9.0.0/lib/arel/select_manager.rb + 36776 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb + 35487 activerecord-5.2.8.1/lib/active_record/associations/association.rb + 33729 activerecord-5.2.8.1/lib/active_record/autosave_association.rb + 32821 ruby/lib/rubygems/core_ext/kernel_require.rb + 32357 arel-9.0.0/lib/arel/table.rb + 32228 activerecord-5.2.8.1/lib/active_record/attribute_methods.rb + 31980 activerecord-5.2.8.1/lib/active_record/relation/where_clause_factory.rb + 30977 activesupport-5.2.8.1/lib/active_support/hash_with_indifferent_access.rb + 30604 arel-9.0.0/lib/arel/visitors/postgresql.rb + 28383 activemodel-5.2.8.1/lib/active_model/attribute_set/builder.rb + 27970 activerecord-5.2.8.1/lib/active_record/scoping.rb + 27083 activesupport-5.2.8.1/lib/active_support/notifications/instrumenter.rb + 27078 ruby/lib/logger.rb + 27073 activesupport-5.2.8.1/lib/active_support/logger.rb + 27054 activesupport-5.2.8.1/lib/active_support/log_subscriber.rb + 27034 activesupport-5.2.8.1/lib/active_support/tagged_logging.rb + 26595 arel-9.0.0/lib/arel/nodes/select_statement.rb + 25984 activerecord-5.2.8.1/lib/active_record/timestamp.rb + +allocated objects by location +----------------------------------- + 1156624 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:103 + 149334 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 106468 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:37 + 96858 activerecord-5.2.8.1/lib/active_record/transactions.rb:385 + 86161 activesupport-5.2.8.1/lib/active_support/core_ext/numeric/conversions.rb:107 + 85004 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:35 + 78375 activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 71166 activerecord-5.2.8.1/lib/active_record/reflection.rb:802 + 58614 activerecord-5.2.8.1/lib/active_record/relation/delegation.rb:132 + 52866 activesupport-5.2.8.1/lib/active_support/callbacks.rb:404 + 52866 activesupport-5.2.8.1/lib/active_support/callbacks.rb:425 + 52866 activesupport-5.2.8.1/lib/active_support/callbacks.rb:426 + 48046 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:89 + 40590 activesupport-5.2.8.1/lib/active_support/subscriber.rb:100 + 40550 activesupport-5.2.8.1/lib/active_support/callbacks.rb:198 + 36848 activerecord-5.2.8.1/lib/active_record/associations/collection_association.rb:481 + 35624 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:83 + 32339 arel-9.0.0/lib/arel/table.rb:81 + 30988 activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract/quoting.rb:161 + 30988 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:58 + 30602 arel-9.0.0/lib/arel/visitors/postgresql.rb:49 + 29542 activemodel-5.2.8.1/lib/active_model/attribute.rb:9 + 29316 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + 29307 activerecord-5.2.8.1/lib/active_record/relation.rb:29 + 28972 ruby/lib/pathname.rb:42 + 28648 activerecord-5.2.8.1/lib/active_record/relation/where_clause.rb:109 + 28648 activerecord-5.2.8.1/lib/active_record/relation/where_clause.rb:25 + 28648 activerecord-5.2.8.1/lib/active_record/relation/where_clause.rb:26 + 27596 ruby/lib/pathname.rb:46 + 27022 ruby/lib/logger.rb:475 + 27022 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:107 + 27022 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:108 + 27022 activesupport-5.2.8.1/lib/active_support/log_subscriber.rb:109 + 27022 activesupport-5.2.8.1/lib/active_support/logger.rb:104 + 27022 activesupport-5.2.8.1/lib/active_support/tagged_logging.rb:23 + 26244 activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract_adapter.rb:612 + 25870 activemodel-5.2.8.1/lib/active_model/attribute_set.rb:37 + 25426 activemodel-5.2.8.1/lib/active_model/attribute.rb:13 + 25426 activemodel-5.2.8.1/lib/active_model/attribute.rb:71 + 25081 activesupport-5.2.8.1/lib/active_support/callbacks.rb:103 + 24664 activerecord-5.2.8.1/lib/active_record/relation.rb:25 + 23848 activerecord-5.2.8.1/lib/active_record/result.rb:128 + 23446 activerecord-5.2.8.1/lib/active_record/scoping.rb:17 + 23233 activerecord-5.2.8.1/lib/active_record/relation/predicate_builder.rb:60 + 23233 activerecord-5.2.8.1/lib/active_record/relation/predicate_builder.rb:61 + 23161 activerecord-5.2.8.1/lib/active_record/attribute_methods.rb:279 + 22137 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql_adapter.rb:447 + 21461 activesupport-5.2.8.1/lib/active_support/callbacks.rb:424 + 21238 ruby/lib/json/common.rb:156 + 21150 activesupport-5.2.8.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21 + +allocated objects by class +----------------------------------- + 1802280 Array + 1209628 String + 1162448 Thread::Backtrace::Location + 507254 Hash + 90210 Proc + 61010 ActiveRecord::Relation::WhereClause + 46334 ActiveModel::Attribute::FromDatabase + 39133 ActiveRecord::Relation + 34493 MatchData + 32467 Time + 32339 Arel::Attributes::Attribute + 32085 Arel::Nodes::BindParam + 27627 Binding + 25426 ActiveModel::Attribute::FromUser + 23620 ActiveRecord::Relation::QueryAttribute + 22829 Enumerator + 17115 ActiveModel::AttributeSet + 15600 ActiveRecord::Relation::WhereClauseFactory + 15452 Class + 15173 ActiveSupport::Callbacks::Filters::Environment + 14999 Thread::Backtrace + 14324 ActiveRecord::Relation::Merger + 13536 PG::Result + 13530 ActiveSupport::Notifications::Event + 13504 ActiveRecord::Result + 13122 Arel::Collectors::Bind + 13122 Arel::Collectors::Composite + 13122 Arel::Collectors::SQLString + 12549 ActiveSupport::HashWithIndifferentAccess + 11659 Arel::Nodes::Equality + 10852 Set + 9916 ActiveModel::AttributeMutationTracker + 8857 Arel::Nodes::JoinSource + 8857 Arel::Nodes::SelectCore + 8857 Arel::Nodes::SelectStatement + 8857 Arel::Nodes::SqlLiteral + 8857 Arel::SelectManager + 8853 Arel::Nodes::And + 8852 ActiveModel::Attribute::WithCastValue + 8852 Arel::Nodes::Limit + 8852 Arel::Nodes::Top + 8193 ActiveModel::LazyAttributeHash + 7274 ActiveModel::Errors + 5826 Service + 5652 ActiveRecord::AssociationRelation + 5632 ActiveRecord::Associations::BelongsToAssociation + 5254 Pathname + 4265 Arel::InsertManager + 4265 Arel::Nodes::InsertStatement + 4265 Arel::Nodes::Values + +retained memory by gem +----------------------------------- + 4.30 MB listen-3.1.5 + 2.85 MB bootsnap-1.17.0 + 1.67 MB activerecord-5.2.8.1 + 1.05 MB timeout-0.4.1 + 868.50 kB rubygems + 729.53 kB bundler-2.0.2 + 539.55 kB activesupport-5.2.8.1 + 363.22 kB msgpack-1.7.2 + 322.36 kB actionpack-5.2.8.1 + 286.70 kB marcel-1.0.2 + 282.55 kB tzinfo-1.2.11 + 270.06 kB arm64-darwin22 + 268.52 kB pg-1.5.4 + 223.14 kB concurrent-ruby-1.2.2 + 216.42 kB uri + 194.89 kB nokogiri-1.15.4 + 184.42 kB railties-5.2.8.1 + 147.20 kB sprockets-4.2.1 + 134.19 kB rake-13.1.0 + 132.60 kB arel-9.0.0 + 128.42 kB delegate + 124.39 kB set + 124.18 kB activemodel-5.2.8.1 + 119.28 kB actionview-5.2.8.1 + 79.04 kB thor-1.3.0 + 65.31 kB rack-2.2.8 + 49.91 kB i18n-1.14.1 + 44.60 kB psych + 39.25 kB openssl + 35.68 kB 2.7.0 + 31.92 kB loofah-2.21.4 + 30.28 kB actioncable-5.2.8.1 + 29.82 kB rails-optimization-task3/app + 29.78 kB minitest-5.20.0 + 27.51 kB fileutils + 26.49 kB rails-html-sanitizer-1.6.0 + 23.66 kB activestorage-5.2.8.1 + 20.98 kB sprockets-rails-3.4.2 + 16.19 kB date-3.3.4 + 13.51 kB erb + 12.34 kB cgi + 11.87 kB rack-test-2.1.0 + 11.34 kB other + 10.97 kB json + 9.96 kB globalid-1.1.0 + 8.62 kB logger + 8.15 kB method_source-1.0.0 + 8.15 kB forwardable + 8.00 kB open-uri + 7.76 kB web-console-3.7.0 + +retained memory by file +----------------------------------- + 4.20 MB listen-3.1.5/lib/listen/internals/thread_pool.rb + 2.15 MB bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb + 1.06 MB activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb + 1.05 MB timeout-0.4.1/lib/timeout.rb + 460.39 kB bootsnap-1.17.0/lib/bootsnap/load_path_cache/cache.rb + 345.31 kB msgpack-1.7.2/lib/msgpack.rb + 269.70 kB marcel-1.0.2/lib/marcel/tables.rb + 255.72 kB pg-1.5.4/lib/pg_ext.bundle + 249.11 kB bundler-2.0.2/lib/bundler/index.rb + 241.09 kB ruby/lib/rubygems/core_ext/kernel_require.rb + 236.86 kB ruby/lib/rubygems/stub_specification.rb + 188.04 kB tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb + 171.89 kB bootsnap-1.17.0/lib/bootsnap/load_path_cache/loaded_features_index.rb + 153.99 kB ruby/lib/rubygems.rb + 132.40 kB ruby/lib/arm64-darwin22/openssl.bundle + 128.42 kB ruby/lib/delegate.rb + 124.39 kB ruby/lib/set.rb + 107.58 kB ruby/lib/uri/rfc2396_parser.rb + 91.15 kB ruby/lib/uri/common.rb + 88.94 kB ruby/lib/rubygems/version.rb + 79.85 kB activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb + 78.18 kB nokogiri-1.15.4/lib/nokogiri/html4/element_description_defaults.rb + 77.41 kB bundler-2.0.2/lib/bundler/stub_specification.rb + 76.84 kB activesupport-5.2.8.1/lib/active_support/callbacks.rb + 75.63 kB bundler-2.0.2/lib/bundler/remote_specification.rb + 59.74 kB nokogiri-1.15.4/lib/nokogiri/nokogiri.bundle + 49.72 kB ruby/lib/arm64-darwin22/socket.bundle + 49.64 kB rake-13.1.0/lib/rake/task.rb + 46.31 kB railties-5.2.8.1/lib/rails/initializable.rb + 41.98 kB ruby/lib/rubygems/specification.rb + 41.30 kB activesupport-5.2.8.1/lib/active_support/dependencies/autoload.rb + 37.31 kB concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/promises.rb + 36.94 kB listen-3.1.5/lib/listen/adapter/base.rb + 36.82 kB bundler-2.0.2/lib/bundler/lockfile_parser.rb + 36.59 kB activerecord-5.2.8.1/lib/active_record/relation/delegation.rb + 36.10 kB bundler-2.0.2/lib/bundler/spec_set.rb + 31.62 kB tzinfo-1.2.11/lib/tzinfo/country_timezone.rb + 31.40 kB ruby/lib/rubygems/util.rb + 31.39 kB activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql_adapter.rb + 31.07 kB actionpack-5.2.8.1/lib/action_dispatch/routing/route_set.rb + 30.39 kB activesupport-5.2.8.1/lib/active_support/inflector/inflections.rb + 30.11 kB railties-5.2.8.1/lib/rails/paths.rb + 29.80 kB activemodel-5.2.8.1/lib/active_model/attribute_methods.rb + 29.50 kB concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb + 29.27 kB ruby/lib/rubygems/requirement.rb + 27.70 kB actionpack-5.2.8.1/lib/action_dispatch/routing/mapper.rb + 27.51 kB ruby/lib/fileutils.rb + 26.65 kB activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb + 26.57 kB bundler-2.0.2/lib/bundler/current_ruby.rb + 25.12 kB ruby/lib/rubygems/basic_specification.rb + +retained memory by location +----------------------------------- + 4.20 MB listen-3.1.5/lib/listen/internals/thread_pool.rb:6 + 2.14 MB bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1.05 MB timeout-0.4.1/lib/timeout.rb:98 + 1.05 MB activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:299 + 339.75 kB msgpack-1.7.2/lib/msgpack.rb:32 + 255.72 kB pg-1.5.4/lib/pg_ext.bundle:0 + 245.26 kB bundler-2.0.2/lib/bundler/index.rb:24 + 241.09 kB ruby/lib/rubygems/core_ext/kernel_require.rb:86 + 229.47 kB bootsnap-1.17.0/lib/bootsnap/load_path_cache/cache.rb:126 + 188.14 kB bootsnap-1.17.0/lib/bootsnap/load_path_cache/cache.rb:221 + 153.83 kB ruby/lib/rubygems.rb:786 + 132.40 kB ruby/lib/arm64-darwin22/openssl.bundle:0 + 114.78 kB bootsnap-1.17.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:28 + 95.57 kB ruby/lib/rubygems/stub_specification.rb:65 + 78.97 kB activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:214 + 75.37 kB bundler-2.0.2/lib/bundler/stub_specification.rb:9 + 73.60 kB bundler-2.0.2/lib/bundler/remote_specification.rb:34 + 69.08 kB ruby/lib/rubygems/stub_specification.rb:129 + 65.08 kB ruby/lib/set.rb:94 + 64.16 kB ruby/lib/delegate.rb:412 + 59.74 kB nokogiri-1.15.4/lib/nokogiri/nokogiri.bundle:0 + 57.44 kB marcel-1.0.2/lib/marcel/tables.rb:10 + 57.41 kB tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:384 + 49.72 kB ruby/lib/arm64-darwin22/socket.bundle:0 + 47.78 kB ruby/lib/set.rb:136 + 43.94 kB ruby/lib/rubygems/version.rb:206 + 36.80 kB ruby/lib/rubygems/stub_specification.rb:48 + 35.89 kB ruby/lib/delegate.rb:389 + 32.85 kB activesupport-5.2.8.1/lib/active_support/dependencies/autoload.rb:47 + 31.40 kB ruby/lib/rubygems/util.rb:105 + 30.10 kB tzinfo-1.2.11/lib/tzinfo/country_timezone.rb:32 + 29.50 kB concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:14 + 29.49 kB listen-3.1.5/lib/listen/adapter/base.rb:72 + 28.77 kB bootsnap-1.17.0/lib/bootsnap/load_path_cache/cache.rb:127 + 28.77 kB marcel-1.0.2/lib/marcel/tables.rb:1261 + 28.09 kB nokogiri-1.15.4/lib/nokogiri/html4/element_description_defaults.rb:2031 + 27.14 kB bundler-2.0.2/lib/bundler/spec_set.rb:175 + 24.48 kB activesupport-5.2.8.1/lib/active_support/core_ext/module/redefine_method.rb:29 + 22.74 kB ruby/lib/uri/common.rb:14 + 22.50 kB activerecord-5.2.8.1/lib/active_record/relation/delegation.rb:17 + 22.46 kB bootsnap-1.17.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:45 + 21.99 kB ruby/lib/uri/rfc2396_parser.rb:511 + 20.84 kB bootsnap-1.17.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:46 + 19.59 kB ruby/lib/arm64-darwin22/zlib.bundle:0 + 19.20 kB bundler-2.0.2/lib/bundler/current_ruby.rb:88 + 18.60 kB tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:498 + 18.04 kB ruby/lib/uri/common.rb:342 + 18.02 kB tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:488 + 17.97 kB ruby/lib/rubygems/stub_specification.rb:38 + 17.84 kB ruby/lib/arm64-darwin22/etc.bundle:0 + +retained memory by class +----------------------------------- + 6.30 MB Thread + 3.54 MB String + 2.12 MB Class + 1.18 MB Hash + 777.52 kB Regexp + 668.39 kB Module + 652.20 kB Array + 222.96 kB Proc + 127.87 kB RubyVM::InstructionSequence + 101.58 kB Gem::StubSpecification + 75.37 kB Bundler::StubSpecification + 69.08 kB Gem::StubSpecification::StubLine + 35.88 kB Rational + 30.10 kB TZInfo::CountryTimezone + 29.50 kB Fiber + 26.95 kB Gem::Version + 23.33 kB Thread::Mutex + 19.26 kB Gem::Specification + 17.94 kB TZInfo::ZoneinfoCountryInfo + 15.42 kB Rails::Initializable::Initializer + 14.88 kB Symbol + 14.16 kB Gem::Dependency + 14.14 kB ActiveRecord::AttributeMethods::GeneratedAttributeMethods + 13.68 kB Struct::HTMLElementDescription + 13.34 kB Rake::Task + 11.28 kB Gem::Requirement + 10.28 kB Range + 9.79 kB Rails::Paths::Path + 8.31 kB PG::TypeMapByOid + 7.62 kB Monitor + 6.82 kB ActiveSupport::Callbacks::Callback + 6.53 kB Bundler::LazySpecification + 5.44 kB Bundler::LazySpecification::Identifier + 5.14 kB Thor::Option + 4.88 kB ActiveSupport::OrderedOptions + 4.32 kB ActiveSupport::Callbacks::CallbackChain + 4.21 kB PG::TypeMapByClass + 4.06 kB Thor::Command + 3.90 kB ActiveSupport::Callbacks::CallTemplate + 3.87 kB Time + 3.64 kB ActionDispatch::Journey::Nodes::Cat + 3.44 kB Set + 2.72 kB Object + 2.62 kB Bundler::Dependency + 2.56 kB Concurrent::Map + 2.53 kB Mime::Type + 2.30 kB ActionDispatch::Journey::Route + 2.28 kB Pathname + 2.10 kB ActiveRecord::Type::Registration + 1.91 kB ActiveRecord::ConnectionAdapters::PostgreSQLColumn + +retained objects by gem +----------------------------------- + 34272 bootsnap-1.17.0 + 11810 rubygems + 5927 bundler-2.0.2 + 4829 marcel-1.0.2 + 4741 msgpack-1.7.2 + 4559 activesupport-5.2.8.1 + 4016 tzinfo-1.2.11 + 2768 activerecord-5.2.8.1 + 2052 actionpack-5.2.8.1 + 1991 arm64-darwin22 + 1609 pg-1.5.4 + 1489 rake-13.1.0 + 1368 railties-5.2.8.1 + 1172 nokogiri-1.15.4 + 1067 uri + 875 delegate + 827 sprockets-4.2.1 + 791 activemodel-5.2.8.1 + 719 concurrent-ruby-1.2.2 + 533 listen-3.1.5 + 521 thor-1.3.0 + 480 arel-9.0.0 + 349 actionview-5.2.8.1 + 334 2.7.0 + 270 rack-2.2.8 + 244 psych + 239 set + 227 i18n-1.14.1 + 216 openssl + 172 minitest-5.20.0 + 118 rails-html-sanitizer-1.6.0 + 115 date-3.3.4 + 115 loofah-2.21.4 + 113 actioncable-5.2.8.1 + 98 other + 80 cgi + 80 sprockets-rails-3.4.2 + 72 forwardable + 66 fileutils + 66 securerandom + 58 activestorage-5.2.8.1 + 58 erb + 54 rails-optimization-task3/app + 45 json + 45 ostruct + 38 pathname + 38 rack-test-2.1.0 + 36 logger + 35 globalid-1.1.0 + 26 ruby_dep-1.5.0 + +retained objects by file +----------------------------------- + 31458 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb + 4638 msgpack-1.7.2/lib/msgpack.rb + 4506 marcel-1.0.2/lib/marcel/tables.rb + 3376 ruby/lib/rubygems/core_ext/kernel_require.rb + 3136 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb + 3039 ruby/lib/rubygems/stub_specification.rb + 1953 ruby/lib/rubygems/version.rb + 1581 bundler-2.0.2/lib/bundler/remote_specification.rb + 1561 pg-1.5.4/lib/pg_ext.bundle + 1262 bootsnap-1.17.0/lib/bootsnap/load_path_cache/cache.rb + 1148 bundler-2.0.2/lib/bundler/index.rb + 965 ruby/lib/arm64-darwin22/openssl.bundle + 900 rake-13.1.0/lib/rake/task.rb + 885 ruby/lib/uri/common.rb + 875 ruby/lib/delegate.rb + 855 activesupport-5.2.8.1/lib/active_support/callbacks.rb + 794 bootsnap-1.17.0/lib/bootsnap/load_path_cache/loaded_features_index.rb + 793 bundler-2.0.2/lib/bundler/stub_specification.rb + 788 ruby/lib/rubygems.rb + 785 ruby/lib/rubygems/util.rb + 773 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb + 728 ruby/lib/rubygems/requirement.rb + 668 ruby/lib/rubygems/specification.rb + 567 nokogiri-1.15.4/lib/nokogiri/html4/element_description_defaults.rb + 476 ruby/lib/arm64-darwin22/socket.bundle + 455 railties-5.2.8.1/lib/rails/initializable.rb + 436 activesupport-5.2.8.1/lib/active_support/dependencies/autoload.rb + 423 tzinfo-1.2.11/lib/tzinfo/country_timezone.rb + 417 bundler-2.0.2/lib/bundler/current_ruby.rb + 416 bundler-2.0.2/lib/bundler/spec_set.rb + 394 bundler-2.0.2/lib/bundler/lockfile_parser.rb + 387 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb + 359 activesupport-5.2.8.1/lib/active_support/core_ext/class/attribute.rb + 306 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb + 306 activesupport-5.2.8.1/lib/active_support/core_ext/module/redefine_method.rb + 306 railties-5.2.8.1/lib/rails/paths.rb + 294 ruby/lib/rubygems/basic_specification.rb + 275 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb + 270 nokogiri-1.15.4/lib/nokogiri/nokogiri.bundle + 251 tzinfo-1.2.11/lib/tzinfo/zoneinfo_country_info.rb + 245 actionpack-5.2.8.1/lib/action_dispatch/journey/parser.rb + 240 actionpack-5.2.8.1/lib/action_dispatch/routing/route_set.rb + 239 ruby/lib/set.rb + 237 activesupport-5.2.8.1/lib/active_support/lazy_load_hooks.rb + 218 actionpack-5.2.8.1/lib/action_dispatch/routing/mapper.rb + 212 ruby/lib/arm64-darwin22/etc.bundle + 198 bootsnap-1.17.0/lib/bootsnap/compile_cache/yaml.rb + 190 activesupport-5.2.8.1/lib/active_support/inflector/inflections.rb + 182 sprockets-4.2.1/lib/sprockets/transformers.rb + 179 listen-3.1.5/lib/listen/adapter/base.rb + +retained objects by location +----------------------------------- + 31429 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 4564 msgpack-1.7.2/lib/msgpack.rb:32 + 3376 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + 1568 bundler-2.0.2/lib/bundler/remote_specification.rb:34 + 1561 pg-1.5.4/lib/pg_ext.bundle:0 + 1161 bootsnap-1.17.0/lib/bootsnap/load_path_cache/cache.rb:221 + 1121 bundler-2.0.2/lib/bundler/index.rb:24 + 965 ruby/lib/arm64-darwin22/openssl.bundle:0 + 862 ruby/lib/rubygems/version.rb:206 + 802 ruby/lib/delegate.rb:412 + 785 bundler-2.0.2/lib/bundler/stub_specification.rb:9 + 785 ruby/lib/rubygems.rb:786 + 785 ruby/lib/rubygems/stub_specification.rb:129 + 785 ruby/lib/rubygems/util.rb:105 + 784 ruby/lib/rubygems/stub_specification.rb:48 + 765 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:214 + 738 ruby/lib/rubygems/stub_specification.rb:65 + 552 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:384 + 476 ruby/lib/arm64-darwin22/socket.bundle:0 + 465 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:498 + 451 ruby/lib/uri/common.rb:342 + 441 ruby/lib/rubygems/version.rb:229 + 435 ruby/lib/rubygems/stub_specification.rb:38 + 418 tzinfo-1.2.11/lib/tzinfo/country_timezone.rb:32 + 418 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:446 + 404 activesupport-5.2.8.1/lib/active_support/dependencies/autoload.rb:47 + 379 ruby/lib/rubygems/specification.rb:2041 + 360 bundler-2.0.2/lib/bundler/current_ruby.rb:88 + 336 bundler-2.0.2/lib/bundler/spec_set.rb:175 + 323 ruby/lib/rubygems/version.rb:407 + 319 ruby/lib/rubygems/version.rb:386 + 318 bootsnap-1.17.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:45 + 311 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:500 + 306 activesupport-5.2.8.1/lib/active_support/core_ext/module/redefine_method.rb:29 + 300 bootsnap-1.17.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:46 + 287 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb:18 + 270 nokogiri-1.15.4/lib/nokogiri/nokogiri.bundle:0 + 257 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb:36 + 255 ruby/lib/rubygems/requirement.rb:132 + 251 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:488 + 249 tzinfo-1.2.11/lib/tzinfo/zoneinfo_country_info.rb:10 + 249 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:484 + 249 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:485 + 242 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:466 + 218 ruby/lib/rubygems/stub_specification.rb:123 + 212 ruby/lib/arm64-darwin22/etc.bundle:0 + 206 rake-13.1.0/lib/rake/task.rb:105 + 202 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:447 + 181 ruby/lib/rubygems/requirement.rb:64 + 175 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:380 + +retained objects by class +----------------------------------- + 60863 String + 12396 Array + 2917 Class + 2787 Proc + 2589 Hash + 1193 Regexp + 897 Rational + 785 Bundler::StubSpecification + 785 Gem::StubSpecification + 785 Gem::StubSpecification::StubLine + 779 Module + 441 Gem::Version + 418 TZInfo::CountryTimezone + 372 Symbol + 324 Thread::Mutex + 282 Gem::Requirement + 257 Range + 249 TZInfo::ZoneinfoCountryInfo + 214 Rails::Initializable::Initializer + 177 Gem::Dependency + 135 RubyVM::InstructionSequence + 119 Monitor + 98 Rake::Task + 94 Rails::Paths::Path + 91 ActionDispatch::Journey::Nodes::Cat + 90 Struct::HTMLElementDescription + 86 Set + 71 ActiveSupport::Callbacks::Callback + 68 Bundler::LazySpecification + 68 Bundler::LazySpecification::Identifier + 68 Object + 64 Concurrent::Map + 57 Pathname + 54 ActiveSupport::Callbacks::CallTemplate + 54 ActiveSupport::Callbacks::CallbackChain + 45 Time + 44 Rake::Scope + 43 ActionDispatch::Journey::Nodes::Slash + 43 Gem::Specification + 39 Thor::Command + 38 Sprockets::ProcessorUtils::CompositeProcessor + 37 Rails::Initializable::Collection + 35 Mime::Type + 35 Thor::Option + 30 ActionDispatch::Journey::Nodes::Literal + 29 ActiveRecord::Type::Registration + 26 ActionDispatch::Journey::Format + 24 ActionDispatch::MiddlewareStack::Middleware + 23 Sprockets::Transformers::Transformer + 22 ActionDispatch::Journey::Format::Parameter + + +Allocated String Report +----------------------------------- + 44987 "buses_services" + 36131 activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 5264 activerecord-5.2.8.1/lib/active_record/associations/collection_association.rb:481 + 2632 activerecord-5.2.8.1/lib/active_record/associations/has_many_through_association.rb:69 + 937 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:405 + 4 activerecord-5.2.8.1/lib/active_record/associations/builder/collection_association.rb:32 + 4 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 3 activerecord-5.2.8.1/lib/active_record/associations/builder/has_and_belongs_to_many.rb:99 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/has_and_belongs_to_many.rb:28 + 2 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/utils.rb:71 + 1 activerecord-5.2.8.1/lib/active_record/associations.rb:1840 + 1 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:181 + 1 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:212 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/schema_cache.rb:114 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:348 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:37 + 1 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:400 + + 35091 "name" + 6616 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:83 + 6616 activerecord-5.2.8.1/lib/active_record/result.rb:128 + 6239 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:219 + 6229 activerecord-5.2.8.1/lib/active_record/relation/predicate_builder.rb:29 + 6229 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:46 + 2662 activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 396 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 32 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:380 + 20 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:40 + 10 activerecord-5.2.8.1/lib/active_record/validations/uniqueness.rb:102 + 10 activerecord-5.2.8.1/lib/active_record/validations/uniqueness.rb:73 + 7 pg-1.5.4/lib/pg/coder.rb:21 + 5 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + 3 loofah-2.21.4/lib/loofah/metahelpers.rb:12 + 2 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:406 + 2 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + 2 activerecord-5.2.8.1/lib/active_record/relation/delegation.rb:96 + 2 activerecord-5.2.8.1/lib/active_record/relation/delegation.rb:97 + 2 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:198 + 1 activerecord-5.2.8.1/lib/active_record/attribute_methods.rb:29 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract/quoting.rb:68 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb:18 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:173 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:201 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:203 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:205 + + 29652 "service" + 24348 activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 2632 activerecord-5.2.8.1/lib/active_record/associations/association.rb:183 + 2632 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:40 + 5 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 3 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:400 + 3 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:405 + 2 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:72 + 2 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:94 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:107 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:108 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:115 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:116 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/has_and_belongs_to_many.rb:98 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:19 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:20 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:28 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:29 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:32 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:33 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:36 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:37 + 1 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:181 + 1 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:212 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:348 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:37 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:651 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:658 + 1 activesupport-5.2.8.1/lib/active_support/dependencies.rb:423 + 1 activesupport-5.2.8.1/lib/active_support/ordered_options.rb:42 + 1 pg-1.5.4/lib/pg/connection.rb:330 + 1 pg-1.5.4/lib/pg/connection.rb:346 + 1 pg-1.5.4/lib/pg/connection.rb:778 + 1 pg-1.5.4/lib/pg/connection.rb:779 + + 22512 "1" + 13119 activesupport-5.2.8.1/lib/active_support/core_ext/numeric/conversions.rb:107 + 8854 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:37 + 163 ruby/lib/rubygems/version.rb:407 + 163 ruby/lib/rubygems/version.rb:408 + 33 ruby/lib/uri/common.rb:349 + 33 ruby/lib/uri/common.rb:350 + 33 ruby/lib/uri/common.rb:351 + 33 ruby/lib/uri/common.rb:352 + 30 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 6 nokogiri-1.15.4/lib/nokogiri/version/info.rb:41 + 4 ruby/lib/ipaddr.rb:647 + 4 ruby/lib/ipaddr.rb:654 + 3 ruby/lib/uri/common.rb:342 + 3 bundler-2.0.2/lib/bundler/current_ruby.rb:25 + 3 nokogiri-1.15.4/lib/nokogiri/version/info.rb:39 + 2 ruby/lib/ipaddr.rb:618 + 2 ruby/lib/json/common.rb:156 + 2 activemodel-5.2.8.1/lib/active_model/type/string.rb:18 + 2 globalid-1.1.0/lib/global_id/uri/gid.rb:149 + 2 globalid-1.1.0/lib/global_id/uri/gid.rb:152 + 2 pg-1.5.4/lib/pg/connection.rb:330 + 2 pg-1.5.4/lib/pg/connection.rb:346 + 2 pg-1.5.4/lib/pg/connection.rb:779 + 1 ruby/lib/psych.rb:233 + 1 ruby/lib/securerandom.rb:309 + 1 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb:36 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:89 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/range/each.rb:9 + 1 bundler-2.0.2/lib/bundler/current_ruby.rb:82 + 1 bundler-2.0.2/lib/bundler/environment_preserver.rb:24 + 1 bundler-2.0.2/lib/bundler/feature_flag.rb:28 + 1 pg-1.5.4/lib/pg/connection.rb:38 + 1 pg-1.5.4/lib/pg/connection.rb:778 + 1 rake-13.1.0/lib/rake/version.rb:6 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:400 + + 19647 "id" + 11881 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:83 + 7616 activerecord-5.2.8.1/lib/active_record/result.rb:128 + 72 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 60 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:380 + 10 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + 5 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:406 + 3 loofah-2.21.4/lib/loofah/metahelpers.rb:12 + + 15961 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/" + 13511 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:107 + 1408 ruby/lib/pathname.rb:46 + 1042 ruby/lib/pathname.rb:42 + + 14722 "number" + 3226 activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 2613 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:219 + 1613 activerecord-5.2.8.1/lib/active_record/validations/uniqueness.rb:102 + 1613 activerecord-5.2.8.1/lib/active_record/validations/uniqueness.rb:73 + 1000 ruby/lib/json/common.rb:156 + 1000 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:83 + 1000 activerecord-5.2.8.1/lib/active_record/relation/predicate_builder.rb:29 + 1000 activerecord-5.2.8.1/lib/active_record/result.rb:128 + 1000 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:46 + 613 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:40 + 22 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 16 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:380 + 1 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:406 + 1 activerecord-5.2.8.1/lib/active_record/attribute_methods.rb:29 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract/quoting.rb:68 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:46 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/yaml.rb:286 + + 13863 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3" + 13511 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:107 + 114 ruby/lib/pathname.rb:332 + 57 ruby/lib/pathname.rb:147 + 42 railties-5.2.8.1/lib/rails/paths.rb:193 + 22 railties-5.2.8.1/lib/rails/paths.rb:196 + 15 ruby/lib/rubygems/util.rb:89 + 11 ruby/lib/pathname.rb:375 + 11 ruby/lib/pathname.rb:42 + 10 ruby/lib/rubygems/util.rb:86 + 9 bundler-2.0.2/lib/bundler/shared_helpers.rb:72 + 8 bundler-2.0.2/lib/bundler.rb:252 + 8 railties-5.2.8.1/lib/rails/engine.rb:692 + 6 bundler-2.0.2/lib/bundler/shared_helpers.rb:274 + 6 bundler-2.0.2/lib/bundler/shared_helpers.rb:276 + 5 ruby/lib/rubygems/bundler_version_finder.rb:54 + 4 railties-5.2.8.1/lib/rails/engine.rb:684 + 2 ruby/lib/pathname.rb:351 + 2 bundler-2.0.2/lib/bundler/environment_preserver.rb:24 + 2 railties-5.2.8.1/lib/rails/application.rb:107 + 2 railties-5.2.8.1/lib/rails/engine.rb:685 + 2 /Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/Rakefile:4 + 1 actionmailer-5.2.8.1/lib/action_mailer/railtie.rb:33 + 1 actionview-5.2.8.1/lib/action_view/template/resolver.rb:349 + 1 bootsnap-1.17.0/lib/bootsnap.rb:91 + 1 bundler-2.0.2/lib/bundler.rb:554 + 1 bundler-2.0.2/lib/bundler.rb:80 + 1 railties-5.2.8.1/lib/rails/application.rb:329 + 1 railties-5.2.8.1/lib/rails/application/configuration.rb:42 + 1 railties-5.2.8.1/lib/rails/paths.rb:128 + 1 rake-13.1.0/lib/rake/application.rb:58 + 1 rake-13.1.0/lib/rake/application.rb:703 + 1 rake-13.1.0/lib/rake/application.rb:711 + 1 rake-13.1.0/lib/rake/application.rb:732 + 1 sprockets-4.2.1/lib/sprockets/paths.rb:22 + 1 sprockets-rails-3.4.2/lib/sprockets/railtie.rb:188 + + 13595 "2" + 13098 activesupport-5.2.8.1/lib/active_support/core_ext/numeric/conversions.rb:107 + 147 ruby/lib/rubygems/version.rb:407 + 146 ruby/lib/rubygems/version.rb:408 + 33 ruby/lib/uri/common.rb:349 + 33 ruby/lib/uri/common.rb:350 + 33 ruby/lib/uri/common.rb:351 + 33 ruby/lib/uri/common.rb:352 + 9 bundler-2.0.2/lib/bundler/current_ruby.rb:25 + 6 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 4 nokogiri-1.15.4/lib/nokogiri/version/info.rb:28 + 4 nokogiri-1.15.4/lib/nokogiri/version/info.rb:30 + 3 ruby/lib/json/common.rb:156 + 3 ruby/lib/uri/common.rb:342 + 3 activemodel-5.2.8.1/lib/active_model/type/string.rb:18 + 3 ruby/lib/rubygems/requirement.rb:115 + 2 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:89 + 2 bundler-2.0.2/lib/bundler/compatibility_guard.rb:5 + 2 tzinfo-1.2.11/lib/tzinfo/ruby_core_support.rb:158 + 2 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + 2 ruby/lib/rubygems/version.rb:229 + 2 :258 + 1 ruby/lib/json/version.rb:5 + 1 ruby/lib/psych.rb:233 + 1 ruby/lib/securerandom.rb:309 + 1 actioncable-5.2.8.1/lib/action_cable/gem_version.rb:15 + 1 actionmailer-5.2.8.1/lib/action_mailer/gem_version.rb:15 + 1 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb:36 + 1 actionpack-5.2.8.1/lib/action_pack/gem_version.rb:15 + 1 actionview-5.2.8.1/lib/action_view/gem_version.rb:15 + 1 activejob-5.2.8.1/lib/active_job/gem_version.rb:15 + 1 activemodel-5.2.8.1/lib/active_model/gem_version.rb:15 + 1 activerecord-5.2.8.1/lib/active_record/gem_version.rb:15 + 1 activestorage-5.2.8.1/lib/active_storage/gem_version.rb:15 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/range/each.rb:9 + 1 activesupport-5.2.8.1/lib/active_support/gem_version.rb:15 + 1 bundler-2.0.2/lib/bundler/current_ruby.rb:82 + 1 bundler-2.0.2/lib/bundler/environment_preserver.rb:24 + 1 bundler-2.0.2/lib/bundler/feature_flag.rb:28 + 1 railties-5.2.8.1/lib/rails/gem_version.rb:15 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:400 + 1 tzinfo-1.2.11/lib/tzinfo/zoneinfo_timezone_info.rb:362 + 1 ruby/lib/rubygems/requirement.rb:110 + 1 ruby/lib/rubygems/requirement.rb:112 + 1 ruby/lib/rubygems/version.rb:165 + 1 ruby/lib/rubygems/version.rb:176 + 1 ruby/lib/rubygems/version.rb:246 + + 13568 "active_record" + 13530 activesupport-5.2.8.1/lib/active_support/subscriber.rb:100 + 15 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 14 railties-5.2.8.1/lib/rails/railtie/configuration.rb:92 + 2 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:198 + 2 msgpack-1.7.2/lib/msgpack.rb:32 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:201 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:203 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:205 + 1 activesupport-5.2.8.1/lib/active_support/subscriber.rb:68 + 1 railties-5.2.8.1/lib/rails/railtie/configuration.rb:93 + + 13566 "sql" + 13530 activesupport-5.2.8.1/lib/active_support/subscriber.rb:100 + 33 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 activesupport-5.2.8.1/lib/active_support/subscriber.rb:66 + 1 activesupport-5.2.8.1/lib/active_support/subscriber.rb:68 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:53 + + 13511 "lib/tasks/utils.rake" + 13511 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:108 + + 13118 "$1" + 13118 arel-9.0.0/lib/arel/visitors/postgresql.rb:49 + + 13097 "$2" + 13097 arel-9.0.0/lib/arel/visitors/postgresql.rb:49 + + 12021 "model" + 3065 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:140 + 1839 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:141 + 1226 activemodel-5.2.8.1/lib/active_model/translation.rb:46 + 1000 ruby/lib/json/common.rb:156 + 1000 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:83 + 1000 activerecord-5.2.8.1/lib/active_record/result.rb:128 + 1000 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:40 + 613 activemodel-5.2.8.1/lib/active_model/errors.rb:407 + 613 activemodel-5.2.8.1/lib/active_model/errors.rb:415 + 613 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:145 + 27 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 16 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:380 + 4 i18n-1.14.1/lib/i18n.rb:415 + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:46 + 1 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:406 + 1 activerecord-5.2.8.1/lib/active_record/attribute_methods.rb:29 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + + 9385 "0.1" + 9372 activesupport-5.2.8.1/lib/active_support/core_ext/numeric/conversions.rb:107 + 7 ruby/lib/rubygems/version.rb:165 + 2 ruby/lib/rubygems/requirement.rb:115 + 2 ruby/lib/rubygems/version.rb:229 + 1 ruby/lib/rubygems/version.rb:176 + 1 ruby/lib/rubygems/version.rb:206 + + 9264 " ↳ lib/tasks/utils.rake:26" + 4632 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:111 + 4632 activesupport-5.2.8.1/lib/active_support/tagged_logging.rb:23 + + 9245 "services" + 5264 activerecord-5.2.8.1/lib/active_record/associations/collection_association.rb:481 + 1000 ruby/lib/json/common.rb:156 + 1000 activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 1000 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:40 + 936 activerecord-5.2.8.1/lib/active_record/reflection.rb:278 + 5 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:400 + 5 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:405 + 4 activerecord-5.2.8.1/lib/active_record/associations/builder/collection_association.rb:32 + 4 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:46 + 4 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 2 activerecord-5.2.8.1/lib/active_record/reflection.rb:348 + 2 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:72 + 1 activerecord-5.2.8.1/lib/active_record/associations.rb:1841 + 1 activerecord-5.2.8.1/lib/active_record/associations.rb:1856 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:107 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:108 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:115 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:116 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/collection_association.rb:54 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/collection_association.rb:55 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/collection_association.rb:64 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/collection_association.rb:65 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/has_and_belongs_to_many.rb:72 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/has_and_belongs_to_many.rb:88 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/has_and_belongs_to_many.rb:99 + 1 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:181 + 1 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:212 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/utils.rb:71 + 1 activerecord-5.2.8.1/lib/active_record/model_schema.rb:513 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:37 + + 8852 "\"LIMIT\"" + 8852 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:37 + + 8852 "[\"LIMIT\", 1]" + 8852 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:37 + + 8478 " ↳ lib/tasks/utils.rake:22" + 4239 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:111 + 4239 activesupport-5.2.8.1/lib/active_support/tagged_logging.rb:23 + + 7026 "duration_minutes" + 1000 ruby/lib/json/common.rb:156 + 1000 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:382 + 1000 activemodel-5.2.8.1/lib/active_model/validations/numericality.rb:128 + 1000 activemodel-5.2.8.1/lib/active_model/validations/numericality.rb:26 + 1000 activerecord-5.2.8.1/lib/active_record/attribute_methods/before_type_cast.rb:49 + 1000 activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 1000 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:40 + 16 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:380 + 4 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:46 + 3 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:406 + 1 activerecord-5.2.8.1/lib/active_record/attribute_methods.rb:29 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + + 7026 "price_cents" + 1000 ruby/lib/json/common.rb:156 + 1000 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:382 + 1000 activemodel-5.2.8.1/lib/active_model/validations/numericality.rb:128 + 1000 activemodel-5.2.8.1/lib/active_model/validations/numericality.rb:26 + 1000 activerecord-5.2.8.1/lib/active_record/attribute_methods/before_type_cast.rb:49 + 1000 activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 1000 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:40 + 16 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:380 + 4 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:46 + 3 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:406 + 1 activerecord-5.2.8.1/lib/active_record/attribute_methods.rb:29 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + + 6925 "bus" + 3002 activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 1000 ruby/lib/json/common.rb:156 + 1000 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:40 + 613 activemodel-5.2.8.1/lib/active_model/errors.rb:407 + 613 activemodel-5.2.8.1/lib/active_model/errors.rb:408 + 613 activemodel-5.2.8.1/lib/active_model/translation.rb:58 + 10 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:405 + 8 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:94 + 6 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:46 + 5 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:140 + 5 i18n-1.14.1/lib/i18n.rb:415 + 4 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:400 + 3 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:141 + 3 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:107 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:108 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:115 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:116 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:19 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:20 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:28 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:29 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:32 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:33 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:36 + 2 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:37 + 2 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:181 + 2 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:212 + 2 activerecord-5.2.8.1/lib/active_record/reflection.rb:348 + 2 activerecord-5.2.8.1/lib/active_record/reflection.rb:37 + 2 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:72 + 1 activemodel-5.2.8.1/lib/active_model/naming.rb:196 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/has_and_belongs_to_many.rb:98 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:651 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:658 + 1 activesupport-5.2.8.1/lib/active_support/dependencies.rb:423 + 1 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:145 + + 6805 "" + 1856 ruby/lib/pathname.rb:42 + 1842 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:141 + 924 ruby/lib/pathname.rb:46 + 614 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:140 + 268 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:97 + 228 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 195 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + 188 listen-3.1.5/lib/listen/record.rb:33 + 142 listen-3.1.5/lib/listen/record.rb:17 + 123 listen-3.1.5/lib/listen/record.rb:45 + 64 ruby/lib/pathname.rb:149 + 39 pg-1.5.4/lib/pg/connection.rb:330 + 39 pg-1.5.4/lib/pg/connection.rb:346 + 39 pg-1.5.4/lib/pg/connection.rb:779 + 38 pg-1.5.4/lib/pg/connection.rb:778 + 32 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:394 + 29 listen-3.1.5/lib/listen/record.rb:80 + 13 ruby/lib/pathname.rb:382 + 13 ruby/lib/uri/common.rb:13 + 12 marcel-1.0.2/lib/marcel/mime_type.rb:7 + 10 listen-3.1.5/lib/listen/record/entry.rb:33 + 5 ruby/lib/ipaddr.rb:644 + 4 ruby/lib/ipaddr.rb:646 + 4 actionpack-5.2.8.1/lib/action_dispatch/routing/mapper.rb:1801 + 4 activerecord-5.2.8.1/lib/active_record/inheritance.rb:185 + 4 bootsnap-1.17.0/lib/bootsnap/compile_cache/yaml.rb:286 + 4 bootsnap-1.17.0/lib/bootsnap/load_path_cache/cache.rb:79 + 4 nokogiri-1.15.4/lib/nokogiri/css/xpath_visitor.rb:233 + 4 ruby/lib/rubygems/ext/builder.rb:9 + 3 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:262 + 3 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:76 + 3 bootsnap-1.17.0/lib/bootsnap/setup.rb:3 + 3 ruby/lib/rubygems/specification.rb:1164 + 2 ruby/lib/erb.rb:509 + 2 ruby/lib/erb.rb:905 + 2 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb:20 + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache.rb:15 + 2 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:74 + 2 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:75 + 2 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:77 + 2 bootsnap-1.17.0/lib/bootsnap/load_path_cache/path_scanner.rb:3 + 2 bundler-2.0.2/lib/bundler/yaml_serializer.rb:57 + 2 globalid-1.1.0/lib/global_id/uri/gid.rb:149 + 1 (eval):1 + 1 ruby/lib/erb.rb:621 + 1 ruby/lib/ipaddr.rb:647 + 1 ruby/lib/json/common.rb:70 + 1 ruby/lib/json/common.rb:71 + 1 ruby/lib/json/common.rb:72 + 1 ruby/lib/json/common.rb:73 + 1 ruby/lib/pathname.rb:116 + 1 ruby/lib/pathname.rb:35 + 1 ruby/lib/pathname.rb:65 + 1 ruby/lib/psych.rb:456 + 1 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb:23 + 1 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb:35 + 1 actionview-5.2.8.1/lib/action_view/template/resolver.rb:349 + 1 activerecord-5.2.8.1/lib/active_record/dynamic_matchers.rb:38 + 1 activesupport-5.2.8.1/lib/active_support/inflector/inflections.rb:62 + 1 activesupport-5.2.8.1/lib/active_support/inflector/inflections.rb:63 + 1 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:79 + 1 bundler-2.0.2/lib/bundler/definition.rb:76 + 1 erubi-1.12.0/lib/erubi.rb:17 + 1 listen-3.1.5/lib/listen/adapter/bsd.rb:21 + 1 listen-3.1.5/lib/listen/adapter/darwin.rb:14 + 1 listen-3.1.5/lib/listen/adapter/linux.rb:24 + 1 listen-3.1.5/lib/listen/adapter/windows.rb:8 + 1 memory_profiler-1.0.1/lib/memory_profiler/cli.rb:47 + 1 minitest-5.20.0/lib/minitest/assertions.rb:201 + 1 pg-1.5.4/lib/pg/connection.rb:38 + 1 rake-13.1.0/lib/rake/application.rb:734 + 1 sprockets-4.2.1/lib/sprockets/manifest.rb:47 + 1 sprockets-4.2.1/lib/sprockets/utils.rb:37 + 1 sprockets-rails-3.4.2/lib/sprockets/railtie.rb:133 + 1 ruby/lib/rubygems/dependency.rb:282 + + 6313 "\"name\"" + 6259 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:37 + 32 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:372 + 20 arel-9.0.0/lib/arel/visitors/to_sql.rb:128 + 2 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/quoting.rb:47 + + 6280 "empty?" + 6000 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:454 + 252 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 4 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:400 + 4 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:198 + 3 ruby/lib/json/common.rb:61 + 2 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:401 + 2 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:201 + 2 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:203 + 2 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:205 + 1 ruby/lib/forwardable.rb:207 + 1 ruby/lib/forwardable.rb:211 + 1 ruby/lib/forwardable.rb:214 + 1 ruby/lib/forwardable.rb:215 + 1 ruby/lib/forwardable.rb:218 + 1 ruby/lib/forwardable.rb:226 + 1 ruby/lib/forwardable/impl.rb:5 + 1 concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/thread_safe/util/data_structures.rb:32 + 1 rake-13.1.0/lib/rake/file_list.rb:44 + + 5941 "/" + 2224 ruby/lib/pathname.rb:42 + 1112 ruby/lib/pathname.rb:46 + 974 ruby/lib/pathname.rb:116 + 974 ruby/lib/pathname.rb:66 + 320 ruby/lib/pathname.rb:149 + 133 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 64 ruby/lib/pathname.rb:148 + 64 ruby/lib/pathname.rb:332 + 31 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + 5 ruby/lib/pathname.rb:35 + 4 ruby/lib/uri/rfc3986_parser.rb:44 + 2 ruby/lib/json/common.rb:61 + 2 ruby/lib/pathname.rb:34 + 2 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb:22 + 2 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb:24 + 2 actionpack-5.2.8.1/lib/action_dispatch/routing/mapper.rb:99 + 2 globalid-1.1.0/lib/global_id/uri/gid.rb:149 + 2 globalid-1.1.0/lib/global_id/uri/gid.rb:166 + 2 rack-2.2.8/lib/rack/utils.rb:604 + 2 sprockets-4.2.1/lib/sprockets/path_utils.rb:91 + 1 ruby/lib/uri/common.rb:13 + 1 ruby/lib/uri/common.rb:342 + 1 ruby/lib/uri/common.rb:349 + 1 ruby/lib/uri/common.rb:350 + 1 ruby/lib/uri/common.rb:351 + 1 ruby/lib/uri/common.rb:352 + 1 actionview-5.2.8.1/lib/action_view/template/resolver.rb:349 + 1 bootsnap-1.17.0/lib/bootsnap.rb:5 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache.rb:15 + 1 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:74 + 1 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:75 + 1 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:76 + 1 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:79 + 1 bootsnap-1.17.0/lib/bootsnap/setup.rb:3 + 1 nokogiri-1.15.4/lib/nokogiri/css/xpath_visitor.rb:233 + 1 rack-2.2.8/lib/rack/utils.rb:181 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:400 + 1 ruby/lib/rubygems/ext/builder.rb:9 + + 5285 "to_ary" + 5264 activerecord-5.2.8.1/lib/active_record/attribute_methods.rb:279 + 19 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 ruby/lib/json/common.rb:61 + 1 rake-13.1.0/lib/rake/file_list.rb:44 + + 5275 "bus_id=" + 2632 activemodel-5.2.8.1/lib/active_model/attribute_assignment.rb:49 + 2632 activerecord-5.2.8.1/lib/active_record/attribute_methods.rb:279 + 6 activerecord-5.2.8.1/lib/active_record/attribute_methods/write.rb:26 + 3 activerecord-5.2.8.1/lib/active_record/attribute_methods/write.rb:20 + 2 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:406 + + 5274 "after_add" + 5264 activerecord-5.2.8.1/lib/active_record/associations/collection_association.rb:481 + 5 activerecord-5.2.8.1/lib/active_record/associations/builder/collection_association.rb:32 + 5 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 5274 "before_add" + 5264 activerecord-5.2.8.1/lib/active_record/associations/collection_association.rb:481 + 5 activerecord-5.2.8.1/lib/active_record/associations/builder/collection_association.rb:32 + 5 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 5269 "service=" + 2632 activemodel-5.2.8.1/lib/active_model/attribute_assignment.rb:49 + 2632 activerecord-5.2.8.1/lib/active_record/attribute_methods.rb:279 + 4 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 activesupport-5.2.8.1/lib/active_support/ordered_options.rb:42 + + 5110 "to" + 3000 activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 1000 ruby/lib/json/common.rb:156 + 1000 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:40 + 82 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 6 listen-3.1.5/lib/listen/fsm.rb:33 + 2 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + 1 actionpack-5.2.8.1/lib/action_dispatch/journey/nodes/node.rb:85 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:107 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:108 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:115 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:116 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:19 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:20 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:28 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:29 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:32 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:33 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:36 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:37 + 1 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:181 + 1 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:212 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:348 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:37 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:658 + 1 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:405 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:46 + + 5071 "from" + 3000 activerecord-5.2.8.1/lib/active_record/reflection.rb:116 + 1000 ruby/lib/json/common.rb:156 + 1000 activesupport-5.2.8.1/lib/active_support/core_ext/hash/keys.rb:40 + 37 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 4 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:198 + 2 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:201 + 2 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:203 + 2 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:205 + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:46 + 1 ruby/lib/cgi/core.rb:448 + 1 actionpack-5.2.8.1/lib/action_dispatch/http/request.rb:49 + 1 actionpack-5.2.8.1/lib/action_dispatch/journey/nodes/node.rb:85 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:107 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:108 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:115 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/association.rb:116 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:19 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:20 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:28 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:29 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:32 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:33 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:36 + 1 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:37 + 1 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:181 + 1 activerecord-5.2.8.1/lib/active_record/autosave_association.rb:212 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:348 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:37 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:658 + 1 activerecord-5.2.8.1/lib/active_record/relation/query_methods.rb:66 + 1 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:405 + + 4706 "\n" + 2471 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + 743 ruby/lib/rubygems/stub_specification.rb:118 + 167 ruby/lib/rubygems/specification.rb:1164 + 166 ruby/lib/rubygems/ext/builder.rb:9 + 115 rake-13.1.0/lib/rake/file_list.rb:76 + 90 ruby/lib/erb.rb:905 + 85 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 83 activesupport-5.2.8.1/lib/active_support/core_ext/module/attribute_accessors.rb:57 + 82 activesupport-5.2.8.1/lib/active_support/core_ext/module/attribute_accessors.rb:124 + 75 activesupport-5.2.8.1/lib/active_support/callbacks.rb:814 + 65 ruby/lib/uri/common.rb:13 + 50 nokogiri-1.15.4/lib/nokogiri/xml/parse_options.rb:172 + 40 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:76 + 26 msgpack-1.7.2/lib/msgpack.rb:13 + 24 concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/synchronization/object.rb:92 + 23 activerecord-5.2.8.1/lib/active_record/relation/query_methods.rb:68 + 23 msgpack-1.7.2/lib/msgpack.rb:15 + 22 ruby/lib/forwardable/impl.rb:14 + 22 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:75 + 22 bootsnap-1.17.0/lib/bootsnap/setup.rb:3 + 19 activesupport-5.2.8.1/lib/active_support/core_ext/string/output_safety.rb:256 + 19 bootsnap-1.17.0/lib/bootsnap/compile_cache.rb:15 + 19 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:77 + 16 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:79 + 16 rake-13.1.0/lib/rake/file_list.rb:67 + 15 ruby/lib/rubygems/dependency.rb:282 + 14 activerecord-5.2.8.1/lib/active_record/associations/builder/singular_association.rb:27 + 13 bootsnap-1.17.0/lib/bootsnap.rb:5 + 13 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:74 + 12 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:78 + 10 ruby/lib/uri/common.rb:14 + 10 msgpack-1.7.2/lib/msgpack.rb:16 + 10 nokogiri-1.15.4/lib/nokogiri/xml/node/save_options.rb:52 + 9 bootsnap-1.17.0/lib/bootsnap/load_path_cache/store.rb:5 + 8 i18n-1.14.1/lib/i18n.rb:68 + 7 activerecord-5.2.8.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:56 + 7 bootsnap-1.17.0/lib/bootsnap.rb:6 + 6 activesupport-5.2.8.1/lib/active_support/core_ext/module/delegation.rb:262 + 6 bundler-2.0.2/lib/bundler/dsl.rb:47 + 6 concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/synchronization/object.rb:134 + 6 msgpack-1.7.2/lib/msgpack.rb:11 + 6 msgpack-1.7.2/lib/msgpack.rb:12 + 5 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:44 + 5 bootsnap-1.17.0/lib/bootsnap/load_path_cache/path_scanner.rb:3 + 4 ruby/lib/psych/tree_builder.rb:44 + 4 actionview-5.2.8.1/lib/action_view/lookup_context.rb:28 + 4 bootsnap-1.17.0/lib/bootsnap.rb:4 + 4 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:46 + 4 bootsnap-1.17.0/lib/bootsnap/load_path_cache.rb:45 + 3 ruby/lib/mutex_m.rb:46 + 3 msgpack-1.7.2/lib/msgpack.rb:17 + 3 rails-optimization-task3/bin/rake:3 + 2 actionpack-5.2.8.1/lib/action_dispatch/routing/polymorphic_routes.rb:148 + 2 msgpack-1.7.2/lib/msgpack.rb:14 + 2 /Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/config/boot.rb:4 + 1 ruby/lib/erb.rb:507 + 1 ruby/lib/erb.rb:508 + 1 ruby/lib/erb.rb:573 + 1 ruby/lib/erb.rb:634 + 1 ruby/lib/json/common.rb:79 + 1 ruby/lib/json/common.rb:80 + 1 ruby/lib/openssl/config.rb:130 + 1 ruby/lib/uri/common.rb:342 + 1 ruby/lib/uri/common.rb:349 + 1 ruby/lib/uri/common.rb:350 + 1 ruby/lib/uri/common.rb:351 + 1 ruby/lib/uri/common.rb:352 + 1 bootsnap-1.17.0/lib/bootsnap.rb:3 + 1 msgpack-1.7.2/lib/msgpack.rb:10 + 1 tzinfo-1.2.11/lib/tzinfo/zoneinfo_timezone_info.rb:430 + 1 tzinfo-1.2.11/lib/tzinfo/zoneinfo_timezone_info.rb:431 + 1 tzinfo-1.2.11/lib/tzinfo/zoneinfo_timezone_info.rb:432 + 1 tzinfo-1.2.11/lib/tzinfo/zoneinfo_timezone_info.rb:54 + 1 ruby/lib/rubygems/ext/builder.rb:10 + 1 rails-optimization-task3/bin/rake:7 + + 4658 "26" + 4632 activesupport-5.2.8.1/lib/active_support/core_ext/numeric/conversions.rb:107 + 9 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:439 + 5 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:440 + 2 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:37 + 2 pg-1.5.4/lib/pg_ext.bundle:0 + 1 ruby/lib/uri/common.rb:342 + 1 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb:36 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql_adapter.rb:828 + 1 bundler-2.0.2/lib/bundler/current_ruby.rb:82 + 1 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:442 + 1 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:443 + 1 ruby/lib/rubygems/version.rb:407 + 1 ruby/lib/rubygems/version.rb:408 + + 4632 " ↳ lib/tasks/utils.rake:26\n" + 4632 activesupport-5.2.8.1/lib/active_support/logger.rb:104 + + 4616 "Service Load" + 4616 activerecord-5.2.8.1/lib/active_record/querying.rb:41 + + 4344 "22" + 4239 activesupport-5.2.8.1/lib/active_support/core_ext/numeric/conversions.rb:107 + 69 pg-1.5.4/lib/pg_ext.bundle:0 + 9 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:439 + 7 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:440 + 5 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:37 + 4 ruby/lib/rubygems/version.rb:407 + 4 ruby/lib/rubygems/version.rb:408 + 3 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:442 + 1 ruby/lib/uri/common.rb:342 + 1 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb:36 + 1 bundler-2.0.2/lib/bundler/current_ruby.rb:82 + 1 tzinfo-1.2.11/lib/tzinfo/zoneinfo_data_source.rb:443 + + 4239 " ↳ lib/tasks/utils.rake:22\n" + 4239 activesupport-5.2.8.1/lib/active_support/logger.rb:104 + + 4230 "\"services\".*" + 4230 arel-9.0.0/lib/arel/visitors/to_sql.rb:729 + + 4229 "\e[1m\e[34mSELECT \"services\".* FROM \"services\" WHERE \"services\".\"name\" = $1 LIMIT $2\e[0m" + 4229 activesupport-5.2.8.1/lib/active_support/log_subscriber.rb:109 + + 4229 "\"$user\", public-SELECT \"services\".* FROM \"services\" WHERE \"services\".\"name\" = $1 LIMIT $2" + 4229 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql_adapter.rb:666 + + 4229 "\"services\".\"name\"" + 4229 arel-9.0.0/lib/arel/visitors/to_sql.rb:729 + + 4229 "SELECT \"services\".* FROM \"services\" WHERE \"services\".\"name\" = $1 LIMIT $2" + 4229 arel-9.0.0/lib/arel/collectors/plain_string.rb:6 + + 4052 "\"bus_id\"" + 4019 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:37 + 32 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:372 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/quoting.rb:47 + + 3876 "\e[1m\e[36mService Load (0.1ms)\e[0m" + 3876 activesupport-5.2.8.1/lib/active_support/log_subscriber.rb:109 + + 3876 "Service Load (0.1ms)" + 3876 activerecord-5.2.8.1/lib/active_record/log_subscriber.rb:28 + + 3696 "inclusion" + 613 activemodel-5.2.8.1/lib/active_model/errors.rb:407 + 613 activemodel-5.2.8.1/lib/active_model/errors.rb:408 + 613 activemodel-5.2.8.1/lib/active_model/errors.rb:410 + 613 activemodel-5.2.8.1/lib/active_model/errors.rb:415 + 613 activemodel-5.2.8.1/lib/active_model/errors.rb:416 + 613 i18n-1.14.1/lib/i18n/backend/simple.rb:100 + 5 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 5 i18n-1.14.1/lib/i18n.rb:415 + 4 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:72 + 2 activemodel-5.2.8.1/lib/active_model/validations/validates.rb:116 + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/yaml.rb:286 + + +Retained String Report +----------------------------------- + 51 "," + 49 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb:18 + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/yaml.rb:286 + + 46 "b" + 42 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb:18 + 1 ruby/lib/securerandom.rb:309 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/range/each.rb:9 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:400 + 1 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + + 43 "array_in" + 42 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb:18 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 31 "load_config" + 29 rake-13.1.0/lib/rake/task.rb:375 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + + 26 "rb" + 20 activesupport-5.2.8.1/lib/active_support/evented_file_update_checker.rb:144 + 4 railties-5.2.8.1/lib/rails/paths.rb:184 + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 19 "" + 12 marcel-1.0.2/lib/marcel/mime_type.rb:7 + 4 bootsnap-1.17.0/lib/bootsnap/compile_cache/yaml.rb:286 + 1 actionpack-5.2.8.1/lib/action_dispatch/journey/router/utils.rb:35 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 minitest-5.20.0/lib/minitest/assertions.rb:201 + + 18 "environment" + 15 rake-13.1.0/lib/rake/task.rb:375 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 rake-13.1.0/lib/rake/task.rb:100 + 1 rake-13.1.0/lib/rake/task_manager.rb:29 + + 18 "validate" + 18 activesupport-5.2.8.1/lib/active_support/callbacks.rb:462 + + 17 "rails" + 10 actionpack-5.2.8.1/lib/action_dispatch/journey/scanner.rb:54 + 2 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:94 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 bundler-2.0.2/lib/bundler/lockfile_parser.rb:194 + 1 bundler-2.0.2/lib/bundler/lockfile_parser.rb:216 + 1 bundler-2.0.2/lib/bundler/lockfile_parser.rb:222 + 1 /Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/Gemfile:6 + + 13 "5.2.8.1" + 2 ruby/lib/rubygems/version.rb:229 + 1 actioncable-5.2.8.1/lib/action_cable/gem_version.rb:15 + 1 actionmailer-5.2.8.1/lib/action_mailer/gem_version.rb:15 + 1 actionpack-5.2.8.1/lib/action_pack/gem_version.rb:15 + 1 actionview-5.2.8.1/lib/action_view/gem_version.rb:15 + 1 activejob-5.2.8.1/lib/active_job/gem_version.rb:15 + 1 activemodel-5.2.8.1/lib/active_model/gem_version.rb:15 + 1 activerecord-5.2.8.1/lib/active_record/gem_version.rb:15 + 1 activestorage-5.2.8.1/lib/active_storage/gem_version.rb:15 + 1 activesupport-5.2.8.1/lib/active_support/gem_version.rb:15 + 1 railties-5.2.8.1/lib/rails/gem_version.rb:15 + 1 ruby/lib/rubygems/version.rb:206 + + 12 ":format" + 11 actionpack-5.2.8.1/lib/action_dispatch/journey/scanner.rb:50 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 12 "activesupport" + 11 bundler-2.0.2/lib/bundler/lockfile_parser.rb:222 + 1 bundler-2.0.2/lib/bundler/spec_set.rb:175 + + 12 "format" + 11 actionpack-5.2.8.1/lib/action_dispatch/journey/nodes/node.rb:85 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 11 "id" + 10 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 10 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3" + 2 bundler-2.0.2/lib/bundler/environment_preserver.rb:24 + 2 railties-5.2.8.1/lib/rails/engine.rb:692 + 1 ruby/lib/pathname.rb:351 + 1 ruby/lib/pathname.rb:42 + 1 actionview-5.2.8.1/lib/action_view/template/resolver.rb:349 + 1 rake-13.1.0/lib/rake/application.rb:58 + 1 rake-13.1.0/lib/rake/application.rb:711 + 1 sprockets-4.2.1/lib/sprockets/paths.rb:22 + + 10 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/app/helpers" + 2 activesupport-5.2.8.1/lib/active_support/evented_file_update_checker.rb:140 + 2 listen-3.1.5/lib/listen/adapter/config.rb:17 + 2 railties-5.2.8.1/lib/rails/paths.rb:211 + 1 listen-3.1.5/lib/listen/record.rb:13 + 1 msgpack-1.7.2/lib/msgpack.rb:32 + 1 railties-5.2.8.1/lib/rails/paths.rb:193 + 1 railties-5.2.8.1/lib/rails/paths.rb:197 + + 10 "active_storage" + 5 actionpack-5.2.8.1/lib/action_dispatch/journey/scanner.rb:54 + 1 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:94 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 msgpack-1.7.2/lib/msgpack.rb:32 + 1 railties-5.2.8.1/lib/rails/railtie.rb:179 + 1 rake-13.1.0/lib/rake/dsl_definition.rb:136 + + 10 "buses" + 6 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:400 + 1 activemodel-5.2.8.1/lib/active_model/naming.rb:163 + 1 activerecord-5.2.8.1/lib/active_record/connection_adapters/schema_cache.rb:114 + 1 activerecord-5.2.8.1/lib/active_record/model_schema.rb:513 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 10 "r" + 6 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb:18 + 1 ruby/lib/securerandom.rb:309 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/range/each.rb:9 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:400 + + 9 "/Users/igor.arkhipov/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0" + 2 bundler-2.0.2/lib/bundler.rb:80 + 2 ruby/lib/rubygems/path_support.rb:81 + 2 ruby/lib/rubygems/specification.rb:2104 + 1 ruby/lib/rubygems/path_support.rb:80 + 1 ruby/lib/rubygems/specification.rb:2106 + 1 ruby/lib/rubygems/specification.rb:800 + + 9 "1" + 1 ruby/lib/securerandom.rb:309 + 1 ruby/lib/uri/common.rb:342 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/range/each.rb:9 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 bundler-2.0.2/lib/bundler/current_ruby.rb:25 + 1 bundler-2.0.2/lib/bundler/current_ruby.rb:82 + 1 bundler-2.0.2/lib/bundler/environment_preserver.rb:24 + 1 rake-13.1.0/lib/rake/version.rb:6 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:400 + + 9 "2" + 1 ruby/lib/securerandom.rb:309 + 1 ruby/lib/uri/common.rb:342 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/range/each.rb:9 + 1 bundler-2.0.2/lib/bundler/current_ruby.rb:25 + 1 bundler-2.0.2/lib/bundler/current_ruby.rb:82 + 1 bundler-2.0.2/lib/bundler/environment_preserver.rb:24 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:400 + 1 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + 1 ruby/lib/rubygems/version.rb:229 + + 9 "application/vnd.openxmlformats-officedocument.presentationml.presentation" + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:21 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:22 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:23 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:24 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:25 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:26 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:27 + + 9 "yml" + 4 activesupport-5.2.8.1/lib/active_support/evented_file_update_checker.rb:144 + 4 railties-5.2.8.1/lib/rails/paths.rb:184 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 8 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/app/assets" + 2 activesupport-5.2.8.1/lib/active_support/evented_file_update_checker.rb:140 + 2 listen-3.1.5/lib/listen/adapter/config.rb:17 + 1 listen-3.1.5/lib/listen/record.rb:13 + 1 msgpack-1.7.2/lib/msgpack.rb:32 + 1 railties-5.2.8.1/lib/rails/paths.rb:197 + 1 railties-5.2.8.1/lib/rails/paths.rb:211 + + 8 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/app/channels" + 2 activesupport-5.2.8.1/lib/active_support/evented_file_update_checker.rb:140 + 2 listen-3.1.5/lib/listen/adapter/config.rb:17 + 1 listen-3.1.5/lib/listen/record.rb:13 + 1 msgpack-1.7.2/lib/msgpack.rb:32 + 1 railties-5.2.8.1/lib/rails/paths.rb:197 + 1 railties-5.2.8.1/lib/rails/paths.rb:211 + + 8 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/app/controllers" + 2 activesupport-5.2.8.1/lib/active_support/evented_file_update_checker.rb:140 + 2 listen-3.1.5/lib/listen/adapter/config.rb:17 + 1 listen-3.1.5/lib/listen/record.rb:13 + 1 msgpack-1.7.2/lib/msgpack.rb:32 + 1 railties-5.2.8.1/lib/rails/paths.rb:197 + 1 railties-5.2.8.1/lib/rails/paths.rb:211 + + 8 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/app/jobs" + 2 activesupport-5.2.8.1/lib/active_support/evented_file_update_checker.rb:140 + 2 listen-3.1.5/lib/listen/adapter/config.rb:17 + 1 listen-3.1.5/lib/listen/record.rb:13 + 1 msgpack-1.7.2/lib/msgpack.rb:32 + 1 railties-5.2.8.1/lib/rails/paths.rb:197 + 1 railties-5.2.8.1/lib/rails/paths.rb:211 + + 8 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/app/mailers" + 2 activesupport-5.2.8.1/lib/active_support/evented_file_update_checker.rb:140 + 2 listen-3.1.5/lib/listen/adapter/config.rb:17 + 1 listen-3.1.5/lib/listen/record.rb:13 + 1 msgpack-1.7.2/lib/msgpack.rb:32 + 1 railties-5.2.8.1/lib/rails/paths.rb:197 + 1 railties-5.2.8.1/lib/rails/paths.rb:211 + + 8 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/app/models" + 2 activesupport-5.2.8.1/lib/active_support/evented_file_update_checker.rb:140 + 2 listen-3.1.5/lib/listen/adapter/config.rb:17 + 1 listen-3.1.5/lib/listen/record.rb:13 + 1 msgpack-1.7.2/lib/msgpack.rb:32 + 1 railties-5.2.8.1/lib/rails/paths.rb:197 + 1 railties-5.2.8.1/lib/rails/paths.rb:211 + + 8 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/config/locales" + 2 ruby/lib/pathname.rb:332 + 2 activesupport-5.2.8.1/lib/active_support/evented_file_update_checker.rb:140 + 2 listen-3.1.5/lib/listen/adapter/config.rb:17 + 1 activesupport-5.2.8.1/lib/active_support/i18n_railtie.rb:114 + 1 listen-3.1.5/lib/listen/record.rb:13 + + 8 "/Users/igor.arkhipov/Documents/Work/Ruby/thinknetica/rails-optimization-task3/public" + 3 railties-5.2.8.1/lib/rails/paths.rb:193 + 2 actionpack-5.2.8.1/lib/action_dispatch/middleware/static.rb:19 + 2 railties-5.2.8.1/lib/rails.rb:111 + 1 rack-2.2.8/lib/rack/files.rb:30 + + 8 "actionpack" + 7 bundler-2.0.2/lib/bundler/lockfile_parser.rb:222 + 1 bundler-2.0.2/lib/bundler/spec_set.rb:175 + + 8 "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:14 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:15 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:16 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:17 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:18 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:19 + + 8 "application/zip" + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:14 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:21 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:29 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:30 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:31 + 1 marcel-1.0.2/lib/marcel/mime_type/definitions.rb:9 + + 8 "check_protected_environments" + 6 rake-13.1.0/lib/rake/task.rb:375 + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 8 "ext/extconf.rb" + 8 ruby/lib/rubygems/stub_specification.rb:123 + + 8 "integer" + 7 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 7 "bigint" + 5 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + + 7 "bus_id" + 2 activerecord-5.2.8.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:24 + 1 activemodel-5.2.8.1/lib/active_model/attribute_methods.rb:380 + 1 activerecord-5.2.8.1/lib/active_record/attribute_methods.rb:29 + 1 activerecord-5.2.8.1/lib/active_record/attribute_methods/time_zone_conversion.rb:84 + 1 activerecord-5.2.8.1/lib/active_record/reflection.rb:658 + 1 activesupport-5.2.8.1/lib/active_support/inflector/methods.rb:251 + + 7 "index" + 5 actionpack-5.2.8.1/lib/action_dispatch/routing/mapper.rb:337 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 rake-13.1.0/lib/rake/file_list.rb:44 + + 7 "tmp" + 4 rake-13.1.0/lib/rake/file_list.rb:423 + 1 bootsnap-1.17.0/lib/bootsnap/setup.rb:3 + 1 rake-13.1.0/lib/rake/dsl_definition.rb:136 + 1 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + + 6 "4" + 1 ruby/lib/securerandom.rb:309 + 1 ruby/lib/uri/common.rb:342 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/range/each.rb:9 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:400 + 1 ruby/lib/rubygems/version.rb:206 + 1 ruby/lib/rubygems/version.rb:229 + + 6 "May" + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 2 bootsnap-1.17.0/lib/bootsnap/compile_cache/yaml.rb:286 + 2 date-3.3.4/lib/date_core.bundle:0 + + 6 "a" + 1 ruby/lib/securerandom.rb:309 + 1 ruby/lib/uri/ftp.rb:43 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/range/each.rb:9 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:400 + 1 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + + 6 "d" + 1 ruby/lib/securerandom.rb:309 + 1 ruby/lib/uri/ftp.rb:43 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/range/each.rb:9 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:400 + 1 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + + 6 "ext/ddtrace_profiling_native_extension/extconf.rb" + 6 ruby/lib/rubygems/stub_specification.rb:123 + + 6 "ext/racc/cparse/extconf.rb" + 6 ruby/lib/rubygems/stub_specification.rb:123 + + 6 "info" + 3 actionpack-5.2.8.1/lib/action_dispatch/journey/scanner.rb:54 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 ruby_dep-1.5.0/lib/ruby_dep/logger.rb:20 + 1 ruby/lib/rubygems/core_ext/kernel_require.rb:86 + + 6 "z" + 1 ruby/lib/securerandom.rb:309 + 1 ruby/lib/uri/common.rb:342 + 1 activesupport-5.2.8.1/lib/active_support/core_ext/range/each.rb:9 + 1 bootsnap-1.17.0/lib/bootsnap/compile_cache/iseq.rb:53 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:400 + 1 sprockets-4.2.1/lib/sprockets/source_map_utils.rb:401 + diff --git a/PROFILE2.html b/PROFILE2.html new file mode 100644 index 00000000..765807db --- /dev/null +++ b/PROFILE2.html @@ -0,0 +1,35672 @@ + + + + + + +
+
+
+
Profile Report
+

Wall_time

+
+
+
Monday, November 13 at 12:12:17 AM (CET)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Thread IDFiber IDTotal
6206008.269627634988865
62048408.010245030018268
10660106407.742097116977675
10700106807.742046277009649
10740107207.742028401000425
11100110807.719550192006864
11140111207.719511652016081
11360113407.636787551018642
+ + + +

Thread 620, Fiber: 600

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%8.270.000.008.271 + + RubyProf::Cmd#run + + 303
  8.270.000.008.271/31Kernel#load303 +
  0.000.000.000.002/31Rails::Engine#run_tasks_blocks656
  0.000.000.000.003/31BasicObject#instance_exec
  0.000.000.000.0011/31ActiveSupport::Dependencies::Loadable#load_dependency285
  0.010.000.000.0112/31Kernel#require_without_bootsnap
  0.040.000.000.041/31Kernel#load
  0.230.000.000.231/31<Module::Rake>#load_rakefile29
  8.270.000.008.271/31RubyProf::Cmd#run303
100.00%0.02%8.270.000.008.2731 + + *Kernel#load + +
  8.040.000.008.041/1Rake::Application#run9 +
  0.350.000.000.353/201Kernel#require_relative7 +
  0.080.000.000.0810/2504Kernel#require8 +
  0.040.000.000.041/31Kernel#load3 +
  0.020.000.000.021/1Rails::Engine#load_tasks20 +
  0.010.000.000.0112/33Rake::DSL#namespace5 +
  0.010.000.000.011/2Bundler::LockfileParser#initialize10 +
  0.000.000.000.002/2ActionDispatch::Routing::RouteSet#draw1 +
  0.000.000.000.001/2<Module::Bundler>#default_lockfile10 +
  0.000.000.000.0029/1349Bootsnap::CompileCache::ISeq::InstructionSequenceMixin#load_iseq +
  0.000.000.000.0016/16Rake::Application#rakefile_location24 +
  0.000.000.000.0017/221<Module::Rake>#application9 +
  0.000.000.000.0011/99Rake::DSL#task7 +
  0.000.000.000.0016/68Kernel#caller24 +
  0.000.000.000.0016/895<Class::File>#directory?25 +
  0.000.000.000.001/55Kernel#gem3 +
  0.000.000.000.001/12Pathname#join9 +
  0.000.000.000.001/4Pathname#read10 +
  0.000.000.000.003/232ActiveSupport::OrderedOptions#method_missing4 +
  0.000.000.000.009/44Rake::DSL#desc9 +
  0.000.000.000.001/5<Class::Rake::Task>#task_defined?16 +
  0.000.000.000.007/19573<Module::Rails>#application20 +
  0.000.000.000.001/2<Class::Rake::Task>#[]17 +
  0.000.000.000.001/113Rake::Task#enhance17 +
  0.000.000.000.001/1587<Class::File>#expand_path3 +
  0.000.000.000.003/209Rails::Railtie::Configuration#method_missing4 +
  0.000.000.000.0016/137<Class::File>#dirname24 +
  0.000.000.000.004/236IO#set_encoding +
  0.000.000.000.001/9779<Module::Rails>#root9 +
  0.000.000.000.002/12Rails::Engine#routes1 +
  0.000.000.000.001/68ActiveSupport::LazyLoadHooks#on_load7 +
  0.000.000.000.004/9958Rails::Application#config4 +
  0.000.000.000.003/20034Module#method_added8 +
  0.000.000.000.001/189188Kernel#hash5 +
  8.040.000.008.041/1Kernel#load
97.18%0.00%8.040.000.008.041 + + Rake::Application#run + + 79
  8.040.000.008.041/3Rake::Application#standard_exception_handling80 +
  0.000.000.000.001/3Rake::Application#init89
  0.230.000.000.231/3Rake::Application#load_rakefile125
  8.040.000.008.041/3Rake::Application#run80
97.18%0.00%8.040.000.008.043 + + *Rake::Application#standard_exception_handling + + 207
  7.810.000.007.811/1Rake::Application#top_level83 +
  0.230.000.000.231/1Rake::Application#load_rakefile82 +
  0.230.000.000.231/1Rake::Application#raw_load_rakefile126 +
  0.000.000.000.001/1Rake::Application#init81 +
  0.000.000.000.001/1Rake::Application#handle_options92 +
  0.000.000.000.001/1Rake::Application#collect_command_line_tasks98 +
  0.000.000.000.001/1Rake::Application#load_debug_at_stop_feature97 +
  0.000.000.000.003/39253Bundler::SharedHelpers#pwd71
  0.010.000.000.0195/39253ActiveRecord::ModelSchema::ClassMethods#load_schema456
  0.200.030.000.1739153/39253MonitorMixin#synchronize202
  7.900.000.007.902/39253Rake::Task#invoke_with_call_chain199
94.42%0.36%7.810.030.007.7839253 + + *Monitor#synchronize + +
  7.810.000.007.812/2Rake::Task#execute219 +
  0.120.110.010.0019548/19550IO#write42 +
  0.090.000.000.092/2Rake::Task#invoke_prerequisites218 +
  0.030.010.000.019794/9794ActiveSupport::Concurrency::ShareLock#wait_for190 +
  0.010.000.000.015/5ActiveRecord::AttributeDecorators::ClassMethods#load_schema!459 +
  0.010.010.000.0019588/46694Hash#delete174 +
  0.010.010.000.0019548/19548Logger::LogDevice#check_shift_log36 +
  0.010.000.000.009799/9799MonitorMixin::ConditionVariable#broadcast109 +
  0.000.000.000.0019548/148727Kernel#respond_to?34 +
  0.000.000.000.0019605/217088<Class::Thread>#current78 +
  0.000.000.000.003/3<Class::Pathname>#pwd72 +
  0.000.000.000.005/5ActiveSupport::Concurrency::ShareLock#busy_for_exclusive?79 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::ConnectionPool::ConnectionLeasingQueue#internal_poll145 +
  0.000.000.000.005/5ActiveSupport::Concurrency::ShareLock#eligible_waiters?104 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::AbstractAdapter#lease859 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::ConnectionPool#adopt_connection857 +
  0.000.000.000.002/2Rake::Task#needed?219 +
  0.000.000.000.002/4<Object::OpenStruct>#trace201 +
  0.000.000.000.002/57Rake::Application#options201 +
  0.000.000.000.001/15431Numeric#zero?845 +
  7.810.000.007.811/1Rake::Application#standard_exception_handling83
94.42%0.00%7.810.000.007.811 + + Rake::Application#top_level + + 131
  7.810.000.007.811/1Rake::Application#run_with_threads132 +
  7.810.000.007.811/1Rake::Application#top_level132
94.42%0.00%7.810.000.007.811 + + Rake::Application#run_with_threads + + 144
  7.810.000.007.811/1Rake::Application#invoke_task138 +
  0.000.000.000.003/3<Object::OpenStruct>#job_stats145 +
  0.000.000.000.005/57Rake::Application#options145 +
  0.000.000.000.001/1<Object::OpenStruct>#show_tasks133 +
  0.000.000.000.001/1<Object::OpenStruct>#show_prereqs135 +
  7.810.000.007.811/1Rake::Application#run_with_threads138
94.42%0.00%7.810.000.007.811 + + Rake::Application#invoke_task + + 179
  7.810.000.007.811/1Rake::Task#invoke182 +
  0.000.000.000.001/4Rake::TaskManager#[]181 +
  0.000.000.000.001/1Rake::Application#parse_task_string180 +
  7.810.000.007.811/1Rake::Application#invoke_task182
94.42%0.00%7.810.000.007.811 + + Rake::Task#invoke + + 186
  7.810.000.007.811/2Rake::Task#invoke_with_call_chain188 +
  0.000.000.000.001/3Rake::TaskArguments#initialize187 +
  0.000.000.000.001/2Rake::Task#arg_names187 +
  0.090.000.000.091/2Rake::Task#invoke_prerequisites243
  7.810.000.007.811/2Rake::Task#invoke188
94.42%0.00%7.810.000.007.812 + + *Rake::Task#invoke_with_call_chain + + 197
  7.900.000.007.902/39253Monitor#synchronize199 +
  0.000.000.000.002/2<Class::Rake::InvocationChain>#append198 +
  7.810.000.007.812/2Monitor#synchronize
94.42%0.00%7.810.000.007.812 + + Rake::Task#execute + + 8
  7.810.000.007.812/2Rake::Task#execute_without_timestamps10 +
  0.000.000.000.002/2Kernel#printf12 +
  0.000.000.000.002/2Time#-11 +
  0.000.000.000.004/22814<Class::Time>#now9 +
  0.000.000.000.002/2Rake::Task#name12 +
  7.810.000.007.812/2Rake::Task#execute10
94.42%0.00%7.810.000.007.812 + + Rake::Task#execute_without_timestamps + + 270
  7.710.000.007.711/1DatabaseReloader#call6 +
  0.090.000.000.091/1Rails::Application#require_environment!520 +
  0.010.000.000.011/1DatabaseReloader#initialize6 +
  0.000.000.000.002/2<Class::Hash>#try_convert278 +
  0.000.000.000.001/1Rake::TaskArguments#method_missing6 +
  0.000.000.000.002/2<Object::OpenStruct>#dryrun272 +
  0.000.000.000.001/68ActiveSupport::LazyLoadHooks#on_load518 +
  0.000.000.000.004/57Rake::Application#options272 +
  0.000.000.000.002/4<Object::OpenStruct>#trace276 +
  7.710.000.007.711/1Rake::Task#execute_without_timestamps6
93.25%0.00%7.710.000.007.711 + + DatabaseReloader#call + + 16
  7.410.000.007.411/3256ActiveRecord::Transactions::ClassMethods#transaction28 +
  0.200.000.000.205/5ActiveRecord::Querying#delete_all17 +
  0.080.000.000.085/15ActiveSupport::Dependencies::ModuleConstMissing#const_missing17 +
  0.020.000.000.021/1<Class::ActiveRecord::Base>#import25 +
  0.000.000.000.001/1Enumerator#with_index24 +
  0.000.000.000.001/15685ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#active?253
  0.000.000.000.001/15685ActiveRecord::ConnectionAdapters::TransactionManager#commit_transaction213
  0.000.000.000.001/15685ActiveRecord::ConnectionAdapters::TransactionManager#begin_transaction197
  0.030.000.000.035887/15685ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#prepare_statement672
  2.430.000.002.439794/15685ActiveSupport::Notifications::Instrumenter#instrument580
  7.410.000.007.411/15685ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction236
92.00%0.05%7.610.000.007.6015685 + + *ActiveSupport::Concurrency::LoadInterlockAwareMonitor#synchronize + + 20
  9.870.010.009.8615685/31370<Class::Thread>#handle_interrupt21 +
  9.850.030.009.8215685/31370<Class::Thread>#handle_interrupt
  9.870.010.009.8615685/31370ActiveSupport::Concurrency::LoadInterlockAwareMonitor#synchronize21
92.00%0.53%7.610.040.007.5631370 + + *<Class::Thread>#handle_interrupt + +
  9.850.030.009.8215685/31370<Class::Thread>#handle_interrupt25 +
  6.880.000.006.883255/3255ActiveRecord::Querying#find_or_create_by30 +
  2.400.000.002.409794/9794ActiveSupport::Dependencies::Interlock#permit_concurrent_loads74 +
  0.340.000.000.341/1<Class::ActiveRecord::Base>#import!52 +
  0.170.000.000.171000/4255ActiveRecord::Inheritance::ClassMethods#new41 +
  0.010.010.000.005887/5887ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#sql_key673 +
  0.010.000.000.005887/5887ActiveRecord::ConnectionAdapters::StatementPool#key?674 +
  0.010.000.000.0015685/15685ActiveSupport::Concurrency::LoadInterlockAwareMonitor#mon_enter22 +
  0.000.000.000.005887/5887ActiveRecord::ConnectionAdapters::StatementPool#[]685 +
  0.000.000.000.004229/4229Kernel#to_s37 +
  0.000.000.000.004229/70355ActiveSupport::NumericWithFormat#to_s37 +
  0.000.000.000.0015685/15685Monitor#mon_exit29 +
  0.000.000.000.009794/9800<Module::ActiveSupport::Dependencies>#interlock74 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::TransactionManager#begin_transaction238 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::RealTransaction#initialize201 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::TransactionManager#commit_transaction252 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::RealTransaction#commit222 +
  0.000.000.000.004/4PG::Connection#prepare677 +
  0.000.000.000.001/1PG::Connection#query254 +
  0.000.000.000.004/4ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::StatementPool#[]=683 +
  0.000.000.000.004/4ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::StatementPool#next_key675 +
  0.000.000.000.004/4PG::Connection#get_last_result682 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::Transaction#commit_records223 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::Transaction#before_commit_records217 +
  0.000.000.000.001/6512ActiveRecord::ConnectionAdapters::TransactionManager#current_transaction198 +
  0.000.000.000.001/2708Object#present?57 +
  0.000.000.000.001/1Thread#status248 +
  0.000.000.000.001/10343Array#push207 +
  0.000.000.000.001/2ActiveRecord::ConnectionAdapters::NullTransaction#joinable?198 +
  0.000.000.000.001/217088<Class::Thread>#current248 +
  0.000.000.000.001/39677Array#last214 +
  0.000.000.000.001/11950Array#pop219 +
  3.960.000.003.963255/3256ActiveRecord::Transactions#with_transaction_returning_status385
  7.410.000.007.411/3256DatabaseReloader#call28
89.61%0.02%7.410.000.007.413256 + + *ActiveRecord::Transactions::ClassMethods#transaction + + 211
  11.350.010.0011.343256/3256ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction212 +
  0.030.000.000.023256/31368ActiveRecord::ConnectionHandling#connection212 +
  11.350.010.0011.343256/3256ActiveRecord::Transactions::ClassMethods#transaction212
89.61%0.06%7.410.010.007.413256 + + *ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction + + 260
  7.410.000.007.411/1ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction267 +
  3.870.000.003.863255/3255ActiveRecord::Validations#save310 +
  0.060.000.000.063255/3255ActiveRecord::Transactions#add_to_transaction386 +
  0.000.000.000.003256/6511ActiveRecord::ConnectionAdapters::DatabaseStatements#current_transaction261 +
  0.000.000.000.003255/3255ActiveRecord::ConnectionAdapters::Transaction#joinable?261 +
  0.000.000.000.001/2ActiveRecord::ConnectionAdapters::NullTransaction#joinable?261 +
  7.410.000.007.411/1ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction267
89.61%0.00%7.410.000.007.411 + + ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction + + 235
  7.410.000.007.411/15685ActiveSupport::Concurrency::LoadInterlockAwareMonitor#synchronize236 +
  6.880.000.006.883255/3255<Class::Thread>#handle_interrupt
83.17%0.02%6.880.000.006.883255 + + ActiveRecord::Querying#find_or_create_by + + 8
  6.830.000.006.833255/3255ActiveRecord::Relation#find_or_create_by8 +
  0.050.000.000.053255/9150ActiveRecord::Scoping::Named::ClassMethods#all8 +
  6.830.000.006.833255/3255ActiveRecord::Querying#find_or_create_by8
82.56%0.03%6.830.000.006.833255 + + ActiveRecord::Relation#find_or_create_by + + 163
  4.330.000.004.333255/3255ActiveRecord::Relation#create164 +
  2.500.000.002.503255/3255ActiveRecord::FinderMethods#find_by164 +
  4.330.000.004.333255/3255ActiveRecord::Relation#find_or_create_by164
52.34%0.02%4.330.000.004.333255 + + ActiveRecord::Relation#create + + 81
  4.330.010.004.323255/3878ActiveRecord::Relation#scoping85 +
  0.000.000.000.003255/325297Kernel#is_a?82 +
  0.000.000.000.002/3878ActiveRecord::Delegation::ClassSpecificRelation#method_missing114
  0.000.000.000.009/3878City::ActiveRecord_Relation#name97
  0.000.000.000.00612/3878Bus::ActiveRecord_Relation#name97
  4.330.010.004.323255/3878ActiveRecord::Relation#create85
52.31%0.07%4.330.010.004.323878 + + *ActiveRecord::Relation#scoping + + 279
  4.280.000.004.283255/3255ActiveRecord::Persistence::ClassMethods#create85 +
  0.020.000.000.023255/3255ActiveRecord::Relation#values_for_create85 +
  0.020.000.000.017756/7756ActiveRecord::Scoping::ClassMethods#current_scope=280 +
  0.010.000.000.013878/19915ActiveRecord::Scoping::ClassMethods#current_scope280 +
  0.000.000.000.00623/43923Module#name114 +
  4.280.000.004.283255/3255ActiveRecord::Relation#scoping85
51.73%0.03%4.280.000.004.283255 + + ActiveRecord::Persistence::ClassMethods#create + + 31
  4.000.000.004.003255/3255ActiveRecord::Suppressor#save36 +
  0.270.010.000.263255/4255ActiveRecord::Inheritance::ClassMethods#new35 +
  0.000.000.000.003255/325297Kernel#is_a?32 +
  0.000.000.000.001/9774ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#add_pg_decoders826
  0.000.000.000.001/9774ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#load_additional_types587
  0.190.000.000.195/9774ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_delete94
  3.940.030.003.909767/9774ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_query81
49.95%0.42%4.130.030.004.109774 + + ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#execute_and_clear + + 594
  2.400.000.002.395887/5887ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_cache600 +
  1.590.000.001.593887/3887ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_no_cache596 +
  0.080.010.000.0618899/18916ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#get_oid_type87 +
  0.010.010.000.009767/9781PG::Result#values89 +
  0.000.000.000.009767/9767ActiveRecord::Result#initialize89 +
  0.000.000.000.009774/9774PG::Result#clear603 +
  0.000.000.000.009767/9767PG::Result#fields83 +
  0.000.000.000.0018899/18948PG::Result#ftype85 +
  0.000.000.000.0018899/18899PG::Result#fmod86 +
  0.000.000.000.009774/9774ActiveRecord::ConnectionAdapters::AbstractAdapter#without_prepared_statement?595 +
  0.000.000.000.001/645ActiveSupport::Dependencies::Loadable#require89 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::PostgreSQL::OID::TypeMapInitializer#run588 +
  0.000.000.000.001/3PG::Result#each827 +
  0.000.000.000.005/5PG::Result#cmd_tuples94 +
  0.000.000.000.001/6446Array#compact827 +
  4.000.000.004.003255/3255ActiveRecord::Persistence::ClassMethods#create36
48.43%0.04%4.000.000.004.003255 + + ActiveRecord::Suppressor#save + + 43
  4.000.000.004.003255/3255ActiveRecord::Transactions#save44 +
  0.000.000.000.003254/3255<Class::ActiveRecord::SuppressorRegistry>#suppressed44 +
  0.000.000.000.003255/43923Module#name44 +
  0.000.000.000.003255/371594Kernel#class44 +
  0.000.000.000.001/4ActiveSupport::PerThreadRegistry#method_missing44 +
  4.000.000.004.003255/3255ActiveRecord::Suppressor#save44
48.34%0.01%4.000.000.004.003255 + + ActiveRecord::Transactions#save + + 308
  4.000.000.003.993255/3255ActiveRecord::Transactions#rollback_active_record_state!309 +
  4.000.000.003.993255/3255ActiveRecord::Transactions#save309
48.33%0.03%4.000.000.003.993255 + + ActiveRecord::Transactions#rollback_active_record_state! + + 323
  3.970.010.003.973255/3255ActiveRecord::Transactions#with_transaction_returning_status310 +
  0.020.000.000.023255/6510ActiveRecord::Transactions#remember_transaction_record_state324 +
  0.000.000.000.003255/3255ActiveRecord::Transactions#clear_transaction_record_state330 +
  3.970.010.003.973255/3255ActiveRecord::Transactions#rollback_active_record_state!310
48.03%0.08%3.970.010.003.973255 + + ActiveRecord::Transactions#with_transaction_returning_status + + 383
  3.960.000.003.963255/3256ActiveRecord::Transactions::ClassMethods#transaction385 +
  0.000.000.000.003255/3255ActiveRecord::ConnectionAdapters::TransactionState#committed?392 +
  0.000.000.000.003255/371594Kernel#class385 +
  0.000.000.000.001/23541<Class::ActiveSupport::Reloader>#prepare!89
  0.000.000.000.001/23541ActiveRecord::ConnectionAdapters::AbstractAdapter#_run_checkout_callbacks816
  0.010.000.000.002632/23541ActiveRecord::Base#_run_find_callbacks816
  0.020.010.000.016887/23541ActiveRecord::Base#_run_initialize_callbacks816
  0.110.000.000.101000/23541ActiveRecord::Import::Validator#valid_model?86
  1.670.000.001.663255/23541ActiveRecord::Base#_run_create_callbacks816
  1.870.010.001.863255/23541ActiveRecord::Base#_run_save_callbacks816
  1.930.010.001.923255/23541ActiveRecord::Base#_run_validate_callbacks816
  1.960.000.001.953255/23541ActiveRecord::Base#_run_validation_callbacks816
47.72%0.42%3.950.040.003.9123541 + + *ActiveSupport::Callbacks#run_callbacks + + 94
  2.150.040.002.128727/8727ActiveSupport::Callbacks::CallbackSequence#invoke_before131 +
  1.940.000.001.943255/3255ActiveModel::Validations#run_validations!118 +
  1.710.000.001.713255/3255ActiveRecord::Persistence#create_or_update342 +
  1.650.000.001.643255/3255ActiveRecord::AttributeMethods::Dirty#_create_record346 +
  0.030.020.000.0123539/33304ActiveRecord::Base#__callbacks95 +
  0.020.010.000.018727/8727ActiveSupport::Callbacks::CallbackSequence#invoke_after133 +
  0.010.000.000.007727/7772<Class::Proc>#new103 +
  0.000.000.000.008727/8727<Class::ActiveSupport::Callbacks::Filters::Environment>#new100 +
  0.000.000.000.0023541/33306ActiveSupport::Callbacks::CallbackChain#empty?97 +
  0.000.000.000.0023541/64127Kernel#block_given?98 +
  0.000.000.000.008727/8727ActiveSupport::Callbacks::CallbackChain#compile101 +
  0.000.000.000.0023541/24391Symbol#to_sym95 +
  0.000.000.000.008727/8727ActiveSupport::Callbacks::CallbackSequence#final?130 +
  0.000.000.000.007727/62490ActiveSupport::Callbacks::Filters::Environment#halted132 +
  0.000.000.000.007727/36642ActiveSupport::Callbacks::Filters::Environment#value134 +
  0.000.000.000.001000/1172Kernel#method88 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::AbstractAdapter#verify!879 +
  0.000.000.000.001000/1000Method#arity88 +
  0.000.000.000.001000/148727Kernel#respond_to?94 +
  0.000.000.000.001/1ActiveSupport::ExecutionWrapper#__callbacks95 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::AbstractAdapter#__callbacks95 +
  0.290.000.000.29625/9767ActiveRecord::ConnectionAdapters::DatabaseStatements#select478
  1.150.000.001.153255/9767ActiveRecord::ConnectionAdapters::DatabaseStatements#exec_insert130
  2.500.000.002.505887/9767ActiveRecord::ConnectionAdapters::DatabaseStatements#select_prepared482
47.67%0.04%3.940.000.003.949767 + + ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_query + + 80
  3.940.030.003.909767/9774ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#execute_and_clear81 +
  3.870.000.003.863255/3255ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction310
46.74%0.04%3.870.000.003.863255 + + ActiveRecord::Validations#save + + 45
  1.990.000.001.983255/3255ActiveRecord::Validations#perform_validations46 +
  1.880.000.001.873255/3255ActiveRecord::Persistence#save46 +
  0.000.000.000.001/15682ActiveRecord::ConnectionAdapters::ConnectionHandler#establish_connection988
  0.100.010.000.095887/15682ActiveRecord::Querying#find_by_sql51
  3.770.010.003.769794/15682ActiveRecord::ConnectionAdapters::AbstractAdapter#log571
46.73%0.20%3.860.020.003.8515682 + + ActiveSupport::Notifications::Instrumenter#instrument + + 19
  2.430.000.002.439794/15685ActiveSupport::Concurrency::LoadInterlockAwareMonitor#synchronize580 +
  1.230.010.001.2315682/15682ActiveSupport::Notifications::Instrumenter#finish_with_state29 +
  0.100.010.000.1015682/15682ActiveSupport::Notifications::Instrumenter#start21 +
  0.080.000.000.085887/5887ActiveRecord::Result#each52 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::ConnectionPool#initialize989 +
  0.000.000.000.001/23Concurrent::Collection::MriMapBackend#[]=989 +
  0.000.000.000.001/31374ActiveRecord::ConnectionAdapters::ConnectionHandler#owner_to_pool989 +
  0.000.000.000.006/9794ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#execute73
  0.020.000.000.0214/9794ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#query61
  1.520.000.001.523887/9794ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_no_cache609
  2.230.000.002.235887/9794ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_cache620
45.62%0.07%3.770.010.003.779794 + + ActiveRecord::ConnectionAdapters::AbstractAdapter#log + + 570
  3.770.010.003.769794/15682ActiveSupport::Notifications::Instrumenter#instrument571 +
  0.000.000.000.009794/9819Kernel#object_id571 +
  0.020.000.000.022/6512ActiveRecord::ConnectionAdapters::DatabaseStatements#select_rows94
  0.310.000.000.31623/6512ActiveRecord::ConnectionAdapters::DatabaseStatements#select_one77
  2.730.000.002.735887/6512ActiveRecord::Querying#find_by_sql41
37.01%0.07%3.060.010.003.056512 + + ActiveRecord::ConnectionAdapters::QueryCache#select_all + + 95
  3.050.010.003.056512/6512ActiveRecord::ConnectionAdapters::DatabaseStatements#select_all106 +
  3.050.010.003.056512/6512ActiveRecord::ConnectionAdapters::QueryCache#select_all106
36.94%0.08%3.050.010.003.056512 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#select_all + + 59
  2.500.000.002.505887/5887ActiveRecord::ConnectionAdapters::DatabaseStatements#select_prepared68 +
  0.290.000.000.29625/625ActiveRecord::ConnectionAdapters::DatabaseStatements#select70 +
  0.250.010.000.246512/9772ActiveRecord::ConnectionAdapters::DatabaseStatements#to_sql_and_binds61 +
  0.000.000.000.006512/6512ActiveRecord::ConnectionAdapters::DatabaseStatements#arel_from_relation60 +
  0.870.010.000.872632/5887ActiveRecord::StatementCache#execute108
  2.040.010.002.033255/5887ActiveRecord::Relation#skip_query_cache_if_necessary560
35.29%0.25%2.920.020.002.905887 + + ActiveRecord::Querying#find_by_sql + + 40
  2.730.000.002.735887/6512ActiveRecord::ConnectionAdapters::QueryCache#select_all41 +
  0.100.010.000.095887/15682ActiveSupport::Notifications::Instrumenter#instrument51 +
  0.040.000.000.045887/31368ActiveRecord::ConnectionHandling#connection41 +
  0.010.000.000.015887/5889<Module::ActiveSupport::Notifications>#instrumenter44 +
  0.010.000.000.005887/5887ActiveRecord::Sanitization::ClassMethods#sanitize_sql41 +
  0.010.000.000.005887/41597ActiveRecord::ModelSchema::ClassMethods#attribute_types43 +
  0.000.000.000.0015019/46694Hash#delete43 +
  0.000.000.000.005887/42966Hash#initialize_copy42 +
  0.000.000.000.0011774/43923Module#name41 +
  0.000.000.000.005887/5887ActiveRecord::Result#length47 +
  0.350.000.000.35623/3878ActiveRecord::FinderMethods#exists?322
  2.210.010.002.203255/3878ActiveRecord::Relation#exec_queries547
30.94%0.13%2.560.010.002.553878 + + ActiveRecord::Relation#skip_query_cache_if_necessary + + 578
  2.040.010.002.033255/5887ActiveRecord::Querying#find_by_sql560 +
  0.310.000.000.31623/623ActiveRecord::ConnectionAdapters::DatabaseStatements#select_one322 +
  0.160.000.000.163878/3884ActiveRecord::QueryMethods#arel560 +
  0.010.000.000.016510/9770ActiveRecord::Relation#eager_loading?549 +
  0.000.000.000.00623/7135ActiveRecord::Delegation#connection322 +
  0.000.000.000.00612/612Bus::ActiveRecord_Relation#name322 +
  0.000.000.000.003878/3878ActiveRecord::QueryMethods#skip_query_cache_value579 +
  0.000.000.000.003255/8521ActiveRecord::QueryMethods#preload_values563 +
  0.000.000.000.003255/18291ActiveRecord::QueryMethods#includes_values564 +
  0.000.000.000.003255/3255ActiveRecord::QueryMethods#readonly_value571 +
  0.000.000.000.003255/17049Kernel#freeze560 +
  0.000.000.000.002/2ActiveRecord::Delegation::ClassSpecificRelation#method_missing322 +
  0.000.000.000.009/9City::ActiveRecord_Relation#name322 +
  2.500.000.002.505887/5887ActiveRecord::ConnectionAdapters::DatabaseStatements#select_all68
30.24%0.03%2.500.000.002.505887 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#select_prepared + + 481
  2.500.000.002.505887/9767ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_query482 +
  2.500.000.002.503255/3255ActiveRecord::Relation#find_or_create_by164
30.20%0.03%2.500.000.002.503255 + + ActiveRecord::FinderMethods#find_by + + 80
  2.230.000.002.233255/3255ActiveRecord::FinderMethods#take81 +
  0.270.000.000.263255/3255ActiveRecord::QueryMethods#where81 +
  2.400.000.002.409794/9794<Class::Thread>#handle_interrupt
29.06%0.05%2.400.000.002.409794 + + ActiveSupport::Dependencies::Interlock#permit_concurrent_loads + + 46
  2.400.010.002.399794/9794ActiveSupport::Concurrency::ShareLock#yield_shares47 +
  2.400.010.002.399794/9794ActiveSupport::Dependencies::Interlock#permit_concurrent_loads47
29.01%0.15%2.400.010.002.399794 + + ActiveSupport::Concurrency::ShareLock#yield_shares + + 171
  1.381.360.020.005887/5887PG::Connection#exec_prepared622 +
  0.920.910.010.003887/3887PG::Connection#exec_params611 +
  0.060.010.000.0619588/39153MonitorMixin#synchronize173 +
  0.020.020.000.0020/20PG::Connection#async_exec75 +
  0.000.000.000.0014/14ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#result_as_array63 +
  2.400.000.002.395887/5887ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#execute_and_clear600
28.97%0.06%2.400.000.002.395887 + + ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_cache + + 616
  2.230.000.002.235887/9794ActiveRecord::ConnectionAdapters::AbstractAdapter#log620 +
  0.120.010.000.115887/9774ActiveRecord::ConnectionAdapters::Quoting#type_casted_binds618 +
  0.040.000.000.035887/5887ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#prepare_statement617 +
  2.230.000.002.233255/3255ActiveRecord::FinderMethods#find_by81
26.97%0.02%2.230.000.002.233255 + + ActiveRecord::FinderMethods#take + + 102
  2.230.000.002.233255/3255ActiveRecord::FinderMethods#find_take103 +
  2.230.000.002.233255/3255ActiveRecord::FinderMethods#take103
26.95%0.04%2.230.000.002.233255 + + ActiveRecord::FinderMethods#find_take + + 500
  2.210.000.002.213255/3255ActiveRecord::Relation#records504 +
  0.010.000.000.013255/3256ActiveRecord::QueryMethods#limit504 +
  2.210.000.002.213255/3255ActiveRecord::FinderMethods#find_take504
26.77%0.02%2.210.000.002.213255 + + ActiveRecord::Relation#records + + 199
  2.210.000.002.213255/3255ActiveRecord::Relation#load200 +
  2.210.000.002.213255/3255ActiveRecord::Relation#records200
26.75%0.02%2.210.000.002.213255 + + ActiveRecord::Relation#load + + 421
  2.210.000.002.213255/3255ActiveRecord::Relation#exec_queries422 +
  2.210.000.002.213255/3255ActiveRecord::Relation#load422
26.73%0.01%2.210.000.002.213255 + + ActiveRecord::Relation#exec_queries + + 546
  2.210.010.002.203255/3878ActiveRecord::Relation#skip_query_cache_if_necessary547 +
  2.150.040.002.128727/8727ActiveSupport::Callbacks#run_callbacks131
26.06%0.43%2.150.040.002.128727 + + ActiveSupport::Callbacks::CallbackSequence#invoke_before + + 512
  2.110.030.002.0925849/25873Kernel#catch605 +
  0.000.000.000.0051698/62490ActiveSupport::Callbacks::Filters::Environment#halted195 +
  0.000.000.000.0025849/28915ActiveSupport::Callbacks::Filters::Environment#target193 +
  0.000.000.000.0025849/36642ActiveSupport::Callbacks::Filters::Environment#value194 +
  0.000.000.000.001/25873Kernel#catch
  0.000.000.000.001/25873OptionParser#parse_in_order1575
  0.000.000.000.0022/25873<Module::Forwardable>#_valid_method?4
  2.110.030.002.0925849/25873ActiveSupport::Callbacks::CallbackSequence#invoke_before605
25.53%0.31%2.110.030.002.0925873 + + *Kernel#catch + +
  1.940.020.001.9218123/18123ActiveModel::EachValidator#validate426 +
  0.080.000.000.082632/2632BusesService#autosave_associated_records_for_bus426 +
  0.030.020.000.0125849/31367ActiveSupport::Callbacks::CallTemplate#expand425 +
  0.030.000.000.032632/2632BusesService#autosave_associated_records_for_service426 +
  0.000.000.000.00613/613Bus#validate_associated_records_for_trips426 +
  0.000.000.000.00613/613Bus#validate_associated_records_for_services426 +
  0.000.000.000.00613/613Bus#validate_associated_records_for_buses_services426 +
  0.000.000.000.00613/613ActiveRecord::AutosaveAssociation#before_save_collection_association426 +
  0.000.000.000.0022/95Kernel#eval5 +
  0.000.000.000.0010/10City#name_has_no_spaces426 +
  0.000.000.000.001/25873Kernel#catch1629 +
  0.000.000.000.001/163OptionParser#visit1630 +
  0.000.000.000.0022/69Kernel#binding5 +
  0.000.000.000.002/1339Array#shift1576 +
  0.000.000.000.0022/94920Symbol#to_s5 +
  0.000.000.000.002/44143Regexp#===1577 +
  0.000.000.000.001/106Array#<<1634 +
  1.990.000.001.983255/3255ActiveRecord::Validations#save46
24.02%0.02%1.990.000.001.983255 + + ActiveRecord::Validations#perform_validations + + 83
  1.980.000.001.983255/3255ActiveRecord::Validations#valid?84 +
  1.980.000.001.983255/3255ActiveRecord::Validations#perform_validations84
24.00%0.05%1.980.000.001.983255 + + ActiveRecord::Validations#valid? + + 65
  1.970.000.001.973255/3255ActiveModel::Validations#valid?67 +
  0.000.000.000.003255/7510ActiveModel::Errors#empty?68 +
  0.000.000.000.003255/3255ActiveRecord::Validations#default_validation_context66 +
  0.000.000.000.003255/13378ActiveModel::Validations#errors68 +
  1.970.000.001.973255/3255ActiveRecord::Validations#valid?67
23.85%0.03%1.970.000.001.973255 + + ActiveModel::Validations#valid? + + 336
  1.960.000.001.963255/3255ActiveModel::Validations::Callbacks#run_validations!339 +
  0.010.000.000.013255/13378ActiveModel::Validations#errors338 +
  0.000.000.000.003255/4255ActiveModel::Errors#clear338 +
  1.960.000.001.963255/3255ActiveModel::Validations#valid?339
23.67%0.01%1.960.000.001.963255 + + ActiveModel::Validations::Callbacks#run_validations! + + 117
  1.960.000.001.963255/3255ActiveRecord::Base#_run_validation_callbacks118 +
  1.960.000.001.963255/3255ActiveModel::Validations::Callbacks#run_validations!118
23.66%0.01%1.960.000.001.963255 + + ActiveRecord::Base#_run_validation_callbacks + + 815
  1.960.000.001.953255/23541ActiveSupport::Callbacks#run_callbacks816 +
  1.940.000.001.943255/3255ActiveSupport::Callbacks#run_callbacks118
23.48%0.03%1.940.000.001.943255 + + ActiveModel::Validations#run_validations! + + 408
  1.930.000.001.933255/3255ActiveRecord::Base#_run_validate_callbacks409 +
  0.010.000.000.003255/7510ActiveModel::Errors#empty?410 +
  0.000.000.000.003255/13378ActiveModel::Validations#errors410 +
  1.940.020.001.9218123/18123Kernel#catch
23.41%0.23%1.940.020.001.9218123 + + ActiveModel::EachValidator#validate + + 148
  1.390.000.001.382632/2632BusesService::GeneratedAssociationMethods#service150 +
  0.380.000.000.38623/623ActiveRecord::Validations::UniquenessValidator#validate_each152 +
  0.050.000.000.045264/8519Object#blank?151 +
  0.040.010.000.0213887/13887ActiveRecord::Validations::PresenceValidator#validate_each152 +
  0.030.010.000.022000/2000ActiveModel::Validations::NumericalityValidator#validate_each152 +
  0.010.000.000.012632/2632BusesService::GeneratedAssociationMethods#bus150 +
  0.000.000.000.001226/1226#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x00000001048e13e0>#number150 +
  0.000.000.000.002000/2000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#from_id150 +
  0.000.000.000.00613/613#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x00000001048e13e0>#model150 +
  0.000.000.000.002000/2000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#price_cents150 +
  0.000.000.000.002000/2000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#to_id150 +
  0.000.000.000.002000/2000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#bus_id150 +
  0.000.000.000.002000/2000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#duration_minutes150 +
  0.000.000.000.00613/613ActiveModel::Validations::InclusionValidator#validate_each152 +
  0.000.000.000.001000/1000ActiveModel::Validations::FormatValidator#validate_each152 +
  0.000.000.000.002859/16935String#blank?151 +
  0.000.000.000.001000/1000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#start_time150 +
  0.000.000.000.0010000/18000Numeric#blank?151 +
  0.000.000.000.0020/30#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x00000001052d0248>#name150 +
  1.930.000.001.933255/3255ActiveModel::Validations#run_validations!409
23.37%0.01%1.930.000.001.933255 + + ActiveRecord::Base#_run_validate_callbacks + + 815
  1.930.010.001.923255/23541ActiveSupport::Callbacks#run_callbacks816 +
  1.880.000.001.873255/3255ActiveRecord::Validations#save46
22.69%0.02%1.880.000.001.873255 + + ActiveRecord::Persistence#save + + 274
  1.870.000.001.873255/3255ActiveRecord::Callbacks#create_or_update275 +
  1.870.000.001.873255/3255ActiveRecord::Persistence#save275
22.67%0.01%1.870.000.001.873255 + + ActiveRecord::Callbacks#create_or_update + + 341
  1.870.000.001.873255/3255ActiveRecord::Base#_run_save_callbacks342 +
  1.870.000.001.873255/3255ActiveRecord::Callbacks#create_or_update342
22.66%0.01%1.870.000.001.873255 + + ActiveRecord::Base#_run_save_callbacks + + 815
  1.870.010.001.863255/23541ActiveSupport::Callbacks#run_callbacks816 +
  1.710.000.001.713255/3255ActiveSupport::Callbacks#run_callbacks342
20.69%0.05%1.710.000.001.713255 + + ActiveRecord::Persistence#create_or_update + + 702
  1.700.000.001.703255/3255ActiveRecord::Timestamp#_create_record705 +
  0.000.000.000.003255/8519ActiveRecord::Persistence#destroyed?704 +
  0.000.000.000.003255/13387ActiveRecord::Persistence#new_record?705 +
  0.000.000.000.003255/5157Integer#==706 +
  0.000.000.000.003255/3255ActiveRecord::Core#readonly?703 +
  1.700.000.001.703255/3255ActiveRecord::Persistence#create_or_update705
20.56%0.04%1.700.000.001.703255 + + ActiveRecord::Timestamp#_create_record + + 91
  1.670.000.001.673255/3255ActiveRecord::Callbacks#_create_record102 +
  0.010.000.000.013255/3255ActiveRecord::Timestamp#all_timestamp_attributes_in_model95 +
  0.010.000.000.013255/3255ActiveRecord::Timestamp#current_time_from_proper_timezone93 +
  0.000.000.000.003255/3255ActiveRecord::Base#record_timestamps92 +
  1.670.000.001.673255/3255ActiveRecord::Timestamp#_create_record102
20.21%0.01%1.670.000.001.673255 + + ActiveRecord::Callbacks#_create_record + + 345
  1.670.000.001.673255/3255ActiveRecord::Base#_run_create_callbacks346 +
  1.670.000.001.673255/3255ActiveRecord::Callbacks#_create_record346
20.19%0.01%1.670.000.001.673255 + + ActiveRecord::Base#_run_create_callbacks + + 815
  1.670.000.001.663255/23541ActiveSupport::Callbacks#run_callbacks816 +
  1.650.000.001.643255/3255ActiveSupport::Callbacks#run_callbacks346
19.90%0.05%1.650.000.001.643255 + + ActiveRecord::AttributeMethods::Dirty#_create_record + + 139
  1.500.000.001.503255/3255ActiveRecord::Locking::Optimistic#_create_record140 +
  0.070.000.000.063255/4255ActiveModel::Dirty#changes_applied141 +
  0.060.000.000.063255/3255ActiveRecord::AttributeMethods::Dirty#keys_for_partial_write140 +
  0.010.000.000.003255/3255ActiveRecord::Base#partial_writes?140 +
  1.590.000.001.593887/3887ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#execute_and_clear596
19.25%0.03%1.590.000.001.593887 + + ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_no_cache + + 607
  1.520.000.001.523887/9794ActiveRecord::ConnectionAdapters::AbstractAdapter#log609 +
  0.070.010.000.073887/9774ActiveRecord::ConnectionAdapters::Quoting#type_casted_binds608 +
  1.500.000.001.503255/3255ActiveRecord::AttributeMethods::Dirty#_create_record140
18.18%0.03%1.500.000.001.503255 + + ActiveRecord::Locking::Optimistic#_create_record + + 64
  1.490.000.001.493255/3255ActiveRecord::CounterCache#_create_record70 +
  0.010.000.000.013255/3255ActiveRecord::Locking::Optimistic#locking_enabled?65 +
  1.490.000.001.493255/3255ActiveRecord::Locking::Optimistic#_create_record70
18.06%0.03%1.490.000.001.493255 + + ActiveRecord::CounterCache#_create_record + + 183
  1.480.010.001.473255/3255ActiveRecord::Persistence#_create_record184 +
  0.010.000.000.013255/3255ActiveRecord::CounterCache#each_counter_cached_associations186 +
  1.480.010.001.473255/3255ActiveRecord::CounterCache#_create_record184
17.87%0.08%1.480.010.001.473255 + + ActiveRecord::Persistence#_create_record + + 730
  1.400.010.001.403255/3255ActiveRecord::Persistence::ClassMethods#_insert_record734 +
  0.030.000.000.026510/15653ActiveRecord::AttributeMethods::PrimaryKey#id735 +
  0.020.000.000.023255/3255ActiveRecord::AttributeMethods#attributes_with_values_for_create732 +
  0.020.000.000.013255/4255ActiveRecord::AttributeMethods::PrimaryKey#id=735 +
  0.000.000.000.003255/72191ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods#primary_key735 +
  0.000.000.000.009765/371594Kernel#class731 +
  0.000.000.000.003255/6567Array#&731 +
  0.000.000.000.003255/37044ActiveRecord::ModelSchema::ClassMethods#column_names731 +
  0.000.000.000.003255/64127Kernel#block_given?739 +
  1.400.010.001.403255/3255ActiveRecord::Persistence#_create_record734
16.99%0.10%1.400.010.001.403255 + + ActiveRecord::Persistence::ClassMethods#_insert_record + + 168
  1.270.000.001.273255/3255ActiveRecord::ConnectionAdapters::AbstractAdapter#insert187 +
  0.040.010.000.043255/3255ActiveRecord::Persistence::ClassMethods#_substitute_values184 +
  0.030.000.000.033255/3255ActiveRecord::ModelSchema::ClassMethods#prefetch_primary_key?174 +
  0.020.000.000.023255/3255Arel::Crud#compile_insert184 +
  0.020.000.000.023255/31368ActiveRecord::ConnectionHandling#connection187 +
  0.000.000.000.009765/72191ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods#primary_key171 +
  0.000.000.000.003255/3799Module#to_s187 +
  0.000.000.000.003255/25422ActiveRecord::Core::ClassMethods#arel_table184 +
  0.000.000.000.003255/657190Module#===171 +
  1.390.000.001.382632/2632ActiveModel::EachValidator#validate150
16.75%0.01%1.390.000.001.382632 + + BusesService::GeneratedAssociationMethods#service + + 107
  1.370.000.001.372632/5264ActiveRecord::Associations::SingularAssociation#reader108 +
  0.020.000.000.012632/10896ActiveRecord::Associations#association108 +
  1.381.360.020.005887/5887ActiveSupport::Concurrency::ShareLock#yield_shares622
16.72%16.45%1.381.360.020.005887 + + PG::Connection#exec_prepared + +
  0.000.000.000.0014/189188Kernel#hash +
  0.020.000.000.025264/7896ActiveRecord::AutosaveAssociation#save_belongs_to_association481
  1.360.000.001.362632/7896ActiveRecord::Associations::Association#reload46
16.71%0.07%1.380.010.001.387896 + + ActiveRecord::Associations::Association#load_target + + 158
  1.340.010.001.332632/2632ActiveRecord::Associations::SingularAssociation#find_target159 +
  0.020.000.000.017896/7896ActiveRecord::Associations::BelongsToAssociation#find_target?159 +
  0.010.000.000.015264/13160ActiveRecord::Associations::Association#stale_target?159 +
  0.010.000.000.012632/10896ActiveRecord::Associations::Association#loaded!161 +
  0.000.000.000.007896/39480ActiveRecord::Associations::Association#loaded?161 +
  0.010.000.000.012632/5264BusesService::GeneratedAssociationMethods#bus108
  1.370.000.001.372632/5264BusesService::GeneratedAssociationMethods#service108
16.67%0.03%1.380.000.001.385264 + + ActiveRecord::Associations::SingularAssociation#reader + + 7
  1.370.000.001.362632/2632ActiveRecord::Associations::Association#reload9 +
  0.010.000.000.012632/13160ActiveRecord::Associations::Association#stale_target?8 +
  0.000.000.000.005264/39480ActiveRecord::Associations::Association#loaded?8 +
  1.370.000.001.362632/2632ActiveRecord::Associations::SingularAssociation#reader9
16.52%0.02%1.370.000.001.362632 + + ActiveRecord::Associations::Association#reload + + 43
  1.360.000.001.362632/7896ActiveRecord::Associations::Association#load_target46 +
  0.000.000.000.002632/10896ActiveRecord::Associations::BelongsToAssociation#reset44 +
  0.000.000.000.002632/10896ActiveRecord::Associations::Association#reset_scope45 +
  1.340.010.001.332632/2632ActiveRecord::Associations::Association#load_target159
16.16%0.07%1.340.010.001.332632 + + ActiveRecord::Associations::SingularAssociation#find_target + + 38
  0.880.000.000.882632/2632ActiveRecord::StatementCache#execute49 +
  0.370.000.000.372632/2632ActiveRecord::Associations::Association#scope39 +
  0.030.000.000.032632/2632ActiveRecord::Associations::Association#skip_statement_cache?40 +
  0.020.000.000.022632/31368ActiveRecord::ConnectionHandling#connection42 +
  0.020.000.000.012632/2632<Class::ActiveRecord::Associations::AssociationScope>#get_bind_values48 +
  0.000.000.000.002632/2632ActiveRecord::Reflection::AssociationReflection#association_scope_cache43 +
  0.000.000.000.002632/7898ActiveRecord::Reflection::AbstractReflection#chain48 +
  0.000.000.000.002632/26326ActiveRecord::Associations::Association#klass42 +
  1.270.000.001.273255/3255ActiveRecord::Persistence::ClassMethods#_insert_record187
15.36%0.03%1.270.000.001.273255 + + ActiveRecord::ConnectionAdapters::AbstractAdapter#insert + + 19
  1.270.000.001.263255/3255ActiveRecord::ConnectionAdapters::DatabaseStatements#insert21 +
  1.270.000.001.263255/3255ActiveRecord::ConnectionAdapters::AbstractAdapter#insert21
15.33%0.04%1.270.000.001.263255 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#insert + + 160
  1.160.000.001.163255/3255ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_insert162 +
  0.100.000.000.103255/9772ActiveRecord::ConnectionAdapters::DatabaseStatements#to_sql_and_binds161 +
  0.000.000.000.003255/3255ActiveRecord::ConnectionAdapters::DatabaseStatements#last_inserted_id163 +
  1.230.010.001.2315682/15682ActiveSupport::Notifications::Instrumenter#instrument29
14.92%0.06%1.230.010.001.2315682 + + ActiveSupport::Notifications::Instrumenter#finish_with_state + + 43
  1.230.010.001.2215682/15682ActiveSupport::Notifications::Fanout#finish44 +
  1.230.010.001.2215682/15682ActiveSupport::Notifications::Instrumenter#finish_with_state44
14.85%0.11%1.230.010.001.2215682 + + ActiveSupport::Notifications::Fanout#finish + + 47
  1.220.010.001.2119588/19588ActiveSupport::Notifications::Fanout::Subscribers::Evented#finish48 +
  1.220.010.001.2119588/19588ActiveSupport::Notifications::Fanout#finish48
14.73%0.10%1.220.010.001.2119588 + + ActiveSupport::Notifications::Fanout::Subscribers::Evented#finish + + 103
  1.190.010.001.189794/9794ActiveSupport::LogSubscriber#finish104 +
  0.020.000.000.019794/9794ActiveRecord::ExplainSubscriber#finish104 +
  1.190.010.001.189794/9794ActiveSupport::Notifications::Fanout::Subscribers::Evented#finish104
14.39%0.07%1.190.010.001.189794 + + ActiveSupport::LogSubscriber#finish + + 83
  1.170.010.001.159794/9794ActiveSupport::Subscriber#finish84 +
  0.020.000.000.019794/58704ActiveRecord::LogSubscriber#logger84 +
  1.170.010.001.159794/9794ActiveSupport::LogSubscriber#finish84
14.12%0.18%1.170.010.001.159794 + + ActiveSupport::Subscriber#finish + + 94
  1.120.060.001.069794/9794ActiveRecord::LogSubscriber#sql101 +
  0.010.000.000.019794/29382ActiveSupport::Subscriber#event_stack96 +
  0.010.010.000.009794/12184String#split100 +
  0.000.000.000.009794/19588ActiveSupport::Subscriber#now95 +
  0.000.000.000.009794/16437Hash#merge!98 +
  0.000.000.000.009794/11950Array#pop96 +
  1.160.000.001.163255/3255ActiveRecord::ConnectionAdapters::DatabaseStatements#insert162
14.04%0.03%1.160.000.001.163255 + + ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_insert + + 113
  1.160.000.001.163255/3255ActiveRecord::ConnectionAdapters::DatabaseStatements#exec_insert115 +
  0.000.000.000.003255/3255ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#use_insert_returning?114 +
  1.160.000.001.163255/3255ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_insert115
14.01%0.02%1.160.000.001.163255 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#exec_insert + + 128
  1.150.000.001.153255/9767ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_query130 +
  0.010.000.000.003255/3255ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#sql_for_insert129 +
  1.120.060.001.069794/9794ActiveSupport::Subscriber#finish101
13.53%0.71%1.120.060.001.069794 + + ActiveRecord::LogSubscriber#sql + + 20
  0.860.010.000.859774/9774ActiveRecord::LogSubscriber#debug43 +
  0.040.010.000.039774/9774ActiveRecord::LogSubscriber#sql_color41 +
  0.030.010.000.029765/32530Array#inspect36 +
  0.020.010.000.029774/9774ActiveRecord::LogSubscriber#colorize_payload_name40 +
  0.020.020.000.0122765/22765ActiveRecord::LogSubscriber#render_bind36 +
  0.020.000.000.029794/9794ActiveSupport::Logger#debug?22 +
  0.010.010.000.019774/70355ActiveSupport::NumericWithFormat#to_s28 +
  0.010.000.000.019794/9794<Class::ActiveRecord::LogSubscriber>#runtime21 +
  0.010.000.000.019794/9794<Class::ActiveRecord::LogSubscriber>#runtime=21 +
  0.010.010.000.009774/19548ActiveSupport::LogSubscriber#color41 +
  0.010.000.000.009794/58704ActiveRecord::LogSubscriber#logger22 +
  0.010.010.000.0019568/19568ActiveSupport::Notifications::Event#duration21 +
  0.000.000.000.009765/9765ActiveRecord::LogSubscriber#type_casted_binds34 +
  0.000.000.000.009774/9774Float#round28 +
  0.000.000.000.009794/371594Kernel#class21 +
  0.000.000.000.0011/22511NilClass#to_s43 +
  0.000.000.000.004/5679String#==26 +
  0.000.000.000.001/839Integer#+21 +
  0.920.910.010.003887/3887ActiveSupport::Concurrency::ShareLock#yield_shares611
11.13%10.98%0.920.910.010.003887 + + PG::Connection#exec_params + +
  0.880.000.000.882632/2632ActiveRecord::Associations::SingularAssociation#find_target49
10.70%0.03%0.880.000.000.882632 + + ActiveRecord::StatementCache#execute + + 103
  0.870.010.000.872632/5887ActiveRecord::Querying#find_by_sql108 +
  0.010.000.000.002632/2632ActiveRecord::StatementCache::BindMap#bind104 +
  0.000.000.000.002632/2632ActiveRecord::StatementCache::Query#sql_for106 +
  0.860.010.000.859774/9774ActiveRecord::LogSubscriber#sql43
10.42%0.10%0.860.010.000.859774 + + ActiveRecord::LogSubscriber#debug + + 94
  0.630.040.000.599774/9774ActiveRecord::LogSubscriber#log_query_source98 +
  0.210.000.000.219774/9774ActiveSupport::LogSubscriber#debug95 +
  0.010.010.000.009774/9774<Class::ActiveRecord::Base>#verbose_query_logs97 +
  0.630.040.000.599774/9774ActiveRecord::LogSubscriber#debug98
7.63%0.44%0.630.040.000.599774 + + ActiveRecord::LogSubscriber#log_query_source + + 102
  0.320.150.000.179774/9774ActiveRecord::LogSubscriber#extract_callstack103 +
  0.140.000.000.139774/19556Logger#debug111 +
  0.100.100.000.009774/9890Kernel#caller_locations103 +
  0.010.010.000.019774/9779<Module::Rails>#root107 +
  0.010.000.000.019774/58704ActiveRecord::LogSubscriber#logger111 +
  0.010.000.000.009774/70355ActiveSupport::NumericWithFormat#to_s111 +
  0.010.010.000.009774/9896Pathname#to_s107 +
  0.000.000.000.009774/38491String#freeze107 +
  0.000.000.000.001/2504Rails::Engine#load_tasks458
  0.000.000.000.001/2504<Module::Bundler>#overwrite_loaded_gem_version14
  0.000.000.000.001/2504<Module::Rails>#env73
  0.000.000.000.001/2504I18n::Base#config57
  0.000.000.000.001/2504ActiveSupport::XmlMini#cast_backend_name_to_module202
  0.000.000.000.001/2504Bundler::Definition#converge_dependencies703
  0.000.000.000.001/2504Bundler::SourceList#initialize18
  0.000.000.000.001/2504BasicObject#instance_exec
  0.000.000.000.001/2504Bundler::SharedHelpers#filesystem_access429
  0.000.000.000.002/2504<Module::Bundler>#ui70
  0.000.000.000.001/2504Bundler::Dsl#initialize26
  0.000.000.000.001/2504Bundler::LockfileParser#parse_spec229
  0.000.000.000.001/2504Bundler::LazySpecification::Identifier#platform_string20
  0.000.000.000.001/2504<Class::TZInfo::Timezone>#init_loaded_zones653
  0.000.000.000.002/2504Rails::Application#initialize138
  0.000.000.000.001/2504<Module::Bundler>#ui=74
  0.000.000.000.001/2504Bundler::RubyDsl#ruby15
  0.000.000.000.001/2504Bundler::LockfileParser#parse_dependency200
  0.000.000.000.001/2504<Module::Bundler>#load118
  0.000.000.000.002/2504Bundler::RubygemsIntegration::MoreFuture#all_specs823
  0.000.000.000.002/2504Concurrent::Utility::NativeExtensionLoader#try_load_c_extension59
  0.000.000.000.001/2504<Class::Bundler::FeatureFlag>#settings_flag6
  0.000.000.000.001/2504Bundler::Index#local_search92
  0.000.000.000.001/2504<Module::Bundler>#default_lockfile334
  0.000.000.000.001/2504Bundler::Definition#initialize91
  0.000.000.000.001/2504<Module::Bundler>#feature_flag478
  0.000.000.000.001/2504Rails::Application#initializers367
  0.000.000.000.001/2504Bundler::RubygemsIntegration::MoreFuture#backport_ext_builder_monitor836
  0.000.000.000.001/2504<Class::Bundler::Definition>#build34
  0.000.000.000.001/2504<Module::Bundler>#definition135
  0.000.000.000.002/2504<Module::Bootsnap::CompileCache::JSON>#init!49
  0.000.000.000.001/2504Rails::Engine#config542
  0.000.000.000.0010/2504Kernel#require1
  0.000.000.000.001/2504<Module::Bootsnap::ExplicitRequire>#with_gems5
  0.000.000.000.001/2504Rails::Railtie#config223
  0.010.000.000.012/2504Bundler::Definition#expand_dependencies881
  0.010.000.000.011/2504Rake::TaskManager#in_namespace41
  0.010.000.000.013/2504<Module::Bootsnap::CompileCache::YAML>#init!58
  0.010.000.000.012/2504Rails::Engine#routes535
  0.010.000.000.011/2504Rails::Application#run_tasks_blocks516
  0.080.000.000.08103/2504Kernel#gem_original_require
  0.080.000.000.0810/2504Kernel#load
  0.080.000.000.08358/2504ActiveSupport::Dependencies::Loadable#load_dependency291
  0.090.000.000.091/2504Rails::Application#require_environment!337
  0.210.000.000.21287/2504ActiveSupport::Dependencies#new_constants_in291
  0.340.000.000.3437/2504Kernel#require_relative
  1.220.000.001.221650/2504Kernel#require_without_bootsnap
7.40%0.11%0.610.010.000.602504 + + *Kernel#require + + 37
  1.890.060.001.831204/1210Kernel#require_without_bootsnap32 +
  0.230.040.000.19132/132Kernel#gem_original_require86 +
  0.030.000.000.031/1<Module::Bootsnap>#default_setup5 +
  0.010.000.000.011/201Kernel#require_relative3 +
  0.010.000.000.011231/1237Bootsnap::LoadPathCache::Cache#find14 +
  0.000.000.000.001200/1206Bootsnap::LoadPathCache::LoadedFeaturesIndex#register33 +
  0.000.000.000.0010/2504Kernel#require1 +
  0.000.000.000.0053/55Kernel#gem74 +
  0.000.000.000.002360/2367Bootsnap::LoadPathCache::LoadedFeaturesIndex#key?12 +
  0.000.000.000.00247/303<Class::File>#symlink?54 +
  0.000.000.000.00247/3430<Class::File>#join62 +
  0.000.000.000.002360/2367<Module::Bootsnap>#rb_get_path11 +
  0.000.000.000.00132/132<Module::Gem>#find_unresolved_default_spec45 +
  0.000.000.000.00247/1109<Class::File>#file?63 +
  0.000.000.000.00247/1587<Class::File>#expand_path62 +
  0.000.000.000.0053/53<Class::Gem::Requirement>#default_prerelease74 +
  0.000.000.000.001231/1660BasicObject#equal?15 +
  0.000.000.000.0061/63<Module::Gem>#load_path_insert_index49 +
  0.000.000.000.00175/175Array#[]51 +
  0.000.000.000.00132/136<Class::Gem::Specification>#unresolved_deps84 +
  0.000.000.000.00247/40374String#initialize_copy52 +
  0.000.000.000.00132/132Monitor#exit85 +
  0.000.000.000.00132/132Monitor#enter41 +
  0.000.000.000.00132/148727Kernel#respond_to?43 +
  0.000.000.000.0061/62<Module::Gem>#activated_gem_paths49 +
  0.000.000.000.0061/61<Module::Gem>#suffixes50 +
  0.000.000.000.0022/236IO#set_encoding37 +
  0.000.000.000.004/4Bootsnap::LoadPathCache::LoadedFeaturesIndex#cursor16 +
  0.000.000.000.00119/20034Module#method_added22 +
  0.000.000.000.0010/651Module#include18 +
  0.000.000.000.006/270Module#undef_method6 +
  0.000.000.000.004/117Module#module_function36 +
  0.000.000.000.002/544Module#attr_reader17 +
  0.000.000.000.001/5<Class::Time>#at8 +
  0.000.000.000.0014/2098Class#inherited37 +
  0.000.000.000.0010/824Module#private20 +
  0.000.000.000.001/695Module#alias_method9 +
  0.000.000.000.002/909Kernel#lambda14 +
  0.000.000.000.001/1874Module#method_defined?6 +
  0.000.000.000.007/3699BasicObject#singleton_method_added37 +
  0.000.000.000.002/125Integer#<<13 +
  0.000.000.000.001/43923Module#name97 +
  0.000.000.000.001/3MessagePack::Factory#initialize20 +
  0.000.000.000.001/371594Kernel#class97 +
  0.010.000.000.016/1210<Module::Kernel>#require32
  1.890.060.001.831204/1210Kernel#require32
5.40%0.75%0.450.060.000.381210 + + *Kernel#require_without_bootsnap + +
  1.220.000.001.221650/2504Kernel#require4 +
  0.210.000.000.211166/1349Bootsnap::CompileCache::ISeq::InstructionSequenceMixin#load_iseq +
  0.160.000.000.16534/645ActiveSupport::Dependencies::Loadable#require6 +
  0.090.000.000.091/1Rails::Application#initialize!5 +
  0.030.000.000.0372/201Kernel#require_relative3 +
  0.020.000.000.024/7ActiveSupport::LazyLoadHooks#run_load_hooks14 +
  0.020.000.000.02410/651Module#include35 +
  0.010.000.000.0112/31Kernel#load21 +
  0.010.000.000.011/1<Class::Rails::Engine>#isolate_namespace15 +
  0.010.000.000.011/1Sprockets::Transformers#register_transformer_suffix180 +
  0.010.000.000.0165/90Module#delegate43 +
  0.010.000.000.0186/94<Class::Rails::Railtie>#config16 +
  0.000.000.000.001/1OpenSSL::X509::Store#set_default_paths90 +
  0.000.000.000.00316/1196Module#class_eval44 +
  0.000.000.000.009/9Object#DelegateClass38 +
  0.000.000.000.009/23Sprockets::Transformers#register_transformer95 +
  0.000.000.000.00176/347Kernel#extend36 +
  0.000.000.000.008/8Sprockets::Processing#register_preprocessor116 +
  0.000.000.000.0036/56Module#mattr_accessor43 +
  0.000.000.000.001/1<Module::ObjectSpace>#each_object6 +
  0.000.000.000.00194/403ActiveSupport::Autoload#autoload29 +
  0.000.000.000.001/1Concurrent::Utility::NativeExtensionLoader#load_native_extensions77 +
  0.000.000.000.0018/18ActiveSupport::Autoload#eager_autoload48 +
  0.000.000.000.0045/59Sprockets::Mime#register_mime_type50 +
  0.000.000.000.0024/26Module#cattr_accessor84 +
  0.000.000.000.00193/273Module#attr_accessor636 +
  0.000.000.000.001/1<Module::JSON>#generator=11 +
  0.000.000.000.0099/110Thor::Base::ClassMethods#method_added273 +
  0.000.000.000.001/1<Class::TZInfo::Timezone>#init_loaded_zones655 +
  0.000.000.000.0011860/20034Module#method_added +
  0.000.000.000.00406/544Module#attr_reader6 +
  0.000.000.000.001/1<Module::Concurrent::ThreadSafe::Util>#make_synchronized_on_cruby33 +
  0.000.000.000.0036/49<Class::Struct>#new34 +
  0.000.000.000.0055/972Module#module_eval33 +
  0.000.000.000.004/4Sprockets::Processing#register_pipeline98 +
  0.000.000.000.001/522ActiveSupport::Inflector#inflections12 +
  0.000.000.000.005/8ActiveSupport::Autoload#autoload_under51 +
  0.000.000.000.00103/103Rails::Initializable::ClassMethods#initializer69 +
  0.000.000.000.001/1<Class::Rails::Generators::AppBase>#add_shared_options_for258 +
  0.000.000.000.007/19ActiveSupport::Callbacks::ClassMethods#define_callbacks70 +
  0.000.000.000.006/6<Class::Concurrent::Synchronization::Object>#attr_atomic12 +
  0.000.000.000.003/3ActiveSupport::Deprecation::InstanceDelegator::ClassMethods#include27 +
  0.000.000.000.001/1Rails::Railtie#configure1 +
  0.000.000.000.009/67Class#class_attribute1622 +
  0.000.000.000.004/4Forwardable#delegate29 +
  0.000.000.000.001/1ActiveSupport::XmlMini#backend=208 +
  0.000.000.000.001/8I18n::Base#load_path15 +
  0.000.000.000.004/4Thor::Base::ClassMethods#public_task287 +
  0.000.000.000.0018/4997Set#initialize20 +
  0.000.000.000.001657/2098Class#inherited +
  0.000.000.000.004/4Module#deprecate184 +
  0.000.000.000.0042/42<Class::Marcel::MimeType>#extend1 +
  0.000.000.000.001466/3699BasicObject#singleton_method_added +
  0.000.000.000.0035/35<Class::Mime::Type>#register6 +
  0.000.000.000.001/93<Class::Dir>#[]439 +
  0.000.000.000.00246/695Module#alias_method91 +
  0.000.000.000.00664/824Module#private24 +
  0.000.000.000.0052/232ActiveSupport::OrderedOptions#method_missing21 +
  0.000.000.000.002/2<Class::Rails::Generators::Base>#inherited255 +
  0.000.000.000.0014/35Module#instance_methods23 +
  0.000.000.000.003/3Module#delegate_missing_to12 +
  0.000.000.000.0031/58String#underscore125 +
  0.000.000.000.001/1ActiveSupport::Dependencies#hook!753 +
  0.000.000.000.004/4Module#attr_internal10 +
  0.000.000.000.0011/11Sprockets::Compressing#register_compressor134 +
  0.000.000.000.00181/647Module#autoload83 +
  0.000.000.000.0085/1715Module#define_method38 +
  0.000.000.000.001/29<Class::Dir>#glob3 +
  0.000.000.000.0025/32Module#prepend102 +
  0.000.000.000.004/4<Class::ActionView::LookupContext>#register_detail45 +
  0.000.000.000.0070/209Rails::Railtie::Configuration#method_missing16 +
  0.000.000.000.00256/1857String#%36 +
  0.000.000.000.004/5<Class::Rails::Engine>#inherited14 +
  0.000.000.000.007/7Sprockets::Processing#register_bundle_metadata_reducer123 +
  0.000.000.000.006/12IPAddr#initialize42 +
  0.000.000.000.00162/943String#to_sym328 +
  0.000.000.000.008/18Concurrent::Synchronization::SafeInitialization#new18 +
  0.000.000.000.006/6Sprockets::DirectiveProcessor#initialize116 +
  0.000.000.000.001/2WebConsole::Whitelist#initialize8 +
  0.000.000.000.001/55Kernel#gem4 +
  0.000.000.000.0045/195ActiveSupport::Concern#included11 +
  0.000.000.000.0075/121Class#initialize13 +
  0.000.000.000.004/30<Class::Rails::Generators::Base>#class_option261 +
  0.000.000.000.00133/270Module#undef_method150 +
  0.000.000.000.002/2<Class::ActiveSupport::Subscriber>#attach_to137 +
  0.000.000.000.001/1<Class::Rails::Generators::Base>#add_shebang_option!20 +
  0.000.000.000.001/1Module#initialize_copy40 +
  0.000.000.000.0029/29<Module::ActiveRecord::Type>#register66 +
  0.000.000.000.007/16Module#public_instance_methods238 +
  0.000.000.000.009/25Comparable#<371 +
  0.000.000.000.001/1Module#thread_mattr_accessor13 +
  0.000.000.000.007/7Sprockets::Dependencies#register_dependency_resolver161 +
  0.000.000.000.00266/94920Symbol#to_s38 +
  0.000.000.000.001/1<Class::ActionView::FallbackFileSystemResolver>#instances19 +
  0.000.000.000.0033/47Regexp#to_s69 +
  0.000.000.000.008/68ActiveSupport::LazyLoadHooks#on_load178 +
  0.000.000.000.0018/30Module#attr_writer41 +
  0.000.000.000.001/1Thor::Actions::ClassMethods#add_runtime_options!24 +
  0.000.000.000.00164/2435String#downcase38 +
  0.000.000.000.004/5<Class::Regexp>#union181 +
  0.000.000.000.001/1Concurrent::Utility::ProcessorCounter#initialize67 +
  0.000.000.000.0018/1587<Class::File>#expand_path10 +
  0.000.000.000.0046/46<Module::FileUtils>#options_of23 +
  0.000.000.000.001/1<Class::PG::Connection>#async_api=950 +
  0.000.000.000.001/8<Class::ActiveSupport::ExecutionWrapper>#to_run46 +
  0.000.000.000.0040/117Module#module_function135 +
  0.000.000.000.0016/22<Class::Concurrent::Synchronization::Object>#safe_initialization!98 +
  0.000.000.000.00233/44143Regexp#===4 +
  0.000.000.000.0011/11<Module::ActiveModel::Type>#register41 +
  0.000.000.000.002/3Sprockets::Exporting#register_exporter203 +
  0.000.000.000.001/1Thor::Base::ClassMethods#argument22 +
  0.000.000.000.0013/18<Class::Rails::Railtie>#inherited15 +
  0.000.000.000.001/83Module#mattr_reader11 +
  0.000.000.000.00125/170Module#protected23 +
  0.000.000.000.001/35Thor::Base::ClassMethods#class_option21 +
  0.000.000.000.002/3Sprockets::Dependencies#depend_on223 +
  0.000.000.000.001/1<Module::Listen>#setup_default_logger_if_unset18 +
  0.000.000.000.0010/9560Array#-44 +
  0.000.000.000.0058/58<Module::TZInfo::RubyCoreSupport>#rational_new!38 +
  0.000.000.000.0055/159Module#const_set24 +
  0.000.000.000.0077/1109Kernel#!~8 +
  0.000.000.000.003/3Thor::Base::ClassMethods#remove_task312 +
  0.000.000.000.001/3Thor::Base::ClassMethods#inherited17 +
  0.000.000.000.002/2Sprockets::Processing#register_bundle_processor120 +
  0.000.000.000.007/88Concurrent::Collection::MriMapBackend#initialize106 +
  0.000.000.000.006/6Listen::FSM::ClassMethods#state65 +
  0.000.000.000.008/8Range#to_a309 +
  0.000.000.000.001/6<Module::ActiveSupport::Notifications>#subscribe32 +
  0.000.000.000.005/3430<Class::File>#join5 +
  0.000.000.000.001/15ActiveSupport::Deprecation::InstanceDelegator::ClassMethods#method_added38 +
  0.000.000.000.001/1RubyDep::Warning#initialize10 +
  0.000.000.000.002/95Kernel#eval147 +
  0.000.000.000.001/4Logger#initialize46 +
  0.000.000.000.003/3<Class::Rails::Railtie>#console55 +
  0.000.000.000.001/75Set#merge329 +
  0.000.000.000.003/3ActiveModel::Type::Helpers::AcceptsMultiparameterTime#initialize7 +
  0.000.000.000.006/1406<Class::Gem::Version>#new3 +
  0.000.000.000.001/1OpenSSL::PKey::DH#initialize33 +
  0.000.000.000.00259/394String#force_encoding20 +
  0.000.000.000.004/8ActiveSupport::Autoload#autoload_at21 +
  0.000.000.000.0040/148727Kernel#respond_to?21 +
  0.000.000.000.002/7Rails::Railtie::Configuration#app_generators18 +
  0.000.000.000.00276/578Symbol#===63 +
  0.000.000.000.003/20Singleton::SingletonClassMethods#instance17 +
  0.000.000.000.0040/1874Module#method_defined?53 +
  0.000.000.000.005/42<Class::Rails::Railtie>#rake_tasks36 +
  0.000.000.000.007/7<Module::Minitest>#cattr_accessor28 +
  0.000.000.000.0062/108Module#private_constant236 +
  0.000.000.000.0019/21Concurrent::Utility::EngineDetector#on_jruby?291 +
  0.000.000.000.002/3<Module::Loofah>#html5_support?36 +
  0.000.000.000.006/6Sprockets::Railtie::OrderedOptions#configure142 +
  0.000.000.000.001/17Set#+144 +
  0.000.000.000.001/1<Module::Concurrent>#mutex_owned_per_thread?18 +
  0.000.000.000.0035/70320BasicObject#initialize235 +
  0.000.000.000.0063/190Symbol#inspect1678 +
  0.000.000.000.001/1ActiveSupport::Dependencies::Interlock#initialize23 +
  0.000.000.000.0074/17049Kernel#freeze41 +
  0.000.000.000.001/2Thor::Base::ClassMethods#attr_accessor19 +
  0.000.000.000.0037/46<Class::ActiveSupport::Subscriber>#method_added17 +
  0.000.000.000.001/1ActiveSupport::Notifications::Fanout#initialize214 +
  0.000.000.000.0036/5686Array#join233 +
  0.000.000.000.0061/189188Kernel#hash10 +
  0.000.000.000.002/4<Class::ActiveSupport::ExecutionWrapper>#inherited6 +
  0.000.000.000.0021/21<Class::ActionCable::Channel::Base>#method_added142 +
  0.000.000.000.006/6<Class::ActionDispatch::Routing::PolymorphicRoutes::HelperMethodBuilder>#build350 +
  0.000.000.000.001/1ActionView::LogSubscriber#initialize96 +
  0.000.000.000.0049/840Module#const_get37 +
  0.000.000.000.008/17Set#freeze20 +
  0.000.000.000.002/839Integer#+10 +
  0.000.000.000.003/42Module#initialize25 +
  0.000.000.000.001/1<Class::ActionView::DependencyTracker>#register_tracker173 +
  0.000.000.000.004/93<Class::Hash>#[]68 +
  0.000.000.000.001/4Rails::Configuration::Generators#method_missing18 +
  0.000.000.000.0010/23Kernel#__dir__20 +
  0.000.000.000.0017/909Kernel#lambda88 +
  0.000.000.000.001/1<Module::Signal>#list398 +
  0.000.000.000.006/686Module#silence_redefinition_of_method32 +
  0.000.000.000.0018/7772<Class::Proc>#new63 +
  0.000.000.000.0062/28669Regexp#match?15 +
  0.000.000.000.0010/137<Object::Object>#[]10 +
  0.000.000.000.001/8869Array#flatten593 +
  0.000.000.000.002/2Module#rake_extension6 +
  0.000.000.000.003/12184String#split5 +
  0.000.000.000.00131/287390String#to_s61 +
  0.000.000.000.001/2<Module::Etc>#nprocessors36 +
  0.000.000.000.002/2<Module::ActiveRecord::Type>#add_modifier842 +
  0.000.000.000.001/2ActiveSupport::Subscriber#initialize137 +
  0.000.000.000.001/1<Module::I18n>#new_double_nested_cache407 +
  0.000.000.000.0016/47Module#private_class_method618 +
  0.000.000.000.003/137<Class::File>#dirname5 +
  0.000.000.000.003/14Rails::Railtie::Configuration#after_initialize67 +
  0.000.000.000.001/1Rake::PrivateReader::ClassMethods#private_reader9 +
  0.000.000.000.002/2<Class::Listen::Logger>#info22 +
  0.000.000.000.001/44Regexp#initialize19 +
  0.000.000.000.0031/18059Hash#initialize11 +
  0.000.000.000.001/1ActiveSupport::Dependencies::ClassCache#initialize603 +
  0.000.000.000.001/1Kernel#Complex130 +
  0.000.000.000.001/4Kernel#silence_warnings21 +
  0.000.000.000.001/1Concurrent::ReInclude#include58 +
  0.000.000.000.001/1ActionDispatch::Journey::Nodes::Dummy#initialize9 +
  0.000.000.000.001/1RubyDep::Warning#show_warnings10 +
  0.000.000.000.001/1ActiveSupport::Concern#class_methods10 +
  0.000.000.000.0027/104Symbol#=~91 +
  0.000.000.000.004/16437Hash#merge!21 +
  0.000.000.000.0088/24391Symbol#to_sym352 +
  0.000.000.000.001/1<Class::ActionView::Helpers::FormBuilder>#field_helpers1677 +
  0.000.000.000.003/3Integer#**7 +
  0.000.000.000.001/2<Class::ActiveRecord::Associations::AssociationScope>#create19 +
  0.000.000.000.002/2<Class::ActiveRecord::Relation::WhereClause>#empty1223 +
  0.000.000.000.001/1<Class::Thor>#map649 +
  0.000.000.000.0011/467Module#public115 +
  0.000.000.000.001/337<Class::File>#exist?10 +
  0.000.000.000.001/1<Class::ActiveRecord::Relation::FromClause>#empty1223 +
  0.000.000.000.0010/10Rails::Railtie::Configuration#eager_load_namespaces34 +
  0.000.000.000.007/150Comparable#>=355 +
  0.000.000.000.001/1Concurrent::Promises::InternalStates::Fulfilled#initialize491 +
  0.000.000.000.0010/12Concurrent::Utility::EngineDetector#on_cruby?23 +
  0.000.000.000.001/1ActiveSupport::Messages::RotationConfiguration#initialize35 +
  0.000.000.000.001/2<Module::Nokogiri>#uses_gumbo?128 +
  0.000.000.000.001/13ActiveSupport::DescendantsTracker#inherited80 +
  0.000.000.000.003/3Module#remove_possible_method22 +
  0.000.000.000.001/3258Time#utc14 +
  0.000.000.000.003/594Module#constants36 +
  0.000.000.000.009/75String#tr9 +
  0.000.000.000.0028/28String#delete_prefix435 +
  0.000.000.000.009/11<Class::Regexp>#quote12 +
  0.000.000.000.009/1172Kernel#method124 +
  0.000.000.000.001/1<Class::TZInfo::Country>#init_countries189 +
  0.000.000.000.001/3<Class::ActionView::Template::Types>#delegate_to46 +
  0.000.000.000.001/1<Module::Mime>#[]11 +
  0.000.000.000.005/311Kernel#define_singleton_method27 +
  0.000.000.000.006/281Module#method_undefined301 +
  0.000.000.000.001/1<Class::Rails::Railtie>#runner65 +
  0.000.000.000.001/1<Class::ActionController::Parameters>#hook_into_yaml_loading771 +
  0.000.000.000.004/7Kernel#autoload95 +
  0.000.000.000.001/1Array#product590 +
  0.000.000.000.001/22814<Class::Time>#now14 +
  0.000.000.000.009/8617Kernel#proc388 +
  0.000.000.000.001/3Module#private_instance_methods90 +
  0.000.000.000.001/895<Class::File>#directory?4 +
  0.000.000.000.0010/290Thread::Mutex#initialize69 +
  0.000.000.000.006/601Kernel#singleton_class6 +
  0.000.000.000.001/1<Class::Rack::QueryParser>#make_default33 +
  0.000.000.000.001/1OpenSSL::X509::Store#initialize89 +
  0.000.000.000.001/60680Integer#to_s22 +
  0.000.000.000.001/1Minitest::Parallel::Executor#initialize38 +
  0.000.000.000.001/2Numeric#megabytes137 +
  0.000.000.000.002/2<Class::Delegator>#const_missing108 +
  0.000.000.000.006/101Symbol#downcase93 +
  0.000.000.000.001/17<Module::Rake::Win32>#windows?763 +
  0.000.000.000.001/3Rake::TaskArguments#initialize108 +
  0.000.000.000.004/15Exception#initialize +
  0.000.000.000.0010/409String#upcase110 +
  0.000.000.000.003/3<Module::PG>#make_shareable869 +
  0.000.000.000.001/1<Class::ActionDispatch::Response::ContentTypeHeader>#new409 +
  0.000.000.000.004/2105String#to_i5 +
  0.000.000.000.001/2<Class::Arel::Visitors::Visitor>#dispatch_cache191 +
  0.000.000.000.001/1<Object::Object>#using148 +
  0.000.000.000.004/1067Module#const_defined?14 +
  0.000.000.000.006/19Exception#exception68 +
  0.000.000.000.001/1<Class::Minitest::Runnable>#inherited10 +
  0.000.000.000.003/4Concurrent::Utility::EngineDetector#on_truffleruby?5 +
  0.000.000.000.005/6Module#deprecate_constant65 +
  0.000.000.000.001/1<Class::Concurrent::LockFreeStack::Node>#[]32 +
  0.000.000.000.001/1<Module::JSON>#parser=10 +
  0.000.000.000.001/8511Hash#default_proc=74 +
  0.000.000.000.001/1Psych::Handler::DumperOptions#initialize27 +
  0.000.000.000.001/1Rails::Railtie::Configuration#before_eager_load24 +
  0.000.000.000.006/19Exception#backtrace68 +
  0.000.000.000.001/1<Class::ActionDispatch::Routing::RouteSet::Config>#new369 +
  0.000.000.000.009/38491String#freeze20 +
  0.000.000.000.001/1ActionCable::Server::Configuration#initialize15 +
  0.000.000.000.001/1Array#*49 +
  0.000.000.000.002/2<Module::Rack>#release11 +
  0.000.000.000.003/3258Hash#keys4 +
  0.000.000.000.002/2Integer#-8 +
  0.000.000.000.002/2ActiveModel::Type::Registry#initialize23 +
  0.000.000.000.001/1<Module::FileUtils>#commands22 +
  0.000.000.000.003/30Module#ruby2_keywords275 +
  0.000.000.000.007/8249String#<=>309 +
  0.000.000.000.004/5<Class::Time>#at81 +
  0.000.000.000.002/2String#encode!20 +
  0.000.000.000.001/1ActiveSupport::Dependencies::WatchStack#initialize172 +
  0.000.000.000.005/40374String#initialize_copy20 +
  0.000.000.000.004/371594Kernel#class635 +
  0.000.000.000.001/1Hash#compare_by_identity72 +
  0.000.000.000.006/125Integer#<<396 +
  0.000.000.000.001/1882<Class::File>#basename237 +
  0.000.000.000.001/1<Class::Thor>#desc651 +
  0.000.000.000.003/51254Integer#to_i74 +
  0.000.000.000.001/1OpenSSL::X509::Store#flags=91 +
  0.000.000.000.002/2Float#/100 +
  0.000.000.000.001/1<Class::FSEvent>#root_path12 +
  0.000.000.000.006/657190Module#===68 +
  0.000.000.000.001/1<Class::ActiveRecord::Migration>#verbose=633 +
  0.000.000.000.001/1Integer#~26 +
  0.000.000.000.003/4Concurrent::Utility::NativeExtensionLoader#c_extensions_loaded?83 +
  0.000.000.000.001/1<Module::Concurrent>#create_simple_logger106 +
  0.000.000.000.002/221<Module::Rake>#application5 +
  0.000.000.000.001/1<Module::TZInfo::RubyCoreSupport>#time_supports_64bit14 +
  0.000.000.000.002/19573<Module::Rails>#application5 +
  0.000.000.000.001/1<Class::#<Class:0x000000011fd88f40>>#new9 +
  0.000.000.000.001/1ActionDispatch::Journey::Visitors::Dot#initialize263 +
  0.000.000.000.003/3Integer#size7 +
  0.000.000.000.002/1257String#+107 +
  0.000.000.000.001/3Listen::FSM::ClassMethods#default_state63 +
  0.000.000.000.001/150Method#to_proc295 +
  0.000.000.000.001/1<Class::Encoding>#find +
  0.000.000.000.001/6Integer#-@7 +
  0.000.000.000.001/271Sprockets::Configuration#config=20 +
  0.000.000.000.001/3050Hash#update92 +
  0.000.000.000.001/1<Module::Psych>#libyaml_version233 +
  0.000.000.000.001/1Mime::Mimes#initialize35 +
  0.000.000.000.001/8ActionDispatch::Routing::Mapper::Scope#initialize2249 +
  0.000.000.000.001/1ActiveRecord::Migration#initialize635 +
  0.000.000.000.001/1Numeric#kilobyte712 +
  0.000.000.000.001/1Hash#rehash72 +
  0.000.000.000.001/2<Module::ActionView::Helpers::FormTagHelper>#embed_authenticity_token_in_remote_forms=23 +
  0.000.000.000.002/6446Array#compact68 +
  0.000.000.000.002/2ActionDispatch::Http::ParameterFilter#initialize31 +
  0.000.000.000.003/3Numeric#dup94 +
  0.000.000.000.001/48Hash#values_at5 +
  0.000.000.000.001/4String#b120 +
  0.000.000.000.001/17Thread::ConditionVariable#initialize50 +
  0.000.000.000.001/8Logger#level=47 +
  0.000.000.000.001/1<Class::ActionCable::Server::Base>#config87 +
  0.000.000.000.001/155Module#public_method_defined?9 +
  0.000.000.000.001/1<Class::Minitest::Runnable>#reset329 +
  0.000.000.000.003/3Rake::LinkedList::EmptyLinkedList#initialize110 +
  0.000.000.000.001/153Module#instance_method106 +
  0.000.000.000.001/1Time#year14 +
  0.000.000.000.001/1003Kernel#Rational145 +
  0.000.000.000.001/417Rails::Initializable::ClassMethods#initializers59 +
  0.000.000.000.001/2Comparable#>16 +
  0.000.000.000.001/1Thor::Base::ClassMethods#strict_args_position!25 +
  0.000.000.000.004/27087String#hash649 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::NullTransaction#initialize273 +
  0.000.000.000.002/3303Array#initialize_copy106 +
  0.000.000.000.001/22<Module::Listen>#logger22 +
  0.000.000.000.001/8119Array#concat17 +
  0.000.000.000.001/1Float#-@104 +
  0.000.000.000.001/105Rake::LinkedList::EmptyLinkedList#empty?19 +
  0.000.000.000.001/9Thread::Queue#initialize51 +
  0.000.000.000.001/18232Module#<129 +
  0.000.000.000.001/23872Kernel#frozen?17 +
  0.000.000.000.001/501932String#start_with?51 +
  0.000.000.000.001/43923Module#name635 +
  0.000.000.000.001/104Rake::TaskManager#current_scope19 +
  0.170.000.000.171000/4255<Class::Thread>#handle_interrupt
  0.270.010.000.263255/4255ActiveRecord::Persistence::ClassMethods#create35
5.34%0.11%0.440.010.000.434255 + + ActiveRecord::Inheritance::ClassMethods#new + + 50
  0.420.010.000.414255/4255ActiveRecord::Core#initialize66 +
  0.010.000.000.014255/4255ActiveRecord::AttributeMethods::ClassMethods#has_attribute?55 +
  0.010.000.000.004255/20661ActiveRecord::ModelSchema::ClassMethods#inheritance_column55 +
  0.000.000.000.004255/28871ActiveRecord::Inheritance::ClassMethods#abstract_class?51 +
  0.420.010.000.414255/4255ActiveRecord::Inheritance::ClassMethods#new66
5.05%0.11%0.420.010.000.414255 + + ActiveRecord::Core#initialize + + 318
  0.250.000.000.254255/4255ActiveModel::AttributeAssignment#assign_attributes325 +
  0.080.000.000.074255/4255ActiveRecord::Scoping#initialize_internals_callback323 +
  0.040.000.000.034255/4255ActiveModel::AttributeSet#deep_dup320 +
  0.020.000.000.024255/9519ActiveRecord::AttributeMethods::ClassMethods#define_attribute_methods319 +
  0.010.000.000.014255/6887ActiveRecord::Base#_run_initialize_callbacks328 +
  0.010.000.000.014255/6887ActiveRecord::Aggregations#init_internals322 +
  0.000.000.000.004255/4307ActiveRecord::ModelSchema::ClassMethods#_default_attributes320 +
  0.000.000.000.008510/371594Kernel#class319 +
  0.000.000.000.004255/64127Kernel#block_given?327 +
  0.380.000.000.38623/623ActiveModel::EachValidator#validate152
4.63%0.01%0.380.000.000.38623 + + ActiveRecord::Validations::UniquenessValidator#validate_each + + 19
  0.360.000.000.36623/623ActiveRecord::FinderMethods#exists?34 +
  0.020.000.000.02623/623ActiveRecord::Validations::UniquenessValidator#build_relation23 +
  0.000.000.000.00623/623ActiveRecord::Validations::UniquenessValidator#find_finder_class_for20 +
  0.000.000.000.00623/7623ActiveRecord::Persistence#persisted?24 +
  0.000.000.000.00623/623ActiveRecord::Validations::UniquenessValidator#scope_relation31 +
  0.000.000.000.00623/623ActiveRecord::Validations::UniquenessValidator#map_enum_attribute21 +
  0.370.000.000.372632/2632ActiveRecord::Associations::SingularAssociation#find_target39
4.47%0.02%0.370.000.000.372632 + + ActiveRecord::Associations::Association#scope + + 78
  0.210.000.000.212632/2632ActiveRecord::Associations::Association#association_scope79 +
  0.100.000.000.102632/2633ActiveRecord::Associations::Association#target_scope79 +
  0.060.000.000.062632/5266ActiveRecord::SpawnMethods#merge!79 +
  0.000.000.000.001/201Gem::Dependency#matching_specs282
  0.000.000.000.003/201<Module::Bootsnap::CompileCache>#setup15
  0.000.000.000.0012/201Kernel#gem_original_require
  0.000.000.000.002/201<Module::Bootsnap::LoadPathCache>#setup44
  0.010.000.000.011/201Kernel#require3
  0.030.000.000.0372/201Kernel#require_without_bootsnap
  0.030.010.000.03107/201Kernel#require_relative
  0.350.000.000.353/201Kernel#load
4.38%0.22%0.360.020.000.34201 + + *Kernel#require_relative + +
  0.340.000.000.3437/2504Kernel#require3 +
  0.030.010.000.03107/201Kernel#require_relative9 +
  0.020.000.000.02148/1349Bootsnap::CompileCache::ISeq::InstructionSequenceMixin#load_iseq +
  0.010.000.000.011/1<Module::Bundler>#require7 +
  0.000.000.000.001/94<Class::Rails::Railtie>#config12 +
  0.000.000.000.001/1<Module::Bootsnap::ExplicitRequire>#with_gems5 +
  0.000.000.000.001/1<Class::Nokogiri::EncodingHandler>#install_default_aliases57 +
  0.000.000.000.007/645ActiveSupport::Dependencies::Loadable#require7 +
  0.000.000.000.002/2<Module::Loofah::MetaHelpers>#add_downcased_set_members_to_all_set_constants97 +
  0.000.000.000.001/1Forwardable#def_delegators68 +
  0.000.000.000.0044/1196Module#class_eval172 +
  0.000.000.000.0029/4997Set#initialize79 +
  0.000.000.000.001/1<Class::Rails::Application>#inherited10 +
  0.000.000.000.00368/8869Array#flatten2031 +
  0.000.000.000.001/1<Module::Rails>#groups7 +
  0.000.000.000.002/4<Module::Nokogiri>#uses_libxml?1538 +
  0.000.000.000.005/49<Class::Struct>#new6 +
  0.000.000.000.0011/17Set#+92 +
  0.000.000.000.0068/544Module#attr_reader113 +
  0.000.000.000.0059/651Module#include66 +
  0.000.000.000.0013/972Module#module_eval58 +
  0.000.000.000.001029/20034Module#method_added100 +
  0.000.000.000.001/1Nokogiri::VersionInfo#to_hash222 +
  0.000.000.000.001/3Rails::Application::Configuration#load_defaults12 +
  0.000.000.000.0031/273Module#attr_accessor21 +
  0.000.000.000.001/1Pathname#cleanpath13 +
  0.000.000.000.001/2Nokogiri::VersionInfo#warnings186 +
  0.000.000.000.0095/101Symbol#downcase172 +
  0.000.000.000.0075/695Module#alias_method136 +
  0.000.000.000.0011/347Kernel#extend176 +
  0.000.000.000.00256/94920Symbol#to_s172 +
  0.000.000.000.00368/368Struct#[]=2031 +
  0.000.000.000.0011/5686Array#join15 +
  0.000.000.000.00187/3699BasicObject#singleton_method_added4 +
  0.000.000.000.001/1<Class::RubyVM::InstructionSequence>#compile23 +
  0.000.000.000.00368/368Struct#[]2031 +
  0.000.000.000.0092/92<Class::Struct::HTMLElementDescription>#new2027 +
  0.000.000.000.001/2<Module::Bootsnap::CompileCache::ISeq>#compile_option_updated108 +
  0.000.000.000.0042/236IO#set_encoding +
  0.000.000.000.00121/2098Class#inherited65 +
  0.000.000.000.006/647Module#autoload12 +
  0.000.000.000.007/1587<Class::File>#expand_path1 +
  0.000.000.000.0023/1715Module#define_method51 +
  0.000.000.000.0023/270Module#undef_method8 +
  0.000.000.000.001/41RubyVM::InstructionSequence#to_binary23 +
  0.000.000.000.0054/824Module#private342 +
  0.000.000.000.003/32Module#prepend99 +
  0.000.000.000.001/1<Module::Nokogiri>#libxml2_patches10 +
  0.000.000.000.004/4<Module::Nokogiri>#jruby?130 +
  0.000.000.000.007/23Kernel#__dir__1 +
  0.000.000.000.002/594Module#constants169 +
  0.000.000.000.006/121Class#initialize9 +
  0.000.000.000.001/1172Kernel#method16 +
  0.000.000.000.001/21Bootsnap#bundler?12 +
  0.000.000.000.0016/170Module#protected98 +
  0.000.000.000.0010/6446Array#compact15 +
  0.000.000.000.001/2<Module::Bootsnap::LoadPathCache>#supported?73 +
  0.000.000.000.002/2Concurrent::AbstractLocals#initialize42 +
  0.000.000.000.005/1882<Class::File>#basename41 +
  0.000.000.000.001/9776Float#to_s216 +
  0.000.000.000.001/2<Module::Bootsnap::CompileCache::ISeq>#supported?108 +
  0.000.000.000.002/2<Class::Rails::HTML::Sanitizer>#html5_support?54 +
  0.000.000.000.007/8<Class::Rack::Files>#method_added29 +
  0.000.000.000.002/30Module#attr_writer6 +
  0.000.000.000.002/20Singleton::SingletonClassMethods#instance186 +
  0.000.000.000.0013/17049Kernel#freeze14 +
  0.000.000.000.0013/1874Module#method_defined?13 +
  0.000.000.000.005/1171<Class::File>#extname42 +
  0.000.000.000.001/25Comparable#<5 +
  0.000.000.000.006/30812String#include?39 +
  0.000.000.000.007/148727Kernel#respond_to?217 +
  0.000.000.000.001/1Exception#message9 +
  0.000.000.000.0026/24391Symbol#to_sym170 +
  0.000.000.000.0021/125Integer#<<73 +
  0.000.000.000.002/17Set#freeze79 +
  0.000.000.000.001/9<Object::Object>#[]=1 +
  0.000.000.000.001/311Kernel#define_singleton_method16 +
  0.000.000.000.001/150<Class::Regexp>#escape3 +
  0.000.000.000.001/42Module#initialize3 +
  0.000.000.000.005/190Symbol#inspect117 +
  0.000.000.000.005/70320BasicObject#initialize5 +
  0.000.000.000.005/30Module#ruby2_keywords240 +
  0.000.000.000.001/48Hash#values_at11 +
  0.000.000.000.002/150Comparable#>=68 +
  0.000.000.000.001/7Kernel#autoload3 +
  0.000.000.000.001/43Module#remove_method29 +
  0.000.000.000.003/108Module#private_constant130 +
  0.000.000.000.001/1Kernel#rand216 +
  0.000.000.000.001/1<Class::Regexp>#last_match7 +
  0.000.000.000.002/290Thread::Mutex#initialize548 +
  0.000.000.000.001/25<Module::Bundler>#bundle_path13 +
  0.000.000.000.003/47Module#private_class_method38 +
  0.000.000.000.001/47Regexp#to_s7 +
  0.000.000.000.001/9896Pathname#to_s13 +
  0.000.000.000.001/137<Class::File>#dirname3 +
  0.000.000.000.002/117Module#module_function4 +
  0.000.000.000.002/153Module#instance_method337 +
  0.000.000.000.001/394String#force_encoding216 +
  0.000.000.000.001/15Exception#initialize +
  0.000.000.000.003/38491String#freeze13 +
  0.000.000.000.001/137<Object::Object>#[]1 +
  0.000.000.000.001/1660BasicObject#equal?218 +
  0.000.000.000.001/12Concurrent::Utility::EngineDetector#on_cruby?47 +
  0.000.000.000.001/11024String#-@218 +
  0.000.000.000.001/6Module#deprecate_constant1050 +
  0.000.000.000.001/19Exception#exception +
  0.000.000.000.001/19Exception#backtrace +
  0.000.000.000.001/657190Module#===7 +
  0.360.000.000.36623/623ActiveRecord::Validations::UniquenessValidator#validate_each34
4.35%0.01%0.360.000.000.36623 + + ActiveRecord::FinderMethods#exists? + + 305
  0.350.000.000.35623/3878ActiveRecord::Relation#skip_query_cache_if_necessary322 +
  0.010.000.000.01623/623ActiveRecord::FinderMethods#construct_relation_for_exists320 +
  0.000.000.000.00623/9770ActiveRecord::Relation#eager_loading?315 +
  0.000.000.000.00623/8391ActiveRecord::QueryMethods#limit_value313 +
  0.000.000.000.00623/12388ActiveRecord::Core::ClassMethods#===306 +
  0.020.000.000.021/2<Class::ActiveRecord::Base>#import538
  0.340.000.000.341/2<Class::ActiveRecord::Base>#bulk_import536
4.33%0.04%0.360.000.000.352 + + <Class::ActiveRecord::Base>#import_helper + + 555
  0.110.000.000.111000/1000ActiveRecord::Import::Validator#valid_model?602 +
  0.080.000.000.081000/1000<Class::ActiveRecord::Base>#load_association_ids599 +
  0.060.000.000.061/1<Class::ActiveRecord::Base>#import_with_validations702 +
  0.040.000.000.041/1<Class::ActiveRecord::Base>#set_attributes_and_mark_clean744 +
  0.020.010.000.017000/12265ActiveRecord::AttributeMethods::Read#read_attribute613 +
  0.010.000.000.011001/1001<Class::ActiveRecord::Base>#supports_setting_primary_key_of_imported_objects?598 +
  0.010.000.000.011/2<Class::ActiveRecord::Base>#import_without_validations_or_callbacks733 +
  0.010.000.000.015/72191ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods#primary_key559 +
  0.010.000.000.012/7ActiveRecord::AttributeMethods::ClassMethods#attribute_names560 +
  0.000.000.000.007000/7623ActiveRecord::Persistence#persisted?608 +
  0.000.000.000.007000/287390String#to_s613 +
  0.000.000.000.002/2ActiveRecord::Import::Validator#initialize563 +
  0.000.000.000.002/2<Class::ActiveRecord::Base>#add_special_rails_stamps698 +
  0.000.000.000.004/4997Set#initialize813 +
  0.000.000.000.002/31368ActiveRecord::ConnectionHandling#connection572 +
  0.000.000.000.002/2Set#subset?813 +
  0.000.000.000.0010/10<Class::ActiveRecord::Base>#validate_hash_import630 +
  0.000.000.000.0011/943String#to_sym661 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::Column#type581 +
  0.000.000.000.001/15653ActiveRecord::AttributeMethods::PrimaryKey#id579 +
  0.000.000.000.001/10<Class::ActiveRecord::Base>#schema_columns_hash581 +
  0.000.000.000.002/16437Hash#merge!557 +
  0.000.000.000.008/325297Kernel#is_a?557 +
  0.000.000.000.005/8188Kernel#Array660 +
  0.000.000.000.009/39677Array#last557 +
  0.000.000.000.003/3258<Class::ActiveRecord::Base>#record_timestamps697 +
  0.000.000.000.001/1ActiveRecord::ConnectionAdapters::AbstractAdapter#supports_virtual_columns?572 +
  0.000.000.000.002/2708Object#present?562 +
  0.000.000.000.001/3258ActiveRecord::Timestamp::ClassMethods#timestamp_attributes_for_update589 +
  0.000.000.000.002/3274ActiveRecord::Locking::Optimistic::ClassMethods#locking_column560 +
  0.000.000.000.002/5ActiveRecord::Import::Result#num_inserts740 +
  0.000.000.000.002/11950Array#pop557 +
  0.000.000.000.002/148727Kernel#respond_to?572 +
  0.000.000.000.002/24391Symbol#to_sym660 +
  0.000.000.000.002/3303Array#initialize_copy621 +
  0.000.000.000.001/37044ActiveRecord::ModelSchema::ClassMethods#column_names575 +
  0.000.000.000.005/9772ActiveRecord::ConnectionAdapters::DatabaseStatements#delete175
  0.100.000.000.103255/9772ActiveRecord::ConnectionAdapters::DatabaseStatements#insert161
  0.250.010.000.246512/9772ActiveRecord::ConnectionAdapters::DatabaseStatements#select_all61
4.26%0.22%0.350.020.000.339772 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#to_sql_and_binds + + 17
  0.300.000.000.307138/7139ActiveRecord::ConnectionAdapters::DetermineIfPreparableVisitor#accept25 +
  0.020.010.000.017138/7139ActiveRecord::ConnectionAdapters::AbstractAdapter#collector25 +
  0.010.000.000.007138/7139Arel::Collectors::Composite#value25 +
  0.000.000.000.009772/148727Kernel#respond_to?18 +
  0.000.000.000.009772/38491String#freeze36 +
  0.000.000.000.007138/7138ActiveRecord::ConnectionAdapters::DatabaseLimits#bind_params_length27 +
  0.000.000.000.002634/40374String#initialize_copy39 +
  0.000.000.000.00623/6511ActiveRecord::Validations::UniquenessValidator#build_relation85
  0.090.000.000.092633/6511ActiveRecord::Associations::AssociationScope#apply_scope156
  0.250.010.000.253255/6511ActiveRecord::QueryMethods#where581
4.21%0.14%0.350.010.000.346511 + + ActiveRecord::QueryMethods#where! + + 585
  0.280.010.000.276511/6511ActiveRecord::Relation::WhereClauseFactory#build588 +
  0.020.010.000.015888/5888ActiveRecord::QueryMethods#references!587 +
  0.010.010.000.015888/5888<Class::ActiveRecord::PredicateBuilder>#references587 +
  0.010.000.000.006511/9144ActiveRecord::QueryMethods#where_clause=588 +
  0.010.000.000.006511/6511ActiveRecord::QueryMethods#where_clause_factory588 +
  0.000.000.000.006511/6511ActiveRecord::Relation::WhereClause#+588 +
  0.000.000.000.006511/31318ActiveRecord::QueryMethods#where_clause588 +
  0.000.000.000.006511/6511ActiveModel::ForbiddenAttributesProtection#sanitize_forbidden_attributes586 +
  0.000.000.000.006511/657190Module#===587 +
  0.340.000.000.341/1<Class::Thread>#handle_interrupt
4.11%0.00%0.340.000.000.341 + + <Class::ActiveRecord::Base>#import! + + 546
  0.340.000.000.341/1<Class::ActiveRecord::Base>#bulk_import551 +
  0.000.000.000.001/39677Array#last547 +
  0.000.000.000.001/325297Kernel#is_a?547 +
  0.340.000.000.341/1<Class::ActiveRecord::Base>#import!551
4.11%0.00%0.340.000.000.341 + + <Class::ActiveRecord::Base>#bulk_import + + 530
  0.340.000.000.341/2<Class::ActiveRecord::Base>#import_helper536 +
  0.000.000.000.001/39677Array#last533 +
  0.000.000.000.001/16437Hash#merge!533 +
  0.000.000.000.003/325297Kernel#is_a?531 +
  0.000.000.000.001/11950Array#pop533 +
  0.000.000.000.008/19556<Class::Listen::Logger>#debug28
  0.140.000.000.139774/19556ActiveRecord::LogSubscriber#log_query_source111
  0.190.000.000.199774/19556ActiveSupport::LogSubscriber#debug96
4.01%0.09%0.330.010.000.3219556 + + Logger#debug + + 493
  0.320.010.000.3119548/19548ActiveSupport::Logger#add494 +
  0.000.000.000.008/19558Logger#add494 +
  0.320.010.000.3119548/19548Logger#debug494
3.91%0.15%0.320.010.000.3119548 + + ActiveSupport::Logger#add + + 87
  0.290.030.000.2619548/19558Logger#add89 +
  0.020.010.000.0219548/48890ActiveSupport::LoggerThreadSafeLevel#level88 +
  0.320.150.000.179774/9774ActiveRecord::LogSubscriber#log_query_source103
3.88%1.84%0.320.150.000.179774 + + ActiveRecord::LogSubscriber#extract_callstack + + 115
  0.110.070.000.03464433/464433ActiveRecord::LogSubscriber#ignored_callstack117 +
  0.060.060.000.00928866/928981Thread::Backtrace::Location#absolute_path117 +
  0.000.000.000.009774/9886Thread::Backtrace::Location#lineno123 +
  0.000.000.000.009774/9886Thread::Backtrace::Location#path123 +
  0.310.000.000.31623/623ActiveRecord::Relation#skip_query_cache_if_necessary322
3.77%0.00%0.310.000.000.31623 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#select_one + + 76
  0.310.000.000.31623/6512ActiveRecord::ConnectionAdapters::QueryCache#select_all77 +
  0.000.000.000.00623/623ActiveRecord::Result#first77 +
  0.000.000.000.001/7139ActiveRecord::ConnectionAdapters::DatabaseStatements#cacheable_query48
  0.300.000.000.307138/7139ActiveRecord::ConnectionAdapters::DatabaseStatements#to_sql_and_binds25
3.68%0.04%0.300.000.000.307139 + + ActiveRecord::ConnectionAdapters::DetermineIfPreparableVisitor#accept + + 8
  0.300.000.000.307139/7139Arel::Visitors::Reduce#accept10 +
  0.300.000.000.307139/7139ActiveRecord::ConnectionAdapters::DetermineIfPreparableVisitor#accept10
3.64%0.03%0.300.000.000.307139 + + Arel::Visitors::Reduce#accept + + 7
  0.300.010.000.297139/68679Arel::Visitors::Reduce#visit8 +
  0.000.000.000.005/68679Arel::Visitors::ToSql#visit_Arel_Nodes_DeleteStatement81
  0.010.000.000.013255/68679Arel::Visitors::ToSql#visit_Arel_Nodes_InsertStatement126
  0.010.000.000.013879/68679Arel::Visitors::ToSql#visit_Arel_Nodes_JoinSource546
  0.010.000.000.013879/68679Arel::Visitors::ToSql#visit_Arel_Nodes_Limit408
  0.020.000.000.023879/68679Arel::Visitors::ToSql#visit_Arel_Nodes_SelectCore251
  0.020.010.000.026500/68679Arel::Visitors::ToSql#visit_Arel_Nodes_Values198
  0.060.010.000.0414248/68679Arel::Visitors::ToSql#visit_Arel_Nodes_Equality664
  0.070.010.000.0611013/68679Arel::Visitors::ToSql#maybe_visit815
  0.080.010.000.087124/68679Arel::Visitors::ToSql#inject_join822
  0.120.010.000.117758/68679Arel::Visitors::ToSql#collect_nodes_for270
  0.300.010.000.297139/68679Arel::Visitors::Reduce#accept8
3.61%0.71%0.300.060.000.2468679 + + *Arel::Visitors::Reduce#visit + + 13
  0.210.010.000.213879/3879Arel::Visitors::ToSql#visit_Arel_Nodes_SelectStatement15 +
  0.090.000.000.093879/3879Arel::Visitors::ToSql#visit_Arel_Nodes_And15 +
  0.080.010.000.073255/3255Arel::Visitors::ToSql#visit_Arel_Nodes_InsertStatement15 +
  0.070.010.000.077124/7124Arel::Visitors::ToSql#visit_Arel_Nodes_Equality15 +
  0.040.000.000.0417503/17503Arel::Visitors::PostgreSQL#visit_Arel_Nodes_BindParam15 +
  0.040.010.000.033255/3255Arel::Visitors::ToSql#visit_Arel_Nodes_Values15 +
  0.030.010.000.0210380/10380Arel::Visitors::ToSql#visit_Arel_Attributes_Attribute15 +
  0.020.000.000.023879/3879Arel::Visitors::ToSql#visit_Arel_Nodes_Limit15 +
  0.010.000.000.017139/7139Arel::Visitors::ToSql#visit_Arel_Table15 +
  0.010.000.000.013879/3879Arel::Visitors::ToSql#visit_Arel_Nodes_JoinSource15 +
  0.010.010.000.0068679/68679Arel::Visitors::Visitor#dispatch14 +
  0.010.010.000.0068700/189188Kernel#hash17 +
  0.010.010.000.0068679/371594Kernel#class14 +
  0.000.000.000.00623/623ActiveRecord::ConnectionAdapters::DetermineIfPreparableVisitor#visit_Arel_Nodes_SqlLiteral15 +
  0.000.000.000.003879/3879Arel::Visitors::ToSql#visit_Arel_Nodes_Top15 +
  0.000.000.000.005/5Arel::Visitors::ToSql#visit_Arel_Nodes_DeleteStatement15 +
  0.000.000.000.0013/43923Module#name17 +
  0.290.000.000.29625/625ActiveRecord::ConnectionAdapters::DatabaseStatements#select_all70
3.54%0.00%0.290.000.000.29625 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#select + + 477
  0.290.000.000.29625/9767ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_query478 +
  0.000.000.000.002/19558Logger#info528
  0.000.000.000.008/19558Logger#debug494
  0.290.030.000.2619548/19558ActiveSupport::Logger#add89
3.47%0.32%0.290.030.000.2619558 + + Logger#add + + 458
  0.160.010.000.1519548/19548Logger::LogDevice#write474 +
  0.070.010.000.0619548/19548Logger#format_message474 +
  0.020.000.000.0119548/48890ActiveSupport::LoggerThreadSafeLevel#level460 +
  0.010.010.000.0019548/22814<Class::Time>#now474 +
  0.000.000.000.0019548/19548Logger#format_severity474 +
  0.000.000.000.0019548/64127Kernel#block_given?467 +
  0.280.010.000.276511/6511ActiveRecord::QueryMethods#where!588
3.34%0.13%0.280.010.000.276511 + + ActiveRecord::Relation::WhereClauseFactory#build + + 11
  0.240.000.000.245888/5888ActiveRecord::PredicateBuilder#build_from_hash19 +
  0.020.000.000.015888/5888ActiveRecord::PredicateBuilder#resolve_column_aliases16 +
  0.010.000.000.005888/5888Hash#stringify_keys!17 +
  0.000.000.000.0020156/657190Module#===12 +
  0.000.000.000.006511/23555ActiveRecord::Relation::WhereClause#initialize26 +
  0.270.000.000.263255/3255ActiveRecord::FinderMethods#find_by81
3.21%0.03%0.270.000.000.263255 + + ActiveRecord::QueryMethods#where + + 575
  0.250.010.000.253255/6511ActiveRecord::QueryMethods#where!581 +
  0.010.000.000.013255/6511ActiveRecord::SpawnMethods#spawn581 +
  0.000.000.000.003255/8521Hash#blank?578 +
  0.250.000.000.254255/4255ActiveRecord::Core#initialize325
3.07%0.05%0.250.000.000.254255 + + ActiveModel::AttributeAssignment#assign_attributes + + 28
  0.240.010.000.234255/4255ActiveRecord::AttributeAssignment#_assign_attributes35 +
  0.010.000.000.014255/10768Hash#stringify_keys34 +
  0.000.000.000.004255/4255ActiveModel::ForbiddenAttributesProtection#sanitize_for_mass_assignment35 +
  0.000.000.000.004255/148727Kernel#respond_to?29 +
  0.240.010.000.234255/4255ActiveModel::AttributeAssignment#assign_attributes35
2.90%0.11%0.240.010.000.234255 + + ActiveRecord::AttributeAssignment#_assign_attributes + + 12
  0.230.000.000.224255/4255ActiveModel::AttributeAssignment#_assign_attributes23 +
  0.000.000.000.0012500/325297Kernel#is_a?19 +
  0.000.000.000.0012500/30812String#include?17 +
  0.240.000.000.245888/5888ActiveRecord::Relation::WhereClauseFactory#build19
2.90%0.03%0.240.000.000.245888 + + ActiveRecord::PredicateBuilder#build_from_hash + + 19
  0.230.030.000.205888/8520ActiveRecord::PredicateBuilder#expand_from_hash21 +
  0.010.010.000.005888/5888ActiveRecord::PredicateBuilder#convert_dot_notation_to_hash20 +
  0.000.000.000.001/31368ActiveRecord::ModelSchema::ClassMethods#reset_sequence_name288
  0.000.000.000.002/31368<Class::ActiveRecord::Base>#values_sql_for_columns_and_attributes1020
  0.000.000.000.002/31368<Class::ActiveRecord::Base>#import_helper572
  0.000.000.000.002/31368ActiveRecord::ModelSchema::ClassMethods#quoted_table_name206
  0.000.000.000.005/31368ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods#get_primary_key100
  0.000.000.000.004/31368<Class::ActiveRecord::Base>#supports_import?269
  0.000.000.000.0015/31368<Class::ActiveRecord::Base>#import_without_validations_or_callbacks811
  0.000.000.000.0010/31368ActiveRecord::ModelSchema::ClassMethods#table_exists?324
  0.000.000.000.0022/31368ActiveRecord::ModelSchema::ClassMethods#load_schema!466
  0.000.000.000.00623/31368ActiveRecord::Validations::UniquenessValidator#build_relation83
  0.010.000.000.015/31368ActiveRecord::Relation#delete_all409
  0.010.000.000.012002/31368<Class::ActiveRecord::Base>#supports_setting_primary_key_of_imported_objects?283
  0.020.000.000.022632/31368ActiveRecord::Associations::SingularAssociation#find_target42
  0.020.000.000.023255/31368ActiveRecord::Transactions#add_to_transaction372
  0.020.000.000.023255/31368ActiveRecord::Persistence::ClassMethods#_insert_record187
  0.030.000.000.023256/31368ActiveRecord::Transactions::ClassMethods#transaction212
  0.030.000.000.033255/31368ActiveRecord::ModelSchema::ClassMethods#prefetch_primary_key?313
  0.040.000.000.045887/31368ActiveRecord::Querying#find_by_sql41
  0.050.000.000.057135/31368ActiveRecord::Delegation#connection76
2.86%0.11%0.240.010.000.2331368 + + ActiveRecord::ConnectionHandling#connection + + 89
  0.230.020.000.2131368/31368ActiveRecord::ConnectionHandling#retrieve_connection90 +
  0.050.000.000.042632/8520ActiveRecord::PredicateBuilder#expand_from_hash91
  0.230.030.000.205888/8520ActiveRecord::PredicateBuilder#build_from_hash21
2.79%0.44%0.230.040.000.198520 + + *ActiveRecord::PredicateBuilder#expand_from_hash + + 68
  0.120.020.000.109133/9133ActiveRecord::PredicateBuilder#build112 +
  0.050.000.000.042632/8520ActiveRecord::PredicateBuilder#expand_from_hash91 +
  0.020.000.000.022632/2632ActiveRecord::PredicateBuilder::AssociationQueryValue#queries90 +
  0.020.000.000.029133/9133ActiveRecord::TableMetadata#arel_attribute112 +
  0.010.000.000.012632/2632ActiveRecord::TableMetadata#associated_table80 +
  0.010.000.000.0111765/11765ActiveRecord::TableMetadata#associated_with?74 +
  0.010.000.000.019133/9133ActiveRecord::TableMetadata#aggregated_with?94 +
  0.000.000.000.0011765/325297Kernel#is_a?72 +
  0.000.000.000.002632/2632ActiveRecord::TableMetadata#polymorphic_association?81 +
  0.000.000.000.002632/2632ActiveRecord::PredicateBuilder::AssociationQueryValue#initialize90 +
  0.000.000.000.006/1349<Module::Kernel>#load
  0.000.000.000.0029/1349Kernel#load
  0.020.000.000.02148/1349Kernel#require_relative
  0.210.000.000.211166/1349Kernel#require_without_bootsnap
2.79%0.01%0.230.000.000.231349 + + Bootsnap::CompileCache::ISeq::InstructionSequenceMixin#load_iseq + + 85
  0.230.000.000.231349/1349<Module::Bootsnap::CompileCache::ISeq>#fetch89 +
  0.000.000.000.001349/287390String#to_s89 +
  0.230.000.000.231349/1349Bootsnap::CompileCache::ISeq::InstructionSequenceMixin#load_iseq89
2.77%0.01%0.230.000.000.231349 + + <Module::Bootsnap::CompileCache::ISeq>#fetch + + 63
  0.230.140.000.091349/1349<Module::Bootsnap::CompileCache::Native>#fetch64 +
  0.000.000.000.001349/287390String#to_s64 +
  0.230.140.000.091349/1349<Module::Bootsnap::CompileCache::ISeq>#fetch64
2.76%1.71%0.230.140.000.091349 + + <Module::Bootsnap::CompileCache::Native>#fetch + +
  0.080.000.000.081349/1349<Module::Bootsnap::CompileCache::ISeq>#storage_to_output +
  0.010.000.000.0140/40<Module::Bootsnap::CompileCache::ISeq>#input_to_storage +
  0.230.020.000.2131368/31368ActiveRecord::ConnectionHandling#connection90
2.75%0.20%0.230.020.000.2131368 + + ActiveRecord::ConnectionHandling#retrieve_connection + + 117
  0.130.020.000.1131368/31368ActiveRecord::ConnectionAdapters::ConnectionHandler#retrieve_connection118 +
  0.040.020.000.0331368/94103ActiveRecord::ConnectionHandling#connection_specification_name118 +
  0.040.010.000.0331368/31372<Class::ActiveRecord::Base>#connection_handler118 +
  0.230.000.000.231/1Rake::Application#standard_exception_handling82
2.74%0.00%0.230.000.000.231 + + Rake::Application#load_rakefile + + 124
  0.230.000.000.231/3Rake::Application#standard_exception_handling125 +
  0.230.000.000.231/1Rake::Application#standard_exception_handling126
2.74%0.00%0.230.000.000.231 + + Rake::Application#raw_load_rakefile + + 719
  0.230.000.000.231/1<Module::Rake>#load_rakefile735 +
  0.000.000.000.001/1Rake::Application#find_rakefile_location720 +
  0.000.000.000.001/1587<Class::File>#expand_path735 +
  0.000.000.000.001/1Rake::Application#glob737 +
  0.000.000.000.001/1Rake::Application#print_rakefile_directory733 +
  0.000.000.000.001/28<Class::Dir>#chdir732 +
  0.000.000.000.001/1<Object::OpenStruct>#rakelib736 +
  0.000.000.000.003/57Rake::Application#options721 +
  0.000.000.000.001/1Rake::Application#load_imports742 +
  0.000.000.000.001/1<Object::OpenStruct>#ignore_system721 +
  0.000.000.000.001/1<Object::OpenStruct>#load_system721 +
  0.230.000.000.231/1Rake::Application#raw_load_rakefile735
2.74%0.00%0.230.000.000.231 + + <Module::Rake>#load_rakefile + + 28
  0.230.000.000.231/31Kernel#load29 +
  0.230.000.000.224255/4255ActiveRecord::AttributeAssignment#_assign_attributes23
2.74%0.05%0.230.000.000.224255 + + ActiveModel::AttributeAssignment#_assign_attributes + + 42
  0.220.010.000.2112500/12500ActiveModel::AttributeAssignment#_assign_attribute44 +
  0.220.010.000.2112500/12500ActiveModel::AttributeAssignment#_assign_attributes44
2.69%0.16%0.220.010.000.2112500 + + ActiveModel::AttributeAssignment#_assign_attribute + + 48
  0.080.000.000.072632/2632BusesService::GeneratedAssociationMethods#bus=51 +
  0.030.000.000.031000/1000Trip::GeneratedAssociationMethods#from=51 +
  0.030.020.000.0112500/29028ActiveRecord::AttributeMethods#respond_to?50 +
  0.030.000.000.031000/1000Trip::GeneratedAssociationMethods#bus=51 +
  0.030.000.000.031000/1000Trip::GeneratedAssociationMethods#to=51 +
  0.010.000.000.012632/2632#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104910730>#service_id=51 +
  0.010.000.000.011000/1000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#price_cents=51 +
  0.000.000.000.001000/1000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#start_time=51 +
  0.000.000.000.001000/1000#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#duration_minutes=51 +
  0.000.000.000.00613/613#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x00000001048e13e0>#number=51 +
  0.000.000.000.00613/613#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x00000001048e13e0>#model=51 +
  0.000.000.000.0010/10#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x00000001052d0248>#name=51 +
  0.000.000.000.001/39153ActiveRecord::ConnectionAdapters::ConnectionPool#flush619
  0.000.000.000.001/39153ActiveRecord::ConnectionAdapters::ConnectionPool#reap595
  0.000.000.000.002/39153ActiveRecord::ConnectionAdapters::ConnectionPool#try_to_checkout_new_connection844
  0.000.000.000.001/39153ActiveRecord::ConnectionAdapters::ConnectionPool::Queue#synchronize155
  0.000.000.000.006/39153ActiveSupport::Concurrency::ShareLock#stop_exclusive97
  0.000.000.000.006/39153ActiveSupport::Concurrency::ShareLock#start_exclusive77
  0.060.010.000.0619588/39153ActiveSupport::Concurrency::ShareLock#yield_shares173
  0.150.010.000.1419548/39153Logger::LogDevice#write33
2.59%0.13%0.210.010.000.2039153 + + MonitorMixin#synchronize + + 201
  0.200.030.000.1739153/39253Monitor#synchronize202 +
  0.210.000.000.219774/9774ActiveRecord::LogSubscriber#debug95
2.58%0.06%0.210.000.000.219774 + + ActiveSupport::LogSubscriber#debug + + 95
  0.190.000.000.199774/19556Logger#debug96 +
  0.010.000.000.0119548/58704ActiveRecord::LogSubscriber#logger96 +
  0.210.010.000.213879/3879Arel::Visitors::Reduce#visit15
2.56%0.06%0.210.010.000.213879 + + Arel::Visitors::ToSql#visit_Arel_Nodes_SelectStatement + + 210
  0.180.010.000.173879/3879Arel::Visitors::ToSql#visit_Arel_Nodes_SelectCore217 +
  0.030.000.000.033879/3879Arel::Visitors::ToSql#visit_Arel_Nodes_SelectOptions229 +
  0.210.000.000.212632/2632ActiveRecord::Associations::Association#scope79
2.52%0.02%0.210.000.000.212632 + + ActiveRecord::Associations::Association#association_scope + + 88
  0.210.000.000.202632/2632<Class::ActiveRecord::Associations::AssociationScope>#scope90 +
  0.000.000.000.002632/26326ActiveRecord::Associations::Association#klass89 +
  0.000.000.000.001/645ActiveSupport::Dependencies::Loadable#require90 +
  0.210.000.000.202632/2632ActiveRecord::Associations::Association#association_scope90
2.48%0.01%0.210.000.000.202632 + + <Class::ActiveRecord::Associations::AssociationScope>#scope + + 6
  0.200.000.000.202632/2633ActiveRecord::Associations::AssociationScope#scope7 +
  0.000.000.000.001/2633<Class::ActiveRecord::StatementCache>#create45
  0.200.000.000.202632/2633<Class::ActiveRecord::Associations::AssociationScope>#scope7
2.47%0.05%0.200.000.000.202633 + + ActiveRecord::Associations::AssociationScope#scope + + 21
  0.150.000.000.142633/2633ActiveRecord::Associations::AssociationScope#add_constraints29 +
  0.030.000.000.022633/2633ActiveRecord::Relation#alias_tracker26 +
  0.010.000.000.012633/3256ActiveRecord::Scoping::Default::ClassMethods#unscoped24 +
  0.010.000.000.012633/2633ActiveRecord::QueryMethods#extending!28 +
  0.010.000.000.002633/2633ActiveRecord::Associations::AssociationScope#get_chain26 +
  0.000.000.000.002633/2633ActiveRecord::Reflection::AssociationReflection#extensions28 +
  0.000.000.000.002633/26326ActiveRecord::Associations::Association#klass22 +
  0.200.000.000.205/5DatabaseReloader#call17
2.42%0.00%0.200.000.000.205 + + ActiveRecord::Querying#delete_all + + 10
  0.200.000.000.205/5ActiveRecord::Relation#delete_all10 +
  0.000.000.000.005/9150ActiveRecord::Scoping::Named::ClassMethods#all10 +
  0.200.000.000.205/5ActiveRecord::Querying#delete_all10
2.39%0.00%0.200.000.000.205 + + ActiveRecord::Relation#delete_all + + 386
  0.190.000.000.195/5ActiveRecord::ConnectionAdapters::AbstractAdapter#delete409 +
  0.010.000.000.015/31368ActiveRecord::ConnectionHandling#connection409 +
  0.000.000.000.005/3884ActiveRecord::QueryMethods#arel406 +
  0.000.000.000.005/9771ActiveRecord::Relation#reset411 +
  0.000.000.000.005/5Arel::DeleteManager#initialize400 +
  0.000.000.000.005/9770ActiveRecord::Relation#eager_loading?395 +
  0.000.000.000.005/5ActiveRecord::Relation#has_join_values?403 +
  0.000.000.000.005/5ActiveRecord::Relation#has_limit_or_offset?403 +
  0.000.000.000.0015/206890ActiveRecord::QueryMethods#get_value388 +
  0.000.000.000.005/5ActiveRecord::Relation::WhereClause#any?389 +
  0.000.000.000.005/5Arel::DeleteManager#from401 +
  0.000.000.000.005/5Arel::DeleteManager#wheres=406 +
  0.000.000.000.005/5Arel::SelectManager#constraints406 +
  0.000.000.000.005/3799Module#to_s409 +
  0.070.010.000.073887/9774ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_no_cache608
  0.120.010.000.115887/9774ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#exec_cache618
2.35%0.18%0.190.010.000.189774 + + ActiveRecord::ConnectionAdapters::Quoting#type_casted_binds + + 141
  0.100.010.000.0922765/22765ActiveRecord::ConnectionAdapters::Quoting#type_cast145 +
  0.070.010.000.0616255/16255ActiveRecord::Relation::QueryAttribute#value_for_database145 +
  0.010.000.000.006510/39520ActiveModel::Attribute#value_for_database145 +
  0.000.000.000.009774/325297Kernel#is_a?142 +
  0.190.000.000.195/5ActiveRecord::Relation#delete_all409
2.26%0.00%0.190.000.000.195 + + ActiveRecord::ConnectionAdapters::AbstractAdapter#delete + + 19
  0.190.000.000.195/5ActiveRecord::ConnectionAdapters::DatabaseStatements#delete21 +
  0.190.000.000.195/5ActiveRecord::ConnectionAdapters::AbstractAdapter#delete21
2.26%0.00%0.190.000.000.195 + + ActiveRecord::ConnectionAdapters::DatabaseStatements#delete + + 174
  0.190.000.000.195/5ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_delete176 +
  0.000.000.000.005/9772ActiveRecord::ConnectionAdapters::DatabaseStatements#to_sql_and_binds175 +
  0.190.000.000.195/5ActiveRecord::ConnectionAdapters::DatabaseStatements#delete176
2.26%0.00%0.190.000.000.195 + + ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#exec_delete + + 93
  0.190.000.000.195/9774ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#execute_and_clear94 +
  0.180.010.000.173879/3879Arel::Visitors::ToSql#visit_Arel_Nodes_SelectStatement217
2.15%0.11%0.180.010.000.173879 + + Arel::Visitors::ToSql#visit_Arel_Nodes_SelectCore + + 240
  0.130.010.000.1215516/15516Arel::Visitors::ToSql#collect_nodes_for247 +
  0.020.000.000.023879/68679Arel::Visitors::Reduce#visit251 +
  0.010.000.000.017758/22655Arel::Visitors::ToSql#maybe_visit243 +
  0.010.000.000.007758/75189Arel::Collectors::Composite#<<241 +
  0.000.000.000.003879/3879Arel::Nodes::JoinSource#empty?249 +
  0.000.000.000.001/3884<Class::ActiveRecord::StatementCache>#create92
  0.000.000.000.005/3884ActiveRecord::Relation#delete_all406
  0.160.000.000.163878/3884ActiveRecord::Relation#skip_query_cache_if_necessary560
1.99%0.02%0.160.000.000.163884 + + ActiveRecord::QueryMethods#arel + + 899
  0.160.020.000.143884/3884ActiveRecord::QueryMethods#build_arel900 +
  0.160.020.000.143884/3884ActiveRecord::QueryMethods#arel900
1.97%0.27%0.160.020.000.143884 + + ActiveRecord::QueryMethods#build_arel + + 923
  0.030.000.000.033879/7135ActiveRecord::Delegation#connection932 +
  0.030.010.000.023884/3884Arel::SelectManager#initialize924 +
  0.020.010.000.023884/3884ActiveRecord::QueryMethods#build_select951 +
  0.010.000.000.013879/3879ActiveRecord::Relation::WhereClause#ast929 +
  0.010.000.000.003879/3879Arel::SelectManager#take937 +
  0.000.000.000.003884/3884ActiveRecord::QueryMethods#build_order949 +
  0.000.000.000.007763/8391ActiveRecord::QueryMethods#limit_value931 +
  0.000.000.000.003879/3879<Class::ActiveModel::Attribute>#with_cast_value932 +
  0.000.000.000.007763/31318ActiveRecord::QueryMethods#where_clause929 +
  0.000.000.000.007768/18300ActiveRecord::Relation::WhereClause#empty?929 +
  0.000.000.000.003884/9155ActiveRecord::QueryMethods#joins_values926 +
  0.000.000.000.003884/3889ActiveRecord::QueryMethods#offset_value939 +
  0.000.000.000.003884/3884ActiveRecord::QueryMethods#group_values947 +
  0.000.000.000.003879/3879Arel::TreeManager#where929 +
  0.000.000.000.003884/15662ActiveRecord::QueryMethods#from_clause954 +
  0.000.000.000.003884/4507ActiveRecord::QueryMethods#distinct_value953 +
  0.000.000.000.003884/14416ActiveRecord::QueryMethods#having_clause930 +
  0.000.000.000.003884/9150ActiveRecord::QueryMethods#lock_value955 +
  0.000.000.000.003884/9155ActiveRecord::QueryMethods#left_outer_joins_values927 +
  0.000.000.000.003879/3879ActiveRecord::ConnectionAdapters::DatabaseStatements#sanitize_limit932 +
  0.000.000.000.003879/20135Arel::Nodes::BindParam#initialize937 +
  0.000.000.000.003884/3884Arel::SelectManager#distinct953 +
  0.000.000.000.003879/3884<Module::ActiveRecord::Type>#default_value932 +
  0.000.000.000.003884/14416ActiveRecord::Relation::FromClause#empty?954 +
  0.160.010.000.1519548/19548Logger#add474
1.91%0.07%0.160.010.000.1519548 + + Logger::LogDevice#write + + 31
  0.150.010.000.1419548/39153MonitorMixin#synchronize33 +
  0.150.000.000.142633/2633ActiveRecord::Associations::AssociationScope#scope29
1.76%0.05%0.150.000.000.142633 + + ActiveRecord::Associations::AssociationScope#add_constraints + + 123
  0.140.000.000.132633/2633ActiveRecord::Associations::AssociationScope#last_chain_scope124 +
  0.000.000.000.002633/2633ActiveRecord::Reflection::RuntimeReflection#constraints134 +
  0.000.000.000.002633/5280Array#size126 +
  0.000.000.000.002633/39677Array#last124 +
  0.000.000.000.001/9079Bundler::FeatureFlag#default_install_uses_path?22
  0.000.000.000.001/9079Bundler::FeatureFlag#unlock_source_unlocks_spec?22
  0.000.000.000.001/9079Bundler::FeatureFlag#skip_default_git_sources?22
  0.000.000.000.002/9079Bundler::FeatureFlag#setup_makes_kernel_gem_public?22
  0.000.000.000.001/9079Bundler::FeatureFlag#prefer_gems_rb?22
  0.000.000.000.007/9079<Module::Singleton>#__init__140
  0.000.000.000.004/9079Bundler::FeatureFlag#deployment_means_frozen?22
  0.000.000.000.001/9079<Class::Rails::Engine>#isolate_namespace391
  0.000.000.000.009/9079Bundler::FeatureFlag#lockfile_uses_separate_rubygems_sources?22
  0.000.000.000.0070/9079Bundler::FeatureFlag#specific_platform?22
  0.000.000.000.001/9079Rails::Railtie#configure216
  0.000.000.000.00613/9079Bus#autosave_associated_records_for_buses_services159
  0.000.000.000.006/9079Listen::FSM::State#call121
  0.000.000.000.00613/9079Bus#validate_associated_records_for_buses_services159
  0.000.000.000.00613/9079Bus#autosave_associated_records_for_trips159
  0.000.000.000.00613/9079Bus#autosave_associated_records_for_services159
  0.000.000.000.00613/9079Bus#validate_associated_records_for_services159
  0.000.000.000.00613/9079Bus#validate_associated_records_for_trips159
  0.000.000.000.001/9079Bundler::Dsl#eval_gemfile47
  0.030.000.000.0332/9079ActiveSupport::LazyLoadHooks#with_execution_control71
  0.030.000.000.032632/9079BusesService#autosave_associated_records_for_service159
  0.080.000.000.082632/9079BusesService#autosave_associated_records_for_bus159
1.70%0.07%0.140.010.000.149079 + + *BasicObject#instance_eval + +
  0.110.010.000.095264/5264ActiveRecord::AutosaveAssociation#save_belongs_to_association204 +
  0.010.000.000.018/645ActiveSupport::Dependencies::Loadable#require60 +
  0.010.000.000.011/1ActiveRecord::Import::Connection#establish_connection136 +
  0.000.000.000.001/1Rails::Application#config_for33 +
  0.000.000.000.001839/1839ActiveRecord::AutosaveAssociation#validate_collection_association220 +
  0.000.000.000.001839/1839ActiveRecord::AutosaveAssociation#save_collection_association187 +
  0.000.000.000.001/1Bundler::RubyDsl#ruby4 +
  0.000.000.000.001/1Rails::Application::Configuration#database_configuration133 +
  0.000.000.000.002/2Listen::Event::Loop#setup72 +
  0.000.000.000.002/2Listen::Backend#start68 +
  0.000.000.000.003/651Module#include17 +
  0.000.000.000.006/10Bundler::Dsl#gem6 +
  0.000.000.000.0089/89Bundler::FeatureFlag#bundler_3_mode?51 +
  0.000.000.000.003/3Bundler::Dsl#group12 +
  0.000.000.000.001/1109<Class::File>#file?93 +
  0.000.000.000.002/3<Class::ActiveSupport::Reloader>#before_class_unload73 +
  0.000.000.000.003/84ActiveSupport::Callbacks::ClassMethods#set_callback56 +
  0.000.000.000.001/1Bundler::Dsl#source1 +
  0.000.000.000.001/12Pathname#join17 +
  0.000.000.000.001/8<Class::ActiveSupport::ExecutionWrapper>#to_run61 +
  0.000.000.000.001/2<Class::ActiveRecord::Base>#configurations=133 +
  0.000.000.000.0017/232ActiveSupport::OrderedOptions#method_missing25 +
  0.000.000.000.001/1ActiveRecord::ConnectionHandling#clear_active_connections!191 +
  0.000.000.000.001/26Module#cattr_accessor2335 +
  0.000.000.000.0022/209Rails::Railtie::Configuration#method_missing25 +
  0.000.000.000.001/1ActiveRecord::ConnectionHandling#flush_idle_connections!192 +
  0.000.000.000.001/1Mime::Mimes#symbols111 +
  0.000.000.000.002/13Rails::Paths::Path#first32 +
  0.000.000.000.001/1001Hash#with_indifferent_access33 +
  0.000.000.000.003/8I18n::Base#load_path76 +
  0.000.000.000.002/7Pathname#exist?17 +
  0.000.000.000.003/1587<Class::File>#expand_path76 +
  0.000.000.000.001/1<Class::ActionView::Base>#digest_assets=254 +
  0.000.000.000.002/2Listen::Event::Loop#resume76 +
  0.000.000.000.001/2<Class::ActiveRecord::Base>#cache_versioning=124 +
  0.000.000.000.001/1<Class::ActionView::Base>#logger=39 +
  0.000.000.000.001/1<Class::ActionView::Base>#assets_prefix=255 +
  0.000.000.000.0027/9958Rails::Application#config7 +
  0.000.000.000.001/1196Module#class_eval399 +
  0.000.000.000.001/1<Class::ActionView::Base>#check_precompiled_asset=263 +
  0.000.000.000.001/1<Class::ActionView::Base>#debug_assets=253 +
  0.000.000.000.001/1<Class::ActionView::Base>#assets_environment=258 +
  0.000.000.000.001/1<Class::ActionView::Base>#assets_manifest=259 +
  0.000.000.000.001/1<Class::ActionView::Base>#unknown_asset_fallback=264 +
  0.000.000.000.001/1<Class::ActionView::Base>#resolve_assets_with=261 +
  0.000.000.000.001/1<Class::ActionView::Base>#precompiled_asset_checker=266 +
  0.000.000.000.001/1<Class::ActionView::Base>#assets_precompile=256 +
  0.000.000.000.001/1<Class::ActiveRecord::Base>#logger=77 +
  0.000.000.000.001/2<Class::ActiveRecord::Base>#verbose_query_logs=124 +
  0.000.000.000.003/23Kernel#__dir__76 +
  0.000.000.000.001/1<Class::ActionView::Base>#default_formats=111 +
  0.000.000.000.004/148727Kernel#respond_to?394 +
  0.000.000.000.001/2<Class::ActiveRecord::Base>#time_zone_aware_attributes=71 +
  0.000.000.000.004/1715Module#define_method392 +
  0.000.000.000.001/4Bundler::Dsl#git_source2 +
  0.000.000.000.004/46694Hash#delete17 +
  0.000.000.000.002/19573<Module::Rails>#application33 +
  0.000.000.000.001/9779<Module::Rails>#root17 +
  0.000.000.000.001/58706<Class::ActiveRecord::Base>#logger77 +
  0.000.000.000.002/2<Class::ActionView::Base>#default_formats111 +
  0.000.000.000.007/94920Symbol#to_s45 +
  0.000.000.000.002/3<Class::ActionView::Template::Types>#delegate_to112 +
  0.000.000.000.001/347Kernel#extend89 +
  0.000.000.000.007/290Thread::Mutex#initialize142 +
  0.000.000.000.001/2<Class::ActiveRecord::Base>#default_timezone=72 +
  0.000.000.000.001/1<Class::ActiveRecord::Base>#maintain_test_schema=124 +
  0.000.000.000.002/29Rails::Application::Configuration#paths32 +
  0.000.000.000.001/2<Class::ActionView::Base>#debug_missing_translation=45 +
  0.000.000.000.002/59Rails::Paths::Root#[]32 +
  0.000.000.000.001/3430<Class::File>#join91 +
  0.000.000.000.001/917Pathname#initialize32 +
  0.000.000.000.001/1<Class::ActiveRecord::Base>#belongs_to_required_by_default=124 +
  0.000.000.000.001/1<Class::ActionView::Resolver>#caching?60 +
  0.000.000.000.001/1<Class::ActionView::Base>#logger39 +
  0.000.000.000.001/42966Hash#initialize_copy121 +
  0.000.000.000.001/2<Module::ActionView::Helpers::FormHelper>#form_with_generates_remote_forms=25 +
  0.000.000.000.001/2<Module::ActionView::Helpers::FormHelper>#form_with_generates_ids=33 +
  0.000.000.000.001/2<Class::ActionView::Resolver>#caching=53 +
  0.000.000.000.001/2<Module::ActionView::Helpers::FormTagHelper>#embed_authenticity_token_in_remote_forms=17 +
  0.000.000.000.001/21<Module::Rails>#env33 +
  0.000.000.000.001/909Kernel#lambda67 +
  0.140.000.000.132633/2633ActiveRecord::Associations::AssociationScope#add_constraints124
1.64%0.05%0.140.000.000.132633 + + ActiveRecord::Associations::AssociationScope#last_chain_scope + + 60
  0.090.000.000.092633/2633ActiveRecord::Associations::AssociationScope#apply_scope67 +
  0.010.000.000.012633/2633ActiveRecord::Reflection::AbstractReflection#join_keys61 +
  0.010.000.000.012633/2633ActiveRecord::Reflection::RuntimeReflection#aliased_table65 +
  0.010.000.000.012633/5265ActiveRecord::AttributeMethods#[]66 +
  0.000.000.000.002633/2633ActiveRecord::Associations::AssociationScope#transform_value66 +
  0.000.000.000.002633/2633ActiveRecord::Reflection::RuntimeReflection#type69 +
  0.000.000.000.002633/2633ActiveRecord::Reflection::AbstractReflection::JoinKeys#key62 +
  0.000.000.000.002633/2633ActiveRecord::Reflection::AbstractReflection::JoinKeys#foreign_key63 +
  0.000.000.000.0030/82239#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x00000001052d0248>#name40
  0.000.000.000.001000/82239#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#start_time40
  0.000.000.000.002000/82239#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#duration_minutes40
  0.000.000.000.002000/82239#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#bus_id40
  0.000.000.000.002000/82239#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#to_id40
  0.000.000.000.002000/82239#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#price_cents40
  0.000.000.000.002000/82239#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x0000000104921030>#from_id40
  0.000.000.000.00613/82239#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x00000001048e13e0>#model40
  0.000.000.000.001226/82239#<ActiveRecord::AttributeMethods::GeneratedAttributeMethods:0x00000001048e13e0>#number40
  0.000.000.000.002632/82239ActiveRecord::PredicateBuilder::AssociationQueryValue#convert_to_id39
  0.010.000.000.006500/82239ActiveRecord::AttributeMethods#attributes_with_values465
  0.010.000.000.015632/82239ActiveRecord::Associations::BelongsToAssociation#replace_keys98
  0.010.000.000.012632/82239ActiveRecord::Associations::BelongsToAssociation#foreign_key_present?106
  0.010.000.000.0112265/82239ActiveRecord::AttributeMethods::Read#read_attribute64
  0.030.010.000.0215653/82239ActiveRecord::AttributeMethods::PrimaryKey#id21
  0.050.010.000.0424056/82239ActiveRecord::Associations::BelongsToAssociation#stale_state125
1.62%0.34%0.130.030.000.1182239 + + ActiveRecord::AttributeMethods::Read#_read_attribute + + 76
  0.100.030.000.0782239/82239ActiveModel::AttributeSet#fetch_value77 +
  0.010.010.000.0082239/287390String#to_s77 +
  0.230.040.000.19132/132Kernel#require86
1.61%0.51%0.130.040.000.09132 + + *Kernel#gem_original_require + +
  0.100.000.000.101/2<Module::Bundler>#setup10 +
  0.080.000.000.08103/2504Kernel#require3 +
  0.000.000.000.0012/201Kernel#require_relative13 +
  0.000.000.000.005/1126<Module::Bundler>#rubygems312 +
  0.000.000.000.0031/31<Class::Bundler::FeatureFlag>#settings_flag30 +
  0.000.000.000.001/2URI::RFC2396_Parser#initialize22 +
  0.000.000.000.0089/972Module#module_eval1677 +
  0.000.000.000.001280/1857String#%342 +
  0.000.000.000.002560/11024String#-@342 +
  0.000.000.000.001280/1280Integer#chr342 +
  0.000.000.000.0019/2281<Class::Gem::Platform>#new189 +
  0.000.000.000.0030/30<Class::Bundler::BundlerError>#status_code20 +
  0.000.000.000.008/49<Class::Struct>#new52 +
  0.000.000.000.001209/20034Module#method_added61 +
  0.000.000.000.0059/544Module#attr_reader15 +
  0.000.000.000.00142/1715Module#define_method83 +
  0.000.000.000.0077/83Gem::Platform#hash73 +
  0.000.000.000.00168/236IO#set_encoding +
  0.000.000.000.0024/273Module#attr_accessor27 +
  0.000.000.000.005/467Module#public1686 +
  0.000.000.000.004/4<Module::Bundler::FileUtils>#collect_method1656 +
  0.000.000.000.003/35Module#instance_methods29 +
  0.000.000.000.004/1071Gem::Version#hash32 +
  0.000.000.000.0033/651Module#include207 +
  0.000.000.000.001/1<Object::Object>#replace23 +
  0.000.000.000.003/4Bundler::RubygemsIntegration#provides?18 +
  0.000.000.000.00109/2098Class#inherited14 +
  0.000.000.000.002/25Comparable#<6 +
  0.000.000.000.00178/3699BasicObject#singleton_method_added65 +
  0.000.000.000.0057/647Module#autoload26 +
  0.000.000.000.0055/117Module#module_function19 +
  0.000.000.000.001/1Bundler::EnvironmentPreserver#initialize21 +
  0.000.000.000.0076/824Module#private509 +
  0.000.000.000.001/1<Module::Bundler>#overwrite_loaded_gem_version23 +
  0.000.000.000.001/6<Class::Bundler::RubygemsIntegration>#provides?879 +
  0.000.000.000.004/855<Class::Gem::Version>#create32 +
  0.000.000.000.007/347Kernel#extend1181 +
  0.000.000.000.00256/268Integer#>>348 +
  0.000.000.000.0038/695Module#alias_method39 +
  0.000.000.000.0016/16<Module::Bundler::FileUtils>#private_module_function161 +
  0.000.000.000.001/1Bundler::EnvironmentPreserver#backup23 +
  0.000.000.000.0046/46UnboundMethod#parameters1604 +
  0.000.000.000.00170/24391Symbol#to_sym29 +
  0.000.000.000.001/1Bundler::EnvironmentPreserver#restore22 +
  0.000.000.000.002/2Kernel#singleton_methods1656 +
  0.000.000.000.001/5686Array#join4 +
  0.000.000.000.0046/153Module#instance_method1604 +
  0.000.000.000.004/1406<Class::Gem::Version>#new6 +
  0.000.000.000.0042/159Module#const_set25 +
  0.000.000.000.0043/17049Kernel#freeze27 +
  0.000.000.000.002/7780Numeric#nonzero?22 +
  0.000.000.000.001/3Module#private_instance_methods1603 +
  0.000.000.000.004/30Module#attr_writer31 +
  0.000.000.000.0046/94920Symbol#to_s1604 +
  0.000.000.000.0025/170Module#protected292 +
  0.000.000.000.001/1URI::RFC3986_Parser#initialize19 +
  0.000.000.000.002/9560Array#-1656 +
  0.000.000.000.005/5<Class::Bundler::Runtime>#definition_method113 +
  0.000.000.000.001/2<Module::Bundler>#ui=27 +
  0.000.000.000.001/1587<Class::File>#expand_path24 +
  0.000.000.000.001/1Kernel#methods1603 +
  0.000.000.000.0046/501Array#compact!1604 +
  0.000.000.000.001/1<Module::Bundler::Plugin>#reset!30 +
  0.000.000.000.0029/32String#intern1656 +
  0.000.000.000.0031/1067Module#const_defined?24 +
  0.000.000.000.001/5<Class::Regexp>#union439 +
  0.000.000.000.0011/12184String#split5 +
  0.000.000.000.001/6567Array#&1603 +
  0.000.000.000.006/47Regexp#to_s181 +
  0.000.000.000.0012/75String#tr82 +
  0.000.000.000.001/1Bundler::SharedHelpers#in_bundle?5 +
  0.000.000.000.001/150Comparable#>=4 +
  0.000.000.000.002/7Kernel#autoload13 +
  0.000.000.000.001/74String#scan4 +
  0.000.000.000.001/1<Class::Bundler::FeatureFlag>#settings_option62 +
  0.000.000.000.001/2IO#tty?8 +
  0.000.000.000.002/2<Class::Bundler::GemHelpers::PlatformMatch>#new67 +
  0.000.000.000.0012/38491String#freeze6 +
  0.000.000.000.0010/60680Integer#to_s28 +
  0.000.000.000.002/43Module#remove_method30 +
  0.000.000.000.006/148727Kernel#respond_to?168 +
  0.000.000.000.005/47Module#private_class_method22 +
  0.000.000.000.002/270Module#undef_method195 +
  0.000.000.000.004/1874Module#method_defined?76 +
  0.000.000.000.001/8869Array#flatten38 +
  0.000.000.000.006/40374String#initialize_copy32 +
  0.000.000.000.003/6890Class#allocate168 +
  0.000.000.000.004/2105String#to_i5 +
  0.000.000.000.001/33<Class::Bundler::FeatureFlag>#settings_method64 +
  0.000.000.000.002/11<Class::Regexp>#quote34 +
  0.000.000.000.001/9125Hash#values38 +
  0.000.000.000.002/2Bundler::RubygemsIntegration::MoreFuture#stubs_provide_full_functionality?312 +
  0.000.000.000.001/8617Kernel#proc26 +
  0.000.000.000.001/44143Regexp#===1148 +
  0.000.000.000.001/3258Hash#keys16 +
  0.000.000.000.001/70320BasicObject#initialize10 +
  0.000.000.000.001/18059Hash#initialize24 +
  0.000.000.000.001/290Thread::Mutex#initialize24 +
  0.000.000.000.001/325297Kernel#is_a?89 +
  0.130.010.000.1215516/15516Arel::Visitors::ToSql#visit_Arel_Nodes_SelectCore247
1.59%0.13%0.130.010.000.1215516 + + Arel::Visitors::ToSql#collect_nodes_for + + 265
  0.120.010.000.117758/68679Arel::Visitors::Reduce#visit270 +
  0.010.000.000.007758/75189Arel::Collectors::Composite#<<267 +
  0.130.020.000.1131368/31368ActiveRecord::ConnectionHandling#retrieve_connection118
1.56%0.20%0.130.020.000.1131368 + + ActiveRecord::ConnectionAdapters::ConnectionHandler#retrieve_connection + + 1030
  0.060.020.000.0431368/31368ActiveRecord::ConnectionAdapters::ConnectionPool#connection1033 +
  0.060.010.000.0431368/31369ActiveRecord::ConnectionAdapters::ConnectionHandler#retrieve_connection_pool1031 +
  0.010.000.000.006510/39520ActiveRecord::ConnectionAdapters::Quoting#type_casted_binds145
  0.050.010.000.0516755/39520ActiveModel::Attribute#forgetting_assignment67
  0.060.010.000.0616255/39520ActiveRecord::Relation::QueryAttribute#value_for_database13
1.50%0.19%0.120.020.000.1139520 + + ActiveModel::Attribute#value_for_database + + 54
  0.080.010.000.0727679/32689ActiveModel::Type::Integer#serialize55 +
  0.020.010.000.0039520/139517ActiveModel::Attribute#value55 +
  0.010.000.000.005331/6341ActiveModel::Type::ImmutableString#serialize55 +
  0.000.000.000.006510/12851ActiveModel::Type::Value#serialize55 +
  0.000.000.000.0011/656ActiveSupport::Dependencies::Loadable#load285
  0.300.000.000.30645/656ActiveSupport::Dependencies::Loadable#require291
1.44%0.01%0.120.000.000.12656 + + *ActiveSupport::Dependencies::Loadable#load_dependency + + 251
  0.220.000.000.22287/293ActiveSupport::Dependencies#new_constants_in255 +
  0.080.000.000.08358/2504Kernel#require291 +
  0.000.000.000.0011/31Kernel#load285 +
  0.000.000.000.00656/662ActiveSupport::Dependencies#load?252 +
  0.000.000.000.00287/8869Array#flatten253 +
  0.000.000.000.00943/1529<Module::ActiveSupport::Dependencies>#constant_watch_stack252 +
  0.000.000.000.00656/656ActiveSupport::Dependencies::WatchStack#watching?252 +
  0.000.000.000.002/19Exception#backtrace261 +
  0.000.000.000.002/6Kernel#raise261 +
  0.000.000.000.002/2ActiveSupport::Dependencies::Blamable#blame_file!260 +
  0.000.000.000.002/4Exception#respond_to?260 +
  0.000.000.000.002/657190Module#===291 +
  0.000.000.000.002/19550Kernel#printf
  0.120.110.010.0019548/19550Monitor#synchronize
1.44%1.34%0.120.110.010.0019550 + + IO#write + +
  0.120.020.000.109133/9133ActiveRecord::PredicateBuilder#expand_from_hash112
1.42%0.19%0.120.020.000.109133 + + ActiveRecord::PredicateBuilder#build + + 50
  0.050.010.000.059133/9133ActiveRecord::PredicateBuilder::BasicObjectHandler#call55 +
  0.020.020.000.019133/9133ActiveRecord::PredicateBuilder#handler_for55 +
  0.020.000.000.029133/25389ActiveRecord::TableMetadata#type51 +
  0.000.000.000.009133/9133ActiveModel::Type::Value#force_equality?51 +
  0.000.000.000.009133/35146#<Class:0x000000010c882bf8>#name51 +
  0.000.000.000.001/5266<Class::ActiveRecord::StatementCache>#create45
  0.060.000.000.052633/5266ActiveRecord::Associations::Association#target_scope135
  0.060.000.000.062632/5266ActiveRecord::Associations::Association#scope79
1.39%0.06%0.120.010.000.115266 + + ActiveRecord::SpawnMethods#merge! + + 41
  0.100.020.000.095266/5266ActiveRecord::Relation::Merger#merge45 +
  0.010.000.000.005266/5266ActiveRecord::Relation::Merger#initialize45 +
  0.000.000.000.0010532/325297Kernel#is_a?42 +
  0.020.000.000.021000/5632Trip::GeneratedAssociationMethods#to=116
  0.020.000.000.021000/5632Trip::GeneratedAssociationMethods#bus=116
  0.020.000.000.021000/5632Trip::GeneratedAssociationMethods#from=116
  0.050.000.000.052632/5632BusesService::GeneratedAssociationMethods#bus=116
1.39%0.02%0.110.000.000.115632 + + ActiveRecord::Associations::SingularAssociation#writer + + 16
  0.110.010.000.115632/5632ActiveRecord::Associations::BelongsToAssociation#replace17 +
  0.000.000.000.001/645Rails::Application#config_for234
  0.000.000.000.002/645Kernel#with_warnings61
  0.000.000.000.002/645Rails::Application::Configuration#database_configuration170
  0.000.000.000.001/645Rails::Application::DefaultMiddlewareStack#show_exceptions_app103
  0.000.000.000.001/645Rails::Application::DefaultMiddlewareStack#build_stack15
  0.000.000.000.001/645ActiveRecord::Delegation::DelegateCache#initialize_relation_delegate_cache13
  0.000.000.000.001/645Rails::Application#default_middleware_stack575
  0.000.000.000.001/645ActiveRecord::Associations::ClassMethods#has_and_belongs_to_many1824
  0.000.000.000.001/645Rails::Application#routes_reloader341
  0.000.000.000.001/645ActiveRecord::Core::ClassMethods#table_metadata306
  0.000.000.000.002/645ActiveSupport::LazyLoadHooks#with_execution_control75
  0.000.000.000.001/645ActiveSupport::Cache::Strategy::LocalCache#middleware90
  0.000.000.000.001/645<Class::ActiveRecord::Base>#connection_handler141
  0.000.000.000.001/645ActiveRecord::Relation#alias_tracker530
  0.000.000.000.001/645ActiveRecord::Core#init_with346
  0.000.000.000.001/645ActiveRecord::ConnectionAdapters::DatabaseStatements#reset_transaction282
  0.000.000.000.001/645ActiveRecord::Associations::Association#association_scope90
  0.000.000.000.001/645ActionDispatch::FileHandler#initialize20
  0.000.000.000.001/645ActiveRecord::Associations::ClassMethods#belongs_to1654
  0.000.000.000.001/645ActiveRecord::Associations::ClassMethods#has_many1369
  0.000.000.000.001/645Rails::Application#initializers367
  0.000.000.000.001/645<Module::ActiveSupport::Cache>#retrieve_store_class107
  0.000.000.000.001/645<Class::TZInfo::DataSource>#create_default_data_source172
  0.000.000.000.001/645<Module::ActiveRecord::Import>#require_adapter25
  0.000.000.000.001/645ActiveRecord::Relation::QueryAttribute#nil?21
  0.000.000.000.002/645<Class::Listen::Adapter::Darwin>#usable?25
  0.000.000.000.002/645I18n::Config#backend21
  0.000.000.000.001/645ActiveRecord::Reflection::BelongsToReflection#association_class718
  0.000.000.000.001/645ActiveRecord::ConnectionHandling::MergeAndResolveDefaultUrlConfig#resolve72
  0.000.000.000.001/645ActiveRecord::Core::ClassMethods#predicate_builder280
  0.000.000.000.007/645Kernel#require_relative
  0.000.000.000.001/645ActionDispatch::Routing::RouteSet#eval_block428
  0.000.000.000.001/645ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#execute_and_clear89
  0.000.000.000.004/645<Module::ActionView::Template::Handlers>#extended13
  0.000.000.000.0012/645ActionDispatch::MiddlewareStack#initialize20
  0.000.000.000.001/645Module#const_get
  0.000.000.000.001/645Sprockets::Railtie#build_environment154
  0.000.000.000.002/645<Module::ActionCable>#server46
  0.010.000.000.0114/645Module#class_eval
  0.010.000.000.011/645ActiveRecord::ConnectionAdapters::ConnectionSpecification::Resolver#spec191
  0.010.000.000.018/645BasicObject#instance_eval
  0.020.000.000.0223/645BasicObject#instance_exec
  0.070.000.000.071/645<Module::Kernel>#load
  0.160.000.000.16534/645Kernel#require_without_bootsnap
1.39%0.00%0.110.000.000.11645 + + *ActiveSupport::Dependencies::Loadable#require + + 289
  0.300.000.000.30645/656ActiveSupport::Dependencies::Loadable#load_dependency291 +
  0.110.000.000.111000/1000<Class::ActiveRecord::Base>#import_helper602
1.38%0.02%0.110.000.000.111000 + + ActiveRecord::Import::Validator#valid_model? + + 75
  0.110.000.000.101000/23541ActiveSupport::Callbacks#run_callbacks86 +
  0.000.000.000.002000/13378ActiveModel::Validations#errors84 +
  0.000.000.000.001000/7510ActiveModel::Errors#empty?118 +
  0.000.000.000.001000/13387ActiveRecord::Persistence#new_record?79 +
  0.000.000.000.001000/4255ActiveModel::Errors#clear84 +
  0.000.000.000.001000/1472Kernel#instance_of?76 +
  0.110.010.000.115632/5632ActiveRecord::Associations::SingularAssociation#writer17
1.37%0.09%0.110.010.000.115632 + + ActiveRecord::Associations::BelongsToAssociation#replace + + 19
  0.050.000.000.055632/5632ActiveRecord::Associations::BelongsToAssociation#replace_keys29 +
  0.030.000.000.035632/5632ActiveRecord::Associations::Association#target=31 +
  0.010.000.000.015632/8264ActiveRecord::Associations::Association#set_inverse_instance23 +
  0.010.000.000.015632/5632ActiveRecord::Associations::BelongsToAssociation#update_counters_on_replace22 +
  0.000.000.000.005632/5632ActiveRecord::Associations::Association#raise_on_type_mismatch!21 +
  0.110.070.000.03464433/464433ActiveRecord::LogSubscriber#extract_callstack117
1.29%0.89%0.110.070.000.03464433 + + ActiveRecord::LogSubscriber#ignored_callstack + + 130
  0.030.030.000.00474207/501932String#start_with?131 +
  0.110.010.000.095264/5264BasicObject#instance_eval
1.28%0.15%0.110.010.000.095264 + + ActiveRecord::AutosaveAssociation#save_belongs_to_association + + 477
  0.020.000.000.022632/8264ActiveRecord::AttributeMethods#[]=493 +
  0.020.000.000.025264/7896ActiveRecord::Associations::Association#load_target481 +
  0.020.000.000.015264/13160ActiveRecord::Associations::Association#stale_target?479 +
  0.010.000.000.012632/10896ActiveRecord::Associations::Association#loaded!494 +
  0.010.000.000.012632/15653ActiveRecord::AttributeMethods::PrimaryKey#id492 +
  0.010.000.000.005264/8519ActiveRecord::Persistence#destroyed?482 +
  0.000.000.000.005264/13387ActiveRecord::Persistence#new_record?489 +
  0.000.000.000.005264/19838ActiveRecord::Associations#association_instance_get478 +
  0.000.000.000.005264/5264ActiveRecord::Associations::BelongsToAssociation#updated?491 +
  0.000.000.000.005264/39480ActiveRecord::Associations::Association#loaded?479 +
  0.000.000.000.002632/45861ActiveRecord::Reflection::AssociationReflection#foreign_key493 +
  0.100.020.000.095266/5266ActiveRecord::SpawnMethods#merge!45
1.25%0.20%0.100.020.000.095266 + + ActiveRecord::Relation::Merger#merge + + 65
  0.040.010.000.045266/5266ActiveRecord::Relation::Merger#merge_clauses83 +
  0.020.010.000.015266/5266ActiveRecord::Relation::Merger#merge_multi_values81 +
  0.010.000.000.015266/5266ActiveRecord::Relation::Merger#merge_single_values82 +
  0.010.000.000.005266/5266ActiveRecord::Relation::Merger#merge_preloads84 +
  0.000.000.000.005266/5266ActiveRecord::Relation::Merger#merge_joins85 +
  0.000.000.000.005266/5266ActiveRecord::Relation::Merger#merge_outer_joins86 +
  0.000.000.000.005266/21067Array#blank?72 +
  0.000.000.000.005266/5266ActiveRecord::Relation::Merger#normal_values66 +
  0.000.000.000.001/2<Module::Bundler>#require114
  0.100.000.000.101/2Kernel#gem_original_require
1.23%0.00%0.100.000.000.102 + + <Module::Bundler>#setup + + 97
  0.080.000.000.081/1Bundler::Runtime#setup107 +
  0.020.000.000.021/2<Module::Bundler>#definition101 +
  0.000.000.000.001/1<Module::Bundler>#load107 +
  0.000.000.000.001/1Bundler::SharedHelpers#print_major_deprecations!103 +
  0.000.000.000.001/1Bundler::Definition#validate_runtime!101 +
  0.000.000.000.001/2633<Class::ActiveRecord::StatementCache>#create45
  0.100.000.000.102632/2633ActiveRecord::Associations::Association#scope79
1.23%0.03%0.100.000.000.102633 + + ActiveRecord::Associations::Association#target_scope + + 134
  0.060.000.000.052633/5266ActiveRecord::SpawnMethods#merge!135 +
  0.030.000.000.032633/9150ActiveRecord::Scoping::Named::ClassMethods#all135 +
  0.010.000.000.012633/12407ActiveRecord::Delegation::ClassMethods#create135 +
  0.000.000.000.005266/26326ActiveRecord::Associations::Association#klass135 +
  0.000.000.000.005/9150ActiveRecord::Querying#delete_all10
  0.020.000.000.023257/9150ActiveRecord::Scoping::ClassMethods#scope_attributes26
  0.030.000.000.032633/9150ActiveRecord::Associations::Association#target_scope135
  0.050.000.000.053255/9150ActiveRecord::Querying#find_or_create_by8
1.22%0.08%0.100.010.000.099150 + + ActiveRecord::Scoping::Named::ClassMethods#all + + 26
  0.050.010.000.049150/19915ActiveRecord::Scoping::ClassMethods#current_scope27 +
  0.020.000.000.025895/9151ActiveRecord::Core::ClassMethods#relation36 +
  0.010.000.000.015895/5895ActiveRecord::Scoping::Named::ClassMethods#default_scoped36 +
  0.010.000.000.013255/9768Kernel#clone31 +
  0.100.010.000.1015682/15682ActiveSupport::Notifications::Instrumenter#instrument21
1.22%0.06%0.100.010.000.1015682 + + ActiveSupport::Notifications::Instrumenter#start + + 34
  0.100.010.000.0915682/15682ActiveSupport::Notifications::Fanout#start35 +
  0.100.030.000.0782239/82239ActiveRecord::AttributeMethods::Read#_read_attribute77
1.22%0.34%0.100.030.000.0782239 + + ActiveModel::AttributeSet#fetch_value + + 47
  0.060.020.000.0382239/139517ActiveModel::Attribute#value48 +
  0.020.020.000.0082239/147153ActiveModel::AttributeSet#[]48 +
  0.100.010.000.0922765/22765ActiveRecord::ConnectionAdapters::Quoting#type_casted_binds145
1.22%0.12%0.100.010.000.0922765 + + ActiveRecord::ConnectionAdapters::Quoting#type_cast + + 24
  0.090.020.000.0722765/22765ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting#_type_cast31 +
  0.000.000.000.0022765/325297Kernel#is_a?25 +
  0.000.000.000.004/9890<Class::Rails::Engine>#inherited363
  0.000.000.000.0022/9890<Module::Forwardable>#_delegator_method209
  0.000.000.000.0090/9890Module#delegate170
  0.100.100.000.009774/9890ActiveRecord::LogSubscriber#log_query_source103
1.21%1.21%0.100.100.000.009890 + + Kernel#caller_locations + +
  0.030.000.000.031000/4255<Class::ActiveRecord::Base>#set_attributes_and_mark_clean919
  0.070.000.000.063255/4255ActiveRecord::AttributeMethods::Dirty#_create_record141
1.21%0.07%0.100.010.000.094255 + + ActiveModel::Dirty#changes_applied + + 146
  0.080.000.000.084255/4255ActiveModel::Dirty#forget_attribute_assignments152 +
  0.010.000.000.014255/8256ActiveSupport::HashWithIndifferentAccess#initialize151 +
  0.000.000.000.004255/10510ActiveModel::Dirty#mutations_from_database150 +
  0.010.000.000.015010/32689<Class::ActiveRecord::Base>#values_sql_for_columns_and_attributes1034
  0.080.010.000.0727679/32689ActiveModel::Attribute#value_for_database55
1.16%0.18%0.100.020.000.0832689 + + ActiveModel::Type::Integer#serialize + + 26
  0.050.020.000.0332689/49840ActiveModel::Type::Helpers::Numeric#cast27 +
  0.040.010.000.0332689/32689ActiveModel::Type::Integer#ensure_in_range29 +
  0.100.010.000.0915682/15682ActiveSupport::Notifications::Instrumenter#start35
1.16%0.13%0.100.010.000.0915682 + + ActiveSupport::Notifications::Fanout#start + + 43
  0.080.010.000.0719588/19588ActiveSupport::Notifications::Fanout::Subscribers::Evented#start44 +
  0.010.010.000.0015682/15691ActiveSupport::Notifications::Fanout#listeners_for44 +
  0.090.000.000.092633/2633ActiveRecord::Associations::AssociationScope#last_chain_scope67
1.15%0.03%0.090.000.000.092633 + + ActiveRecord::Associations::AssociationScope#apply_scope + + 154
  0.090.000.000.092633/6511ActiveRecord::QueryMethods#where!156 +
  0.000.000.000.002633/2633Arel::Table#==155 +
  0.090.000.000.093879/3879Arel::Visitors::Reduce#visit15
1.14%0.02%0.090.000.000.093879 + + Arel::Visitors::ToSql#visit_Arel_Nodes_And + + 638
  0.090.010.000.083879/3879Arel::Visitors::ToSql#inject_join639 +
  0.090.010.000.083879/3879Arel::Visitors::ToSql#visit_Arel_Nodes_And639
1.12%0.11%0.090.010.000.083879 + + Arel::Visitors::ToSql#inject_join + + 818
  0.080.010.000.087124/68679Arel::Visitors::Reduce#visit822 +
  0.000.000.000.003245/75189Arel::Collectors::Composite#<<824 +
  0.010.000.000.013878/19915ActiveRecord::Relation#scoping280
  0.030.000.000.036887/19915ActiveRecord::Scoping::ClassMethods#scope_attributes?31
  0.050.010.000.049150/19915ActiveRecord::Scoping::Named::ClassMethods#all27
1.10%0.17%0.090.010.000.0819915 + + ActiveRecord::Scoping::ClassMethods#current_scope + + 15
  0.080.010.000.0719914/19915<Class::ActiveRecord::Scoping::ScopeRegistry>#value_for16 +
  0.000.000.000.001/4ActiveSupport::PerThreadRegistry#method_missing16 +
  0.090.020.000.0722765/22765ActiveRecord::ConnectionAdapters::Quoting#type_cast31
1.08%0.22%0.090.020.000.0722765 + + ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting#_type_cast + + 111
  0.060.030.000.0322765/22765ActiveRecord::ConnectionAdapters::Quoting#_type_cast125 +
  0.010.010.000.00113825/657190Module#===112 +
  0.090.000.000.092/2Monitor#synchronize
1.08%0.00%0.090.000.000.092 + + *Rake::Task#invoke_prerequisites + + 237
  0.090.000.000.091/2Rake::Task#invoke_with_call_chain243 +
  0.000.000.000.001/1Rake::TaskArguments#new_scope242 +
  0.000.000.000.002/2Rake::Task#prerequisite_tasks241 +
  0.000.000.000.002/2<Object::OpenStruct>#always_multitask238 +
  0.000.000.000.002/57Rake::Application#options238 +
  0.000.000.000.001/2Rake::Task#arg_names242 +
  0.090.000.000.091/1Rake::Task#execute_without_timestamps520
1.08%0.00%0.090.000.000.091 + + Rails::Application#require_environment! + + 335
  0.090.000.000.091/2504Kernel#require337 +
  0.000.000.000.001/91Rails::Paths::Path#existent336 +
  0.000.000.000.001/59Rails::Paths::Root#[]336 +
  0.000.000.000.001/44Rails::Engine#paths336 +
  0.090.000.000.091/1Kernel#require_without_bootsnap
1.07%0.00%0.090.000.000.091 + + Rails::Application#initialize! + + 359
  0.090.000.000.091/1Rails::Initializable#run_initializers361 +
  0.090.000.000.091/1Rails::Application#initialize!361
1.07%0.00%0.090.000.000.091 + + Rails::Initializable#run_initializers + + 58
  0.080.000.000.081/1TSort#tsort_each60 +
  0.010.000.000.011/1Rails::Application#initializers60 +
  0.000.000.000.001/43776Kernel#instance_variable_defined?59 +
  0.000.000.000.002000/29028ActiveModel::Validations::NumericalityValidator#record_attribute_changed_in_place?127
  0.000.000.000.002000/29028ActiveModel::Validations::NumericalityValidator#validate_each28
  0.010.000.000.002000/29028<Class::ActiveRecord::Base>#set_attributes_and_mark_clean917
  0.010.000.000.005264/29028<Class::Array>#wrap42
  0.030.020.000.0112500/29028ActiveModel::AttributeAssignment#_assign_attribute50
  0.040.000.000.045264/29028Object#blank?20
1.07%0.32%0.090.030.000.0629028 + + ActiveRecord::AttributeMethods#respond_to? + + 270
  0.050.010.000.0429028/29028ActiveModel::AttributeMethods#respond_to?271 +
  0.000.000.000.0017500/94920Symbol#to_s279 +
  0.000.000.000.0017500/37044ActiveRecord::ModelSchema::ClassMethods#column_names286 +
  0.000.000.000.0017500/371594Kernel#class286 +
  0.000.000.000.008/9<Module::TSort>#tsort176
  0.080.000.000.081/9TSort#tsort_each205
1.06%0.00%0.090.000.000.099 + + <Module::TSort>#tsort_each + + 223
  0.090.000.000.095/5<Module::TSort>#each_strongly_connected_component226 +
  0.000.000.000.004/15Kernel#to_enum224 +
  0.000.000.000.009/64127Kernel#block_given?224 +
  0.000.000.000.004/19Kernel#__method__224 +
  0.090.000.000.095/5<Module::TSort>#tsort_each226
1.06%0.00%0.090.000.000.095 + + <Module::TSort>#each_strongly_connected_component + + 342
  0.090.000.000.095/348Method#call347 +
  0.000.000.000.005/64127Kernel#block_given?343 +
  0.000.000.000.002/348Timeout::Request#initialize62
  0.050.000.000.05341/348<Module::TSort>#each_strongly_connected_component_from415
  0.090.000.000.095/348<Module::TSort>#each_strongly_connected_component347
1.06%0.00%0.090.000.000.09348 + + *Method#call + +
  0.080.000.000.081/1Rails::Initializable::Collection#tsort_each_node +
  0.040.000.000.04133/133Rails::Initializable::Collection#tsort_each_child +
  0.010.000.000.01208/208Bundler::SpecSet#tsort_each_child +
  0.000.000.000.004/4Bundler::SpecSet#tsort_each_node +
  0.000.000.000.002/20829<Module::Process>#clock_gettime +
  0.000.000.000.00141/341Bundler::SpecSet#tsort_each_child421
  0.000.000.000.0067/341Bundler::SpecSet#tsort_each_node349
  0.030.000.000.0333/341Rails::Initializable::Collection#tsort_each_child421
  0.080.000.000.08100/341Rails::Initializable::Collection#tsort_each_node
1.05%0.01%0.090.000.000.09341 + + *<Module::TSort>#each_strongly_connected_component_from + + 408
  0.070.000.000.07133/133Rails::Initializable::Initializer#run61 +
  0.050.000.000.05341/348Method#call415 +
  0.000.000.000.00716/189188Kernel#hash411 +
  0.000.000.000.00341/387Array#slice!429 +
  0.000.000.000.00341/64127Kernel#block_given?409 +
  0.000.000.000.00133/133Rails::Initializable::Initializer#belongs_to?61 +
  0.000.000.000.002/6Gem::Specification#hash411 +
  0.080.000.000.082632/2632Kernel#catch
1.02%0.03%0.080.000.000.082632 + + BusesService#autosave_associated_records_for_bus + + 153
  0.080.000.000.082632/9079BasicObject#instance_eval159 +
  0.080.000.000.084255/4255ActiveModel::Dirty#changes_applied152
1.01%0.02%0.080.000.000.084255 + + ActiveModel::Dirty#forget_attribute_assignments + + 271
  0.080.000.000.084255/4255ActiveModel::AttributeSet#map272 +
  0.000.000.000.004/15Module#const_get
  0.070.000.000.071/15<Module::Kernel>#load
  0.080.000.000.085/15ActiveSupport::Dependencies#load_missing_constant542
  0.080.000.000.085/15DatabaseReloader#call17
1.01%0.00%0.080.000.000.0815 + + *ActiveSupport::Dependencies::ModuleConstMissing#const_missing + + 193
  0.240.000.000.2415/15ActiveSupport::Dependencies#load_missing_constant195 +
  0.000.000.000.0015/15Module#anonymous?194 +
  0.240.000.000.2415/15ActiveSupport::Dependencies::ModuleConstMissing#const_missing195
1.01%0.00%0.080.000.000.0815 + + *ActiveSupport::Dependencies#load_missing_constant + + 493
  0.150.000.000.156/6ActiveSupport::Dependencies#require_or_load510 +
  0.080.000.000.085/15ActiveSupport::Dependencies::ModuleConstMissing#const_missing542 +
  0.000.000.000.0015/15ActiveSupport::Dependencies#search_for_file501 +
  0.000.000.000.009/9ActiveSupport::Dependencies#autoload_module!514 +
  0.000.000.000.004/68Kernel#caller549 +
  0.000.000.000.0015/58String#underscore499 +
  0.000.000.000.0015/15ActiveSupport::Dependencies#qualified_name_for498 +
  0.000.000.000.009/14Module#parent516 +
  0.000.000.000.00323/323String#starts_with?549 +
  0.000.000.000.0015/608ActiveSupport::Inflector#constantize494 +
  0.000.000.000.006/1587<Class::File>#expand_path504 +
  0.000.000.000.009/21Module#parents516 +
  0.000.000.000.0015/601ActiveSupport::Dependencies#qualified_const_defined?494 +
  0.000.000.000.004/4NameError#initialize548 +
  0.000.000.000.004/6Kernel#raise550 +
  0.000.000.000.004/4Exception#set_backtrace549 +
  0.000.000.000.004/19Exception#backtrace550 +
  0.000.000.000.0015/1067Module#const_defined?517 +
  0.000.000.000.0015/1660BasicObject#equal?494 +
  0.000.000.000.0030/43923Module#name494 +
  0.000.000.000.006/18<Module::ActiveSupport::Dependencies>#loading507 +
  0.000.000.000.006/840Module#const_get512 +
* indicates recursively called methods
+ +

Thread 620, Fiber: 4840

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%8.010.008.010.001 + + <Module::Concurrent>#mutex_owned_per_thread? + + 14
  0.000.000.000.001/1Thread::Mutex#owned?14 +
* indicates recursively called methods
+ +

Thread 10660, Fiber: 10640

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%7.740.000.007.741 + + <Module::Listen::Internals::ThreadPool>#add + + 6
  7.740.000.007.741/1Listen::Adapter::Polling#_run78 +
  0.000.000.000.001/1Listen::Adapter::Base#_timed76 +
  0.000.000.000.001/1Hash#values75 +
  7.740.000.007.741/1<Module::Listen::Internals::ThreadPool>#add78
100.00%0.00%7.740.000.007.741 + + Listen::Adapter::Polling#_run + + 20
  7.740.000.007.741/1Kernel#loop21 +
  7.740.000.007.741/1Listen::Adapter::Polling#_run21
100.00%0.00%7.740.000.007.741 + + Kernel#loop + +
  7.740.007.740.008/8Kernel#sleep27 +
  0.010.000.000.018/8Listen::Adapter::Polling#_process_event42 +
  0.000.000.000.0016/27Time#to_f22 +
  0.000.000.000.0016/18<Class::Time>#now22 +
  0.000.000.000.008/8Listen::Options#method_missing25 +
  0.000.000.000.008/8Float#>27 +
  7.740.007.740.008/8Kernel#loop
99.93%0.01%7.740.007.740.008 + + Kernel#sleep + +
* indicates recursively called methods
+ +

Thread 10700, Fiber: 10680

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%7.740.000.007.741 + + <Module::Listen::Internals::ThreadPool>#add + + 6
  7.740.000.007.741/1Listen::Event::Loop#_wait_for_changes42 +
  7.740.000.007.741/1<Module::Listen::Internals::ThreadPool>#add42
100.00%0.00%7.740.000.007.741 + + Listen::Event::Loop#_wait_for_changes + + 80
  7.740.000.007.741/1Listen::Event::Processor#loop_for84 +
  0.000.000.000.001/1Listen::Event::Loop#_wait_until_resumed83 +
  0.000.000.000.001/1Listen::Event::Processor#initialize81 +
  7.740.000.007.741/1Listen::Event::Loop#_wait_for_changes84
100.00%0.00%7.740.000.007.741 + + Listen::Event::Processor#loop_for + + 12
  7.740.000.007.741/1Kernel#loop15 +
  7.740.000.007.741/1Listen::Event::Processor#loop_for15
100.00%0.00%7.740.000.007.741 + + Kernel#loop + +
  7.740.000.007.741/1Listen::Event::Processor#_wait_until_events16 +
  7.740.000.007.741/1Kernel#loop
100.00%0.00%7.740.000.007.741 + + Listen::Event::Processor#_wait_until_events + + 82
  7.740.000.007.741/1Listen::Event::Processor#_sleep84 +
  0.000.000.000.001/1Listen::Event::Queue#empty?84 +
  7.740.000.007.741/1Listen::Event::Processor#_wait_until_events84
100.00%0.00%7.740.000.007.741 + + Listen::Event::Processor#_sleep + + 57
  7.740.000.007.741/1Listen::Event::Config#sleep59 +
  0.000.000.000.001/1Listen::Event::Processor#_check_stopped58 +
  7.740.000.007.741/1Listen::Event::Processor#_sleep59
100.00%0.00%7.740.000.007.741 + + Listen::Event::Config#sleep + + 18
  7.740.007.740.001/1<Module::Kernel>#sleep19 +
  7.740.007.740.001/1Listen::Event::Config#sleep19
100.00%0.00%7.740.007.740.001 + + <Module::Kernel>#sleep + +
* indicates recursively called methods
+ +

Thread 10740, Fiber: 10720

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%7.740.000.007.741 + + <Module::Timeout>#create_timeout_thread + + 99
  4.950.000.004.952/7Thread::Mutex#synchronize108 +
  2.790.002.790.003/3Thread::Queue#pop102 +
  0.000.000.000.004/4Timeout::Request#done?103 +
  0.000.000.000.001/1Timeout::Request#interrupt115 +
  0.000.000.000.002/2Timeout::Request#expired?115 +
  0.000.000.000.005/8Thread::Queue#empty?100 +
  0.000.000.000.001/7Timeout::Request#interrupt81
  0.000.000.000.004/7Timeout::Request#done?71
  4.950.000.004.952/7<Module::Timeout>#create_timeout_thread108
63.90%0.00%4.950.000.004.957 + + Thread::Mutex#synchronize + +
  4.950.000.004.952/2Thread::ConditionVariable#wait110 +
  0.000.000.000.004/4Method#call109 +
  0.000.000.000.003/8Thread::Queue#empty?109 +
  4.950.000.004.952/2Thread::Mutex#synchronize
63.90%0.00%4.950.000.004.952 + + Thread::ConditionVariable#wait + +
  4.950.004.950.002/2Thread::Mutex#sleep +
  4.950.004.950.002/2Thread::ConditionVariable#wait
63.90%0.00%4.950.004.950.002 + + Thread::Mutex#sleep + +
  2.790.002.790.003/3<Module::Timeout>#create_timeout_thread102
36.10%0.01%2.790.002.790.003 + + Thread::Queue#pop + +
* indicates recursively called methods
+ +

Thread 11100, Fiber: 11080

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%7.720.000.007.721 + + <Module::Listen::Internals::ThreadPool>#add + + 6
  7.630.000.007.631/1Listen::Adapter::Polling#_run78 +
  0.090.000.000.099/9Listen::Adapter::Base#_timed76 +
  0.000.000.000.001/1Hash#values75 +
  7.630.000.007.631/1<Module::Listen::Internals::ThreadPool>#add78
98.87%0.00%7.630.000.007.631 + + Listen::Adapter::Polling#_run + + 20
  7.630.000.007.631/1Kernel#loop21 +
  7.630.000.007.631/1Listen::Adapter::Polling#_run21
98.87%0.00%7.630.000.007.631 + + Kernel#loop + +
  7.500.007.500.008/8Kernel#sleep27 +
  0.130.000.000.1364/64Listen::Adapter::Polling#_process_event42 +
  0.000.000.000.0072/90<Class::Time>#now22 +
  0.000.000.000.0064/64Listen::Options#method_missing25 +
  0.000.000.000.0072/336Time#to_f22 +
  0.000.000.000.0064/64Float#>27 +
  7.500.007.500.008/8Kernel#loop
97.16%0.02%7.500.007.500.008 + + Kernel#sleep + +
  0.130.000.000.1364/64Kernel#loop
1.71%0.00%0.130.000.000.1364 + + Listen::Adapter::Polling#_process_event + + 32
  0.130.000.000.1364/64Listen::Adapter::Base#_queue_change33 +
  0.130.000.000.1364/64Listen::Adapter::Polling#_process_event33
1.71%0.00%0.130.000.000.1364 + + Listen::Adapter::Base#_queue_change + + 113
  0.130.000.000.1364/352Listen::Change#invalidate114 +
  0.000.000.000.0064/626Pathname#hash114 +
  0.130.000.000.13288/352<Class::Listen::Directory>#_change73
  0.130.000.000.1364/352Listen::Adapter::Base#_queue_change114
1.71%0.01%0.130.000.000.13352 + + *Listen::Change#invalidate + + 31
  0.210.000.000.21135/135<Class::Listen::Directory>#scan55 +
  0.040.000.000.04217/217<Class::Listen::File>#change57 +
  0.000.000.000.00352/992Pathname#+42 +
  0.000.000.000.00352/352Listen::Change::Config#silenced?37 +
  0.000.000.000.00352/487<Class::Listen::Logger>#debug44 +
  0.000.000.000.00352/4950Pathname#initialize32 +
  0.210.000.000.21135/135Listen::Change#invalidate55
1.70%0.02%0.130.000.000.13135 + + *<Class::Listen::Directory>#scan + + 6
  0.120.000.000.12281/288<Class::Listen::Directory>#_change27 +
  0.030.000.000.03281/281Pathname#relative_path_from26 +
  0.020.000.020.00281/527<Class::File>#lstat25 +
  0.020.000.000.02135/135<Class::Listen::Directory>#_children15 +
  0.000.000.000.00416/992Pathname#+14 +
  0.000.000.000.00135/135<Class::Listen::Directory>#_async_changes38 +
  0.000.000.000.00281/281File::Stat#directory?25 +
  0.000.000.000.00135/144Set#initialize15 +
  0.000.000.000.00135/135Listen::Record#dir_entries9 +
  0.000.000.000.00135/487<Class::Listen::Logger>#debug17 +
  0.000.000.000.00562/2909Pathname#to_s25 +
  0.000.000.000.00270/4950Pathname#initialize8 +
  0.000.000.000.00135/153Listen::Record#add_dir11 +
  0.000.000.000.00281/626Pathname#hash244 +
  0.000.000.000.00274/274Pathname#eql?244 +
  0.000.000.000.007/288<Class::Listen::Directory>#_async_changes62
  0.120.000.000.12281/288<Class::Listen::Directory>#scan27
1.16%0.00%0.090.000.000.09288 + + *<Class::Listen::Directory>#_change + + 66
  0.130.000.000.13288/352Listen::Change#invalidate73 +
  0.000.000.000.00217/434Hash#initialize_copy71 +
  0.000.000.000.00217/217Hash#delete72 +
  0.090.000.000.099/9<Module::Listen::Internals::ThreadPool>#add76
1.13%0.00%0.090.000.000.099 + + Listen::Adapter::Base#_timed + + 101
  0.090.000.000.099/9Listen::Record#build76 +
  0.000.000.000.009/9<Class::Listen::Logger>#info105 +
  0.000.000.000.009/9Kernel#format105 +
  0.000.000.000.0018/90<Class::Time>#now102 +
  0.000.000.000.0018/336Time#to_f102 +
  0.090.000.000.099/9Listen::Adapter::Base#_timed76
1.13%0.00%0.090.000.000.099 + + Listen::Record#build + + 60
  0.090.000.000.0947/47Listen::Record#_fast_build_dir68 +
  0.000.000.000.009/9Listen::Record::SymlinkDetector#initialize65 +
  0.000.000.000.0056/56Thread::Queue#empty?68 +
  0.000.000.000.009/9Listen::Record#_auto_hash61 +
  0.000.000.000.009/47Listen::Record::Entry#initialize67 +
  0.000.000.000.009/47Thread::Queue#<<67 +
  0.000.000.000.009/9Thread::Queue#initialize66 +
  0.090.000.000.0947/47Listen::Record#build68
1.13%0.00%0.090.000.000.0947 + + Listen::Record#_fast_build_dir + + 100
  0.040.000.000.0418/18Listen::Record::SymlinkDetector#verify_unwatched!103 +
  0.030.000.000.0329/29Listen::Record#_fast_try_file107 +
  0.020.000.000.0247/47Listen::Record::Entry#children102 +
  0.000.000.000.0018/18Listen::Record::Entry#record_dir_key105 +
  0.000.000.000.0018/153Listen::Record#add_dir105 +
  0.000.000.000.0038/47Thread::Queue#<<104 +
  0.000.000.000.0047/47Thread::Queue#pop101 +
  0.000.000.000.0029/29<Class::SystemCallError>#===102 +
* indicates recursively called methods
+ +

Thread 11140, Fiber: 11120

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%7.720.000.007.721 + + <Module::Listen::Internals::ThreadPool>#add + + 6
  7.720.000.007.721/1Listen::Event::Loop#_wait_for_changes42 +
  7.720.000.007.721/1<Module::Listen::Internals::ThreadPool>#add42
100.00%0.00%7.720.000.007.721 + + Listen::Event::Loop#_wait_for_changes + + 80
  7.720.000.007.721/1Listen::Event::Processor#loop_for84 +
  0.000.000.000.001/1Listen::Event::Loop#_wait_until_resumed83 +
  0.000.000.000.001/1Listen::Event::Processor#initialize81 +
  7.720.000.007.721/1Listen::Event::Loop#_wait_for_changes84
100.00%0.00%7.720.000.007.721 + + Listen::Event::Processor#loop_for + + 12
  7.720.000.007.721/1Kernel#loop15 +
  7.720.000.007.721/1Listen::Event::Processor#loop_for15
100.00%0.00%7.720.000.007.721 + + Kernel#loop + +
  7.720.000.007.721/1Listen::Event::Processor#_wait_until_events16 +
  7.720.000.007.721/1Kernel#loop
100.00%0.00%7.720.000.007.721 + + Listen::Event::Processor#_wait_until_events + + 82
  7.720.000.007.721/1Listen::Event::Processor#_sleep84 +
  0.000.000.000.001/1Listen::Event::Queue#empty?84 +
  7.720.000.007.721/1Listen::Event::Processor#_wait_until_events84
100.00%0.00%7.720.000.007.721 + + Listen::Event::Processor#_sleep + + 57
  7.720.000.007.721/1Listen::Event::Config#sleep59 +
  0.000.000.000.001/1Listen::Event::Processor#_check_stopped58 +
  7.720.000.007.721/1Listen::Event::Processor#_sleep59
100.00%0.00%7.720.000.007.721 + + Listen::Event::Config#sleep + + 18
  7.720.007.720.001/1<Module::Kernel>#sleep19 +
  7.720.007.720.001/1Listen::Event::Config#sleep19
100.00%0.00%7.720.007.720.001 + + <Module::Kernel>#sleep + +
* indicates recursively called methods
+ +

Thread 11360, Fiber: 11340

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
%Total%SelfTotalSelfWaitChildCallsNameLine
100.00%0.00%7.640.000.007.641 + + ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper#run + + 300
  7.640.000.007.641/1Kernel#loop300 +
  7.640.000.007.641/1ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper#run300
100.00%0.00%7.640.000.007.641 + + Kernel#loop + +
  7.640.007.640.001/1Kernel#sleep301 +
  7.640.007.640.001/1Kernel#loop
100.00%0.00%7.640.007.640.001 + + Kernel#sleep + +
* indicates recursively called methods
+ +
+ + + + diff --git a/Rakefile b/Rakefile index e85f9139..3dc26ea1 100644 --- a/Rakefile +++ b/Rakefile @@ -3,4 +3,18 @@ require_relative 'config/application' +module Rake + class Task + def execute_with_timestamps(*args) + start = Time.now + execute_without_timestamps(*args) + execution_time_in_seconds = Time.now - start + printf("** %s took %.1f seconds\n", name, execution_time_in_seconds) + end + + alias :execute_without_timestamps :execute + alias :execute :execute_with_timestamps + end +end + Rails.application.load_tasks diff --git a/app/models/buses_service.rb b/app/models/buses_service.rb new file mode 100644 index 00000000..6219d44e --- /dev/null +++ b/app/models/buses_service.rb @@ -0,0 +1,4 @@ +class BusesService < ApplicationRecord + belongs_to :bus + belongs_to :service +end diff --git a/case-study-a.md b/case-study-a.md new file mode 100644 index 00000000..81a3e946 --- /dev/null +++ b/case-study-a.md @@ -0,0 +1,42 @@ +# Case-study оптимизации A + +## Актуальная проблема +Нужно оптимизировать механизм перезагрузки расписания из файла так, чтобы он импортировал файл `large.json` **в пределах минуты**. + +`rake reload_json[fixtures/large.json]` + +Я решил исправить эту проблему, оптимизировав этот скрипт. + +## Формирование метрики +Для того, чтобы понимать, дают ли мои изменения положительный эффект на быстродействие программы я придумал использовать такую метрику: время выполнения скрипта с момента запуска и до момента окончания. + +## Гарантия корректности работы оптимизированной программы +Результат работы страницы `автобусы/Самара/Москва` для данных из файла `fixtures/example.json` не должен меняться от применения оптимизаций. + +## Feedback-Loop +Для того, чтобы иметь возможность быстро проверять гипотезы, я выстроил эффективный `feedback-loop`, который позволил мне получать обратную связь по эффективности сделанных изменений за меньшее полутора минут время. + +Вот как я построил `feedback_loop`: мы уже имеем разбиение входных данных на разные объемы, поэтому остается построить тесты для фиксирования текущей производительности в процессе работы как отправной точки. Самая первая итерация представляла из себя написание тестов производительности (время выполнения программы). В данном случае это можно отнести к шагу Profile & Test & Benchmark. Полученные при первом запуске значения бенчмарка мы можем записать в цели теста для исключения регрессий на последующих итерациях. +С этого момента наш feedback loop создан, и мы можем переходить к профилированию и изменению кода, после чего запускать уже написанные тесты для сравнения результатов с отправным шагом (или шагом предыдущей итерации). + +## Вникаем в детали системы, чтобы найти главные точки роста +Для того, чтобы найти "точки роста" для оптимизации я воспользовался инструментами memory-profiler и ruby-prof. + +Вот какие проблемы удалось найти и решить + +### Ваша находка №1 +- какой отчёт показал главную точку роста + * ruby-prof с профилем на small.json указал на большее время, проведенное внутри ActiveRecord::Persistence#update (`bus.update`: 4.5 сек и 1000 вызовов), ActiveRecord::Querying#find_or_create_by (3.67 сек и 7229 вызовов) и ActiveRecord::Persistence::ClassMethods#create! (1.11 сек и 1000 вызовов). Это и есть наша первая точка роста. +- как вы решили её оптимизировать + * на этом этапе оптимизации импорта данных были удалены избыточные шаги поиска, создания и обновления записей в БД. Попутно была создана недостающая модель BusesService в БД, на которую уже была ссылка в качестве общей таблицы внутри Bus и Service моделей. Для массовой вставки записей в БД был использован gem 'activerecord-import'. Для более новых версий Rails можно было бы обойтись insert_all. Исходя из знаний об ожидаемых данных было возможно применить запись данных в базу "кусками". Для этого мы считываем определенное число строк, обрабатываем их и сразу же сохраняем записи о поездках. Затем переходим к следующему блоку данных и т.д. Весь блок обработки данных был вынесен в отдельный класс. Ключевым в снижении числа обращений к базе внутри транзакции стало использование хэшей для хранения созданных новых записей. В первую очередь происходит поиск и использование значений из хэшей и только потом происходит поиск или создание новой записи в базе. +- как изменилась метрика + * время выполнения импорта малого объема данных снизилось до 2.2 секунд с 3.5 секунд, а для среднего объема данных с 65 секунд до 5.1 секунд. Большой объем данных импортируется за 17.6 секунд. +- как изменился отчёт профилировщика + * согласно профилировщику основное время после оптимизации теперь стало уходить на ActiveRecord::Querying#find_or_create_by (6.88 секунды и 3255 вызова). + +## Результаты +В результате проделанной оптимизации наконец удалось обработать большой файл с данными за целевое время. +Метрика системы снизилась ... + +## Защита от регрессии производительности +Для защиты от потери достигнутого прогресса при дальнейших изменениях скрипта тесты на производительность алгоритма были зафиксированы на новых значениях, достигнутых за счет оптимизации. diff --git a/lib/tasks/support/database_reloader.rb b/lib/tasks/support/database_reloader.rb new file mode 100644 index 00000000..d199ecd6 --- /dev/null +++ b/lib/tasks/support/database_reloader.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true + +class DatabaseReloader + attr_accessor :cities, :buses, :services, :buses_services, :trips, :json, :batch_size + + def initialize(file_name, batch_size = 1_000) + @cities = {} + @buses = {} + @services = {} + @buses_services = {} + @trips = [] + @json = JSON.parse(File.read(file_name)) + @batch_size = batch_size + end + + def call + City.delete_all + Bus.delete_all + Service.delete_all + BusesService.delete_all + Trip.delete_all + + # services are known in advance and won't change during JSON parse + services = Service::SERVICES.map.with_index { |service, index| { id: index + 1, name: service } } + Service.import(%i[id name], services, validate: false) + services = services.to_h { |service| [service[:name], service[:id]] } + + ActiveRecord::Base.transaction do + json.each do |trip| + cities[trip['from']] ||= City.find_or_create_by(name: trip['from']) + cities[trip['to']] ||= City.find_or_create_by(name: trip['to']) + bus_number = trip['bus']['number'] + buses[bus_number] ||= Bus.find_or_create_by(number: bus_number, model: trip['bus']['model']) + + trip['bus']['services'].each do |service| + service_id = services[service] + buses_services["#{buses[bus_number]}-#{service_id}"] ||= + BusesService.find_or_create_by(bus: buses[bus_number], service_id: service_id) + end + + trips << Trip.new( + from: cities[trip['from']], + to: cities[trip['to']], + bus: buses[bus_number], + start_time: trip['start_time'], + duration_minutes: trip['duration_minutes'], + price_cents: trip['price_cents'] + ) + + # bulk import each 1000 or batch_size trip records + if trips.size == batch_size + Trip.import!(trips) + self.trips = [] + end + end + # import last accumulated batch after JSON is read + Trip.import!(trips) if trips.present? + end + end +end diff --git a/lib/tasks/utils.rake b/lib/tasks/utils.rake index 540fe871..c1af7dd6 100644 --- a/lib/tasks/utils.rake +++ b/lib/tasks/utils.rake @@ -1,34 +1,11 @@ # Наивная загрузка данных из json-файла в БД # rake reload_json[fixtures/small.json] -task :reload_json, [:file_name] => :environment do |_task, args| - json = JSON.parse(File.read(args.file_name)) - - ActiveRecord::Base.transaction do - City.delete_all - Bus.delete_all - Service.delete_all - Trip.delete_all - ActiveRecord::Base.connection.execute('delete from buses_services;') - - json.each do |trip| - from = City.find_or_create_by(name: trip['from']) - to = City.find_or_create_by(name: trip['to']) - services = [] - trip['bus']['services'].each do |service| - s = Service.find_or_create_by(name: service) - services << s - end - bus = Bus.find_or_create_by(number: trip['bus']['number']) - bus.update(model: trip['bus']['model'], services: services) +require_relative 'support/database_reloader' - Trip.create!( - from: from, - to: to, - bus: bus, - start_time: trip['start_time'], - duration_minutes: trip['duration_minutes'], - price_cents: trip['price_cents'], - ) - end - end +task :reload_json, [:file_name] => :environment do |_task, args| + DatabaseReloader.new(args.file_name).call end + +# Iteration 0: measurement for medium.json without any changes ~ 65 seconds +# Iteration 1: measurement for medium.json with batches and bulk import = 5.1 seconds +# Iteration 1: measurement for large.json with batches and bulk import = 17.6 seconds diff --git a/profiler-1.rb b/profiler-1.rb new file mode 100644 index 00000000..735783a8 --- /dev/null +++ b/profiler-1.rb @@ -0,0 +1,2 @@ +#!/usr/bin/env ruby +system("ruby-memory-profiler --pretty --out=PROFILE.txt ./bin/rake reload_json['fixtures/small.json']") diff --git a/profiler-2.rb b/profiler-2.rb new file mode 100644 index 00000000..4685b1d0 --- /dev/null +++ b/profiler-2.rb @@ -0,0 +1,2 @@ +#!/usr/bin/env ruby +system("ruby-prof --mode=wall -p graph_html --exclude-common -f PROFILE2.html --min_percent=1 ./bin/rake reload_json['fixtures/small.json']") diff --git a/test/tasks/utils_rake_spec.rb b/test/tasks/utils_rake_spec.rb index 74fca191..c10e9c8f 100644 --- a/test/tasks/utils_rake_spec.rb +++ b/test/tasks/utils_rake_spec.rb @@ -1,20 +1,19 @@ require_relative '../test_helper' -require 'json' describe 'rake reload_json', type: :task do - # 1k trips under 3.5 seconds - it 'should work under 3.5 seconds' do - expect { task.execute(Rake::TaskArguments.new([:file_name], ['fixtures/small.json'])) }.to perform_under(3.5).sec + # 1k trips under 2.5 seconds + it 'should work under 2.5 seconds' do + expect { task.execute(Rake::TaskArguments.new([:file_name], ['fixtures/small.json'])) }.to perform_under(2.5).sec end - # 10k trips under 65 seconds - it 'should work under 65 seconds' do - expect { task.execute(Rake::TaskArguments.new([:file_name], ['fixtures/medium.json'])) }.to perform_under(65).sec + # 10k trips under 5.5 seconds + it 'should work under 5.5 seconds' do + expect { task.execute(Rake::TaskArguments.new([:file_name], ['fixtures/medium.json'])) }.to perform_under(5.5).sec end - # 100k trips under 60 seconds - # it 'should work under 60 seconds' do - # expect { task.execute(Rake::TaskArguments.new([:file_name], ['fixtures/large.json'])) }.to perform_under(60).sec - # end + # 100k trips under 18 seconds + it 'should work under 18 seconds' do + expect { task.execute(Rake::TaskArguments.new([:file_name], ['fixtures/large.json'])) }.to perform_under(18).sec + end end From 02bf216352d42127e5e8f7b3d99453ac95ed7e95 Mon Sep 17 00:00:00 2001 From: Igor Arkhipov Date: Mon, 13 Nov 2023 13:33:20 +0100 Subject: [PATCH 4/5] Optimise performance step B --- Gemfile | 6 +++ Gemfile.lock | 24 +++++++++ app/controllers/trips_controller.rb | 2 +- app/views/trips/_service.html.erb | 4 +- app/views/trips/_services.html.erb | 6 --- app/views/trips/_trip.html.erb | 18 +++++-- app/views/trips/index.html.erb | 12 +---- bin/setup | 4 +- case-study-a.md | 1 - case-study-b.md | 54 +++++++++++++++++++ config/environments/development.rb | 9 ++++ config/environments/test.rb | 6 +++ config/routes.rb | 1 + ...0231112233007_create_pghero_query_stats.rb | 15 ++++++ .../20231113122511_add_index_to_trips.rb | 7 +++ db/schema.rb | 15 +++++- 16 files changed, 157 insertions(+), 27 deletions(-) delete mode 100644 app/views/trips/_services.html.erb create mode 100644 case-study-b.md create mode 100644 db/migrate/20231112233007_create_pghero_query_stats.rb create mode 100644 db/migrate/20231113122511_add_index_to_trips.rb diff --git a/Gemfile b/Gemfile index d1cb78f3..58ce2f9d 100644 --- a/Gemfile +++ b/Gemfile @@ -8,6 +8,7 @@ gem 'bootsnap', '>= 1.1.0', require: false gem 'pg', '>= 0.18', '< 2.0' gem 'puma', '~> 3.11' gem 'rails', '~> 5.2.3' +gem 'strong_migrations' group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console @@ -15,7 +16,12 @@ group :development, :test do end group :development do + gem 'bullet' gem 'listen', '>= 3.0.5', '< 3.2' + gem 'meta_request' + gem 'pghero' + gem 'pg_query' + gem 'rack-mini-profiler' # Access an interactive console on exception pages or by calling 'console' anywhere in the code. gem 'web-console', '>= 3.3.0' end diff --git a/Gemfile.lock b/Gemfile.lock index 8171cdaa..a0bb2451 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -52,6 +52,9 @@ GEM bootsnap (1.17.0) msgpack (~> 1.2) builder (3.2.4) + bullet (7.1.3) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.11) byebug (11.1.3) concurrent-ruby (1.2.2) crass (1.0.6) @@ -61,6 +64,7 @@ GEM ffi (1.16.3) globalid (1.1.0) activesupport (>= 5.0) + google-protobuf (3.25.0) i18n (1.14.1) concurrent-ruby (~> 1.0) listen (3.1.5) @@ -76,6 +80,9 @@ GEM net-pop net-smtp marcel (1.0.2) + meta_request (0.7.4) + rack-contrib (>= 1.1, < 3) + railties (>= 3.0.0, < 7.1) method_source (1.0.0) mini_mime (1.1.5) mini_portile2 (2.8.5) @@ -95,9 +102,17 @@ GEM mini_portile2 (~> 2.8.2) racc (~> 1.4) pg (1.5.4) + pg_query (4.2.3) + google-protobuf (>= 3.22.3) + pghero (2.8.3) + activerecord (>= 5) puma (3.12.6) racc (1.7.3) rack (2.2.8) + rack-contrib (2.4.0) + rack (< 4) + rack-mini-profiler (3.1.1) + rack (>= 1.2.0) rack-test (2.1.0) rack (>= 1.3) rails (5.2.8.1) @@ -156,11 +171,14 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) + strong_migrations (1.6.4) + activerecord (>= 5.2) thor (1.3.0) thread_safe (0.3.6) timeout (0.4.1) tzinfo (1.2.11) thread_safe (~> 0.1) + uniform_notifier (1.16.0) web-console (3.7.0) actionview (>= 5.0) activemodel (>= 5.0) @@ -176,12 +194,18 @@ PLATFORMS DEPENDENCIES activerecord-import bootsnap (>= 1.1.0) + bullet byebug listen (>= 3.0.5, < 3.2) + meta_request pg (>= 0.18, < 2.0) + pg_query + pghero puma (~> 3.11) + rack-mini-profiler rails (~> 5.2.3) rspec-benchmark + strong_migrations tzinfo-data web-console (>= 3.3.0) diff --git a/app/controllers/trips_controller.rb b/app/controllers/trips_controller.rb index acb38be2..eb2dee12 100644 --- a/app/controllers/trips_controller.rb +++ b/app/controllers/trips_controller.rb @@ -2,6 +2,6 @@ class TripsController < ApplicationController def index @from = City.find_by_name!(params[:from]) @to = City.find_by_name!(params[:to]) - @trips = Trip.where(from: @from, to: @to).order(:start_time) + @trips = Trip.where(from: @from, to: @to).preload(bus: :services).order(:start_time) end end diff --git a/app/views/trips/_service.html.erb b/app/views/trips/_service.html.erb index 178ea8c0..285e7a56 100644 --- a/app/views/trips/_service.html.erb +++ b/app/views/trips/_service.html.erb @@ -1 +1,3 @@ -
  • <%= "#{service.name}" %>
  • +
  • + <%= "#{service.name}" %> +
  • diff --git a/app/views/trips/_services.html.erb b/app/views/trips/_services.html.erb deleted file mode 100644 index 2de639fc..00000000 --- a/app/views/trips/_services.html.erb +++ /dev/null @@ -1,6 +0,0 @@ -
  • Сервисы в автобусе:
  • -
      - <% services.each do |service| %> - <%= render "service", service: service %> - <% end %> -
    diff --git a/app/views/trips/_trip.html.erb b/app/views/trips/_trip.html.erb index fa1de9aa..e8874fa1 100644 --- a/app/views/trips/_trip.html.erb +++ b/app/views/trips/_trip.html.erb @@ -1,5 +1,13 @@ -
  • <%= "Отправление: #{trip.start_time}" %>
  • -
  • <%= "Прибытие: #{(Time.parse(trip.start_time) + trip.duration_minutes.minutes).strftime('%H:%M')}" %>
  • -
  • <%= "В пути: #{trip.duration_minutes / 60}ч. #{trip.duration_minutes % 60}мин." %>
  • -
  • <%= "Цена: #{trip.price_cents / 100}р. #{trip.price_cents % 100}коп." %>
  • -
  • <%= "Автобус: #{trip.bus.model} №#{trip.bus.number}" %>
  • +
      +
    • <%= "Отправление: #{trip.start_time}" %>
    • +
    • <%= "Прибытие: #{(Time.parse(trip.start_time) + trip.duration_minutes.minutes).strftime('%H:%M')}" %>
    • +
    • <%= "В пути: #{trip.duration_minutes / 60}ч. #{trip.duration_minutes % 60}мин." %>
    • +
    • <%= "Цена: #{trip.price_cents / 100}р. #{trip.price_cents % 100}коп." %>
    • +
    • <%= "Автобус: #{trip.bus.model} №#{trip.bus.number}" %>
    • + <% if trip.bus.services.present? %> +
    • Сервисы в автобусе:
    • +
        + <%= render partial: "service", collection: trip.bus.services %> +
      + <% end %> +
    diff --git a/app/views/trips/index.html.erb b/app/views/trips/index.html.erb index a60bce41..18a81a9c 100644 --- a/app/views/trips/index.html.erb +++ b/app/views/trips/index.html.erb @@ -2,15 +2,7 @@ <%= "Автобусы #{@from.name} – #{@to.name}" %>

    - <%= "В расписании #{@trips.count} рейсов" %> + <%= "В расписании #{@trips.size} рейсов" %>

    -<% @trips.each do |trip| %> -
      - <%= render "trip", trip: trip %> - <% if trip.bus.services.present? %> - <%= render "services", services: trip.bus.services %> - <% end %> -
    - <%= render "delimiter" %> -<% end %> +<%= render partial: @trips, spacer_template: "delimiter" %> diff --git a/bin/setup b/bin/setup index f294207b..5534a287 100755 --- a/bin/setup +++ b/bin/setup @@ -28,8 +28,8 @@ chdir APP_ROOT do puts "\n== Preparing database ==" system! 'bin/rails db:setup' - puts "\n== Loading data from fixtures/small.json ==" - system! 'bin/rake reload_json[fixtures/small.json]' + puts "\n== Loading data from fixtures/large.json ==" + system! 'bin/rake reload_json[fixtures/large.json]' puts "\n== Removing old logs and tempfiles ==" system! 'bin/rails log:clear tmp:clear' diff --git a/case-study-a.md b/case-study-a.md index 81a3e946..501fc5c4 100644 --- a/case-study-a.md +++ b/case-study-a.md @@ -36,7 +36,6 @@ ## Результаты В результате проделанной оптимизации наконец удалось обработать большой файл с данными за целевое время. -Метрика системы снизилась ... ## Защита от регрессии производительности Для защиты от потери достигнутого прогресса при дальнейших изменениях скрипта тесты на производительность алгоритма были зафиксированы на новых значениях, достигнутых за счет оптимизации. diff --git a/case-study-b.md b/case-study-b.md new file mode 100644 index 00000000..c29043c0 --- /dev/null +++ b/case-study-b.md @@ -0,0 +1,54 @@ +# Case-study оптимизации B + +## Актуальная проблема +Нужно найти и устранить проблемы, замедляющие формирование страницы расписаний. + +`open http://localhost:3000/автобусы/Самара/Москва` + +Я решил исправить эту проблему, оптимизировав модели, связи между ними и обращения к БД. + +## Формирование метрики +Для того, чтобы понимать, дают ли мои изменения положительный эффект на быстродействие программы я придумал использовать такую метрику: время загрузки веб-страницы после предварительного импорта файла с данными large.json. + +## Гарантия корректности работы оптимизированной программы +Результат работы страницы `автобусы/Самара/Москва` для данных из файла `fixtures/example.json` не должен меняться от применения оптимизаций. + +## Feedback-Loop +Для того, чтобы иметь возможность быстро проверять гипотезы, я выстроил эффективный `feedback-loop`, который позволил мне получать обратную связь по эффективности сделанных изменений за меньшее 10 секунд время. + +Вот как я построил `feedback_loop`: благодаря подключению профилирующих плагинов, стало возможным видеть многие очевидные проблемы во всплывающих окнах поверх самой загруженной страницы с расписанием автобусов. +С этого момента наш feedback loop создан, и мы можем переходить к профилированию и изменению кода, после чего загружать страницу повторно для сравнения результатов с отправным шагом (или шагом предыдущей итерации). + +## Вникаем в детали системы, чтобы найти главные точки роста +Для того, чтобы найти "точки роста" для оптимизации я воспользовался инструментами `rack-mini-profiler`, `rails panel`, `bullet`, `pghero`. + +Вот какие проблемы удалось найти и решить + +### Ваша находка №1 +- какой отчёт показал главную точку роста + * `rack-mini-profiler` указал время загрузки страницы до начала оптимизаций около 9 секунд. `rails panel` привел разбивку этого времени по обращениям к БД и собственно рендерингу. В данном случае рендеринг занимал большую часть времени - порядка 6,7 секунды. На вкладке Rendering видно, что ответственный за это время - файл `views/trips/index.html.erb`: `Rendering: trips/index.html.erb 3812.2 +13.5 768 sql 573.9`. Это и будет основная точка роста. +- как вы решили её оптимизировать + * Важно изменить код в темплейте так, чтобы уменьшить число запросов к базе данных. По подсказке `bullet` я добавил в `trips_controller` предзагрузку связанных с trips записей: `.preload(bus: :services)` +- как изменилась метрика + * время загрузки страницы сократилось до ~ 8 секунд. `Rendering: trips/index.html.erb 2673.6 +106.5 12 sql 45.9` +- как изменился отчёт профилировщика + * предупреждения об отсутствующих предзагрузках пропали. + +### Ваша находка №2 +- какой отчёт показал главную точку роста + * `rails panel` по-прежнему подчеркивает, что основное время загрузки страницы уходит на рендеринг. Особенно наглядно это видно в длинном списке вызовов отдельных темплейтов в логе Rails сервера. +- как вы решили её оптимизировать + * Я решил сократить число вызовов различных partials и свести к минимуму количество темплейтов, которые нужно отрендерить. Для этого я использовал рендеринг коллекций и параметр шаблона разделителя. Одновременно было возможным оптимизировать "верхний" запрос к БД по метрикам `pghero`, который был отображен как самый долгий из текущих при рендеринге страницы: + `SELECT COUNT(*) FROM "trips" WHERE "trips"."from_id" = $1 AND "trips"."to_id" = $2` 13ms average + + `SELECT "trips".* FROM "trips" WHERE "trips"."from_id" = $1 AND "trips"."to_id" = $2 ORDER BY "trips"."start_time" ASC` 10ms average. Причиной был Seqential Scan on trips, получилось нивелировать это добавлением индекса. +- как изменилась метрика + * время загрузки страницы сократилось до ~ 2.7 секунды +- как изменился отчёт профилировщика + * ``` + GET http://localhost:3000/%D0%B0%D0%B2%D1%82%... 598.3 +0.0 1 sql 0.4 + Executing: trips#index 16.4 +4.0 2 sql 0.5 + Rendering: trips/index.html.erb 2071.4 +16.6 5 sql 9.6 + ``` + +## Результаты +В результате проделанной оптимизации удалось существенно снизить время загрузки страницы с информацией обо всех поездках. Метрика системы снизилась с 9 до 2.7 секунды. diff --git a/config/environments/development.rb b/config/environments/development.rb index 1311e3e4..903a8661 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,4 +1,13 @@ Rails.application.configure do + config.after_initialize do + Bullet.enable = true + Bullet.alert = true + Bullet.bullet_logger = true + Bullet.console = true + Bullet.rails_logger = true + Bullet.add_footer = true + end + # Settings specified here will take precedence over those in config/application.rb. # In the development environment your application's code is reloaded on diff --git a/config/environments/test.rb b/config/environments/test.rb index 0a38fd3c..bc5971ab 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,4 +1,10 @@ Rails.application.configure do + config.after_initialize do + Bullet.enable = true + Bullet.bullet_logger = true + Bullet.raise = true # raise an error if n+1 query occurs + end + # Settings specified here will take precedence over those in config/application.rb. # The test environment is used exclusively to run your application's diff --git a/config/routes.rb b/config/routes.rb index a2da6a7b..089f3c4e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,5 @@ Rails.application.routes.draw do + mount PgHero::Engine, at: "pghero" # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html get "/" => "statistics#index" get "автобусы/:from/:to" => "trips#index" diff --git a/db/migrate/20231112233007_create_pghero_query_stats.rb b/db/migrate/20231112233007_create_pghero_query_stats.rb new file mode 100644 index 00000000..fbf41263 --- /dev/null +++ b/db/migrate/20231112233007_create_pghero_query_stats.rb @@ -0,0 +1,15 @@ +class CreatePgheroQueryStats < ActiveRecord::Migration[5.2] + def change + create_table :pghero_query_stats do |t| + t.text :database + t.text :user + t.text :query + t.integer :query_hash, limit: 8 + t.float :total_time + t.integer :calls, limit: 8 + t.timestamp :captured_at + end + + add_index :pghero_query_stats, [:database, :captured_at] + end +end diff --git a/db/migrate/20231113122511_add_index_to_trips.rb b/db/migrate/20231113122511_add_index_to_trips.rb new file mode 100644 index 00000000..564da788 --- /dev/null +++ b/db/migrate/20231113122511_add_index_to_trips.rb @@ -0,0 +1,7 @@ +class AddIndexToTrips < ActiveRecord::Migration[5.2] + disable_ddl_transaction! + + def change + add_index :trips, [:from_id, :to_id, :start_time], algorithm: :concurrently + end +end diff --git a/db/schema.rb b/db/schema.rb index f6921e45..f2008163 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,9 +10,10 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_03_30_193044) do +ActiveRecord::Schema.define(version: 2023_11_13_122511) do # These are extensions that must be enabled in order to support this database + enable_extension "pg_stat_statements" enable_extension "plpgsql" create_table "buses", force: :cascade do |t| @@ -29,6 +30,17 @@ t.string "name" end + create_table "pghero_query_stats", force: :cascade do |t| + t.text "database" + t.text "user" + t.text "query" + t.bigint "query_hash" + t.float "total_time" + t.bigint "calls" + t.datetime "captured_at" + t.index ["database", "captured_at"], name: "index_pghero_query_stats_on_database_and_captured_at" + end + create_table "services", force: :cascade do |t| t.string "name" end @@ -40,6 +52,7 @@ t.integer "duration_minutes" t.integer "price_cents" t.integer "bus_id" + t.index ["from_id", "to_id", "start_time"], name: "index_trips_on_from_id_and_to_id_and_start_time" end end From 06d379c39a3ede75abf54cad29792b078a20d8dd Mon Sep 17 00:00:00 2001 From: Igor Arkhipov Date: Mon, 13 Nov 2023 14:11:32 +0100 Subject: [PATCH 5/5] Add test --- Gemfile | 8 ++++-- Gemfile.lock | 9 +++++++ case-study-b.md | 3 +++ test/controllers/trips_controller_spec.rb | 33 +++++++++++++++++++++++ 4 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 test/controllers/trips_controller_spec.rb diff --git a/Gemfile b/Gemfile index 58ce2f9d..f195e18d 100644 --- a/Gemfile +++ b/Gemfile @@ -16,10 +16,8 @@ group :development, :test do end group :development do - gem 'bullet' gem 'listen', '>= 3.0.5', '< 3.2' gem 'meta_request' - gem 'pghero' gem 'pg_query' gem 'rack-mini-profiler' # Access an interactive console on exception pages or by calling 'console' anywhere in the code. @@ -27,8 +25,14 @@ group :development do end group :test do + gem 'rspec-rails' gem 'rspec-benchmark' end +group :development, :test do + gem 'bullet' + gem 'pghero' +end + # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] diff --git a/Gemfile.lock b/Gemfile.lock index a0bb2451..7ae8a000 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -162,6 +162,14 @@ GEM rspec-mocks (3.12.6) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.12.0) + rspec-rails (5.1.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + railties (>= 5.2) + rspec-core (~> 3.10) + rspec-expectations (~> 3.10) + rspec-mocks (~> 3.10) + rspec-support (~> 3.10) rspec-support (3.12.1) ruby_dep (1.5.0) sprockets (4.2.1) @@ -205,6 +213,7 @@ DEPENDENCIES rack-mini-profiler rails (~> 5.2.3) rspec-benchmark + rspec-rails strong_migrations tzinfo-data web-console (>= 3.3.0) diff --git a/case-study-b.md b/case-study-b.md index c29043c0..145869e7 100644 --- a/case-study-b.md +++ b/case-study-b.md @@ -52,3 +52,6 @@ ## Результаты В результате проделанной оптимизации удалось существенно снизить время загрузки страницы с информацией обо всех поездках. Метрика системы снизилась с 9 до 2.7 секунды. + +## Защита от регрессии производительности +Для защиты от потери достигнутого прогресса при дальнейших изменениях скрипта тесты на производительность алгоритма были зафиксированы на новых значениях, достигнутых за счет оптимизации. diff --git a/test/controllers/trips_controller_spec.rb b/test/controllers/trips_controller_spec.rb new file mode 100644 index 00000000..bb04431f --- /dev/null +++ b/test/controllers/trips_controller_spec.rb @@ -0,0 +1,33 @@ +require_relative '../test_helper' +require 'rspec/rails' + +RSpec.describe TripsController, type: :controller do + describe 'GET trips#index' do + # RAILS_ENV=test rake reload_json[fixtures/large.json] + before(:all) do + Rake::Task.define_task(:environment) + Rake::Task['reload_json'].invoke('fixtures/large.json') + end + + def subject + get :index, params: { from: 'Самара', to: 'Москва' } + end + + it 'should not raise errors' do + subject + + expect(response).to have_http_status(:success) + end + + # 100k trips under 1.6 ms from DB / without view rendering + it 'should work under 1.6 ms' do + expect { subject }.to perform_under(1.6).ms + end + + it 'has correct number of trips from large json' do + subject + + expect(@controller.view_assigns['trips'].size).to eq(1004) + end + end +end