1

我一直在尝试让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 有什么特别的技巧吗?问题出在其他地方吗?我正在祈祷,希望有人遇到过非常相似的问题并且之前已经解决了这个问题。

4

1 回答 1

3

啊,我把事情复杂化了。原来我只需要卸载并重新安装ruby​​-prof gem(在修补 Ruby 之后)。

于 2012-11-21T19:19:27.397 回答