我们的 Rails 3.2.8 应用程序在重新启动后需要大约 30 秒才能加载,而rails console
. m1.small
这是在具有 Ubuntu 11、64 位的 Amazon EC2实例上。服务器在负载下似乎非常合适(我们有几个)。仅在部署之后才有效发生的启动时间是一个问题。
有没有办法在 Rails 实例加载时获取加载内容的定时跟踪?
我们的 Rails 3.2.8 应用程序在重新启动后需要大约 30 秒才能加载,而rails console
. m1.small
这是在具有 Ubuntu 11、64 位的 Amazon EC2实例上。服务器在负载下似乎非常合适(我们有几个)。仅在部署之后才有效发生的启动时间是一个问题。
有没有办法在 Rails 实例加载时获取加载内容的定时跟踪?
pry
您可以通过将和添加pry-nav
到您的 Gemfile来获得一个很好的演练
# Gemfile
gem 'pry'
gem 'pry-nav'
一旦这到位,您可以简单地添加binding.pry
到早期加载的文件之一的顶部,例如environment.rb
或boot.rb
. (这假设您在 localhost:3000 上运行,否则事情会变得更加复杂。)重新启动您的应用程序,您应该进入一个 pry 会话。我们next
将逐步检查您的应用在启动时遇到的每一行代码!binding.pry
如果您想从一行跳转到另一行,您可以在整个代码中添加多行,只需键入exit
以移动到下一行。
这不会对您的应用程序进行基准测试,但它可以让您逐步了解您的应用程序正在做什么,这本身可能会让您真正体验到花费这么长时间的事情。