Я наконец-то нашел узкие места своего стартапа с помощью Benchmark.В частности, перейдите к гему компоновщика и в lib / bundler / runtime.rb найдите строку, которая выполняет Kernel.require, и оберните ее так:
puts Benchmark.measure("require #{file}") {
Kernel.require file
}.format("%n: %t %r")
Возможно, вам придется добавить require 'benchmark'где-то в вашем приложении, как в config / boot.rb.Это покажет вам, сколько времени потребуется, чтобы потребовать каждый драгоценный камень.Я не могу гарантировать, что ваши результаты будут соответствовать моим, но у меня было несколько драгоценных камней, которые загружались за секунду, по сравнению с субмиллисекундами для большинства.Некоторые были драгоценными камнями, которые мне не нужны были для разработки , но мне действительно нужно было для некоторых задач в среде разработки, например, capistrano, musta.Я протестировал другие области запуска (инициализаторы и т. Д.), Но не смог найти каких-либо существенных узких мест.
Я пока не нашел чистого способа настройки приложения для загрузки только тех задач, где они находятся.действительно необходимо.Возможно, я мог бы создать среду под названием: speedy и использовать RAILS_ENV = speedy rails s / c для запуска, когда я знаю, что мне не нужны эти драгоценные камни.Затем в Gemfile я мог использовать group: speedy для исключения этих драгоценных камней в некоторых случаях.
Все это говорит о том, что самое большое раздражение при запуске для меня - это загрузка всей среды для запуска граблей.Я мог бы, вероятно, исключить большинство драгоценных камней для этого, но Gemfile начал бы становиться грязным, поэтому я не знаю, стоит ли оно того.