我一直在尝试让ruby-prof在Mac的Ruby1.8.7中解决内存使用问题,但到目前为止我的运气还不是很好。
我从文档中了解到RubyProf::MEMORY模式requires a patched version of Ruby。我尝试过通过RVM安装GC补丁版本(我发现在the Rails documentation中引用了它):
rvm reinstall 1.8.7 --patch ruby187gc根据这个命令的输出,一切看起来都很好。我在控制台输出中清楚地看到了“正在应用补丁'ruby187gc'”。
问题似乎是在尝试使用RVM gemset时出现的。我编写了以下脚本来测试这一点:
require "ruby-prof"
RubyProf.measure_mode = RubyProf::MEMORY
results = RubyProf.profile do
# code to measure
end
File.open(File.join(File.dirname(__FILE__), "profile-graph.html"), "w") do |file|
RubyProf::GraphHtmlPrinter.new(results).print(file)
end当我在这个脚本之前使用rvm use 1.8.7 --patch ruby187gc时,它会创建文件“profile-raph.html”,显示脚本中所有不同方法调用的内存使用情况,正如我所期望的那样。然而,当我尝试像rvm use 1.8.7@gemset_name --patch ruby187gc这样的东西时,输出文件包含所有的"nan“值。
怎么回事?将Ruby的补丁版本与RVM gemset一起使用有什么特殊的技巧吗?问题出在别的地方吗?我正在祈祷,希望之前有人遇到了非常类似的问题,并解决了这个问题。
发布于 2012-11-22 03:19:27
啊,我把事情搞得太复杂了。原来我只需要对ruby-prof gem进行uninstall and reinstall (在给Ruby打补丁之后)。
https://stackoverflow.com/questions/13499964
复制相似问题