在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
,但是在开发中我无法再次让第一个请求变慢。
接下来的事情很有趣。每一次我运行cucumber测试,第一个请求总是非常慢:
2017-08-14 11:19:52.879 [ 27729] [INFO ] Completed 200 OK in 38326ms (Views: 38306.8ms | ActiveRecord: 6.1ms)
由于未知原因,它甚至比开发时间更长。
重新启动Rails服务器和重新运行第一个请求的测试之间有什么不同,导致测试变得如此缓慢?我可以采取哪些步骤来解决这个问题?
(每次运行黄瓜测试时等待30秒并不好玩)