ruby-on-rails - 如何扩展 Rails 应用程序

标签 ruby-on-rails ruby

我使用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

使用分页(查看 KaminariWillPaginate )以避免呈现行数过多的页面。

关于ruby-on-rails - 如何扩展 Rails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34042153/

相关文章:

ruby-on-rails - capybara poltergeist - 覆盖用户代理

ruby-on-rails - Postgres排序问题

ruby - 在 Ruby 中序列化扩展的 String 类

html - Rails iframe 标签未 100% 填充整个页面

ruby - 参数错误 : comparison of Hash with Hash failed - Sorting an array of hashes by hash name

ruby - RVM ruby​​ 版本 2.2.1,实际 ruby​​ 版本 1.8.7

ruby-on-rails - Sunspot Solr Rails - 使用 'with' 搜索多个模型

javascript - Rails 指定 javascript 文件的加载顺序?

ruby-on-rails - 你如何访问你的 heroku 数据库(特别是 postgres)?

ruby - 如果所有子模块都标记为完整的 rails,则自动将类(class)标记为完成 5