Ruby on rails 为什么Heroku的运行速度比localhost慢得多?

Ruby on rails 为什么Heroku的运行速度比localhost慢得多?,ruby-on-rails,performance,heroku,Ruby On Rails,Performance,Heroku,我在Rails中创建了一个简单的股票筛选器(根据特定标准筛选股票)。在我的本地主机上,股票会立即更新,但在Heroku上,更新股票列表可能需要10-15秒 我的Heroku应用程序位于此处: Github在这里:Github.com/anfruth/Fruth\u Screener\u Rails 更新查询所涉及的代码可以在用户_stocks模型和def create下的stocks控制器中找到 有没有关于为什么会发生这种情况的想法以及如何解决的建议 谢谢。对我来说不要慢 -- Heroku 唯

我在Rails中创建了一个简单的股票筛选器(根据特定标准筛选股票)。在我的本地主机上,股票会立即更新,但在Heroku上,更新股票列表可能需要10-15秒

我的Heroku应用程序位于此处: Github在这里:Github.com/anfruth/Fruth\u Screener\u Rails

更新查询所涉及的代码可以在用户_stocks模型和def create下的stocks控制器中找到

有没有关于为什么会发生这种情况的想法以及如何解决的建议

谢谢。

对我来说不要慢

--

Heroku

唯一会让Heroku慢下来的是,如果您的db连接是“非现场”的

我们以前有过运行速度非常慢的应用程序,因为数据库提供商是另一个国家的不同主机

Heroku,这意味着如果您在同一个数据中心拥有所有依赖项,它将运行得非常快。使用这些功能强大的“云”托管提供商的缺点之一是,它们需要将所有请求保持在本地,以帮助其系统快速运行;因此,如果您的数据库是“非现场的”,它将大大降低它的速度

您必须记住,Rails应用程序只有在有db连接的情况下才能运行;因此,如果你的连接速度慢,你的应用程序的性能将受到严重影响

-

博士后

如果你的应用程序在Heroku上运行缓慢,最好的办法是确保你正在使用Heroku的数据库。这是部署在Heroku的AWS云上的,这意味着它与您的应用程序位于同一网络上,因此允许它尽可能快地运行

您需要将应用程序的
数据库
连接更改为新的
生产
服务器,如下所示:

#config/database.yml
production:
  .... #-> your Heroku db details here

这将允许您在将新代码推送到heroku后运行heroku run rake db:migrate,heroku应该为您定义数据库结构,允许您按照自己的意愿填充它

听起来您可以从使用New Relic或Heroku的另一个性能管理软件包中获益,以便准确地找出导致您出现问题的原因。免费的NewRelic应该足够让你开始了


顺便说一句,如果你的应用程序是Heroku免费层应用程序(一个单独的网络dyno),那么你的dyno在不使用时将进入睡眠状态,你可能会遇到dyno加速成本,通常约为5-15秒。在几分钟内重复同一查询几次,然后查看是否每个请求都会持续缓慢,或者仅第一个请求会持续缓慢。

这是一个合理的问题,但没有足够的信息来回答,请保存整个代码库。请尽量缩小范围并粘贴代码片段,而不是让人们查看您的github repo,或者将其带到codereview.stackexchange.com