(首先我不会说我希望的英语,我希望你原谅我的错误:S)
我是 Ruby 和 Rails 的新手,我非常困惑和沮丧,因为我的应用程序在生产模式下运行时出现内存泄漏。
我的服务器正在关闭我的应用程序,因为它达到了 800MB 的内存:O 我用谷歌搜索过它,我发现一种解决方案是使用一种工具来查找泄漏:Bleackhouse(我还没有设法安装应用程序)或 memprof(安装没问题)。
我安装 memprof:
$ gem install memprof
安装后,我可以将它与“irb”一起使用并对其进行测试,但我不可能让它与我的 Rails 3 应用程序一起运行,我知道这是因为我对 Rails 非常陌生 :(
我已经阅读了太多关于 memprof 的网页、教程和幻灯片,但我找不到任何解释如何在 Rails 中安装它的参考资料。
我将这些行添加到我的 config/environment.rb
require `gem which memprof/signal`.strip
配置/环境.rb:
# -*- encoding : utf-8 -*-
require `gem which memprof/signal`.strip
# Load the rails application
require File.expand_path('../application', __FILE__)
# Initialize the rails application
NameApp::Application.initialize!
但是当我运行我的应用程序(Apache + Phusion Passenger)时,它会抛出一个错误:
"Ruby (Rack) application could not be started"
A source file that the application requires, is missing.
It is possible that you didn't upload your application files correctly. Please check whether all your application files are uploaded.
A required library may not installed. Please install all libraries that this application requires.
Error message:
no such file to load --
/path/to/my/app/config/environment.rb 3 in `require'
...
我真的不知道为什么我可以在 irb 中运行 memprof,但我不能在我的 Rails 应用程序中使用它。
编辑1:
我做了 Frederick Cheung 给出的建议,现在我让它运行了,但我不知道如何启动它并将数据写入 json 文件:S
如果有人可以帮助我解决这个问题,我将不胜感激。
谢谢。