我们的 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以移动到下一行。
这不会对您的应用程序进行基准测试,但它可以让您逐步了解您的应用程序正在做什么,这本身可能会让您真正体验到花费这么长时间的事情。