我一直在尝试让ruby-prof在带有 Ruby 1.8.7 的 Mac OS X 上为内存使用工作,但到目前为止我运气不佳。
我从文档中了解到该RubyProf::MEMORY
模式需要修补版本的 Ruby。我尝试通过 RVM安装 GC 补丁版本(我在Rails 文档中找到了引用):
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-graph.html”,显示脚本中所有不同方法调用的内存使用情况,正如我所期望的那样。但是,当我尝试类似 时rvm use 1.8.7@gemset_name --patch ruby187gc
,输出文件包含所有“nan”值。
是什么赋予了?使用修补版本的 Ruby 和 RVM gemset 有什么特别的技巧吗?问题出在其他地方吗?我正在祈祷,希望有人遇到过非常相似的问题并且之前已经解决了这个问题。