我使用apache和puma来部署应用程序。我使用 PostgreSQL。 Code on github 。我的应用程序很慢。当我在一个表中生成数千行时,生产力开始变差,但仍然可以接受。我每秒仍然可以处理 5 个请求。当我向一张表添加一百万行时,一个查询在 8 秒内执行,并且 View 似乎永远生成。我多次添加索引并编写原始 SQL 查询,但生产力仍然很慢。
我可以从哪里开始优化 Rails 应用程序?如何才能达到每秒至少 50 个请求?
最佳答案
我建议设置 Mini Profiler尝试找出你的瓶颈。特别是查找 N+1 problem (如果这是一个问题,请考虑使用 Bullet)。
避免循环遍历所有行并为每一行实例化一个模型,从而占用内存:
User.all.each do # Bad
User.find_each do # Better
使用分页(查看 Kaminari 或 WillPaginate )以避免呈现行数过多的页面。
关于ruby-on-rails - 如何扩展 Rails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34042153/