【发布时间】:2017-08-14 15:24:20
【问题描述】:
在 Ruby on Rails 中,当我运行 rails 服务器时,第一个请求似乎非常慢,日志显示缓慢来自视图渲染:
2017-08-14 10:24:12.707 [ 22139] [INFO ] Completed 200 OK in 18547ms (Views: 18501.6ms | ActiveRecord: 3.7ms)
我认为这是因为它需要连接到数据库。下一个请求当然是快(呃):
2017-08-14 11:01:54.937 [ 25662] [INFO ] Completed 200 OK in 765ms (Views: 714.0ms | ActiveRecord: 8.3ms)
我认为这与缓存有关,并且它已经具有数据库连接。我尝试重启服务器、重启数据库、清除浏览器缓存和rake db:sessions:clear,但我无法让第一个请求在开发中再次变慢。
这就是事情变得有趣的地方。 每次我运行黄瓜测试,第一个请求总是非常慢:
2017-08-14 11:19:52.879 [ 27729] [INFO ] Completed 200 OK in 38326ms (Views: 38306.8ms | ActiveRecord: 6.1ms)
由于未知原因,它甚至比开发中的时间还要长。
重启 Rails 服务器和重新运行测试导致第一个请求如此缓慢有什么不同?我可以采取哪些步骤来解决此类问题?
(每次我们想要运行我们的黄瓜测试之一时等待 30 秒并不好玩)
【问题讨论】:
-
你在用弹簧吗? (或类似的东西?)
-
不是这个时候,这在过去我们没有意识到我们需要重新启动 Spring 服务器来解决奇怪的问题时导致问题
-
我不确定我们是否对您的设置有足够的了解以提供很大帮助...如果您只运行一项无操作测试(如 true == true),它是否仍然很慢自己?