ruby-on-rails - Rails 应用程序中的内存泄漏......字符串噩梦

标签 ruby-on-rails string memory heroku memory-leaks

所以我的这个 rails 应用程序有一个可怕的内存泄漏问题。我在 Heroku 上运行它,在过去的几天里,当我一直试图找出导致它的原因时,我不得不每 5 个小时左右不断地重新启动应用程序,否则内存超过 512 和我的应用程序崩溃了。

我正在使用 Oink,并且我的实例化类没有看到任何可疑的东西。唯一的问题是每次加载页面时,使用的内存都会增加。我加载哪个页面都没有关系,它似乎是随机的。

New Relic 也没有太大帮助,因为它与任何一个特定的 Controller 操作无关。

我唯一能找到的是使用 ObjectSpace,它显示内存中的字符串对象数量巨大,而且这个数字还在不断增长。我用了一个小工具来记录字符串的值,它们都是空白的。不是零...而是空格。我的生产应用程序经常使用超过 200,000 个字符串对象。

有谁知道这些可能来自什么?这真的让我感到压力,不得不每五个小时在我的电脑前让我的网站保持活力。

谢谢!

最佳答案

好吧,这绝对是荒谬的,但是经过两周的焦虑和挣扎,我找到了解决此漏洞的方法。从字面上看,这一切都归结为这一行:

ActionMailer::Base.delivery_method = :smtp

在我的 application.rb 配置文件中。

本来应该是:
config.action_mailer.delivery_method = :smtp

我不知道我是怎么弄错的,但是男孩确实对我的应用程序造成了严重破坏。

有谁知道为什么这会导致这样的问题?我在每次查询时都丢失了大约 1 兆字节的内存。疯狂的。

关于ruby-on-rails - Rails 应用程序中的内存泄漏......字符串噩梦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13429017/

相关文章:

Python 3 查找字符串中的最后一个数字

java - 有没有在没有内存开销的情况下在 Java 中存储位?

java - 在方法中使用单个临时变量有好处吗?

ruby-on-rails - 在 ruby rake 数据库 :migrate show the password failure

python : Word by word Text Processing between two files

mysql - mysql 2.8.1 和 ruby​​-mysql 2.9.3 有什么区别

iphone - [NSNull isEqualToString :]

c - realloc 移动内存块时如何更新其他指针?

jquery - 隐藏/显示 Div 效果 - Ruby on Rails 2

ruby-on-rails - 我该如何解释这个 Rails/PostgreSQL 错误?