为什么这个片段中的pretty_print不能用于分析Rails应用程序内存?

时间:2016-11-23 21:05:38

标签: ruby-on-rails ruby

所以我在Railer Performance书中跟进,它告诉我在environment.rb中制作以下代码片段:

MemoryProfiler.report do
  # Load the Rails application.
  require File.expand_path('../application', __FILE__)

  # Initialize the Rails application.
  Rails.application.initialize!

end.pretty_print(to_file: "test.txt")

然后我应该运行rails runner "puts 'hello world'"

但是当我这样做时,我得到了:

/Users/samantha/.rbenv/versions/2.3.1/lib/ruby/2.3.0/pp.rb:316:in `pretty_print': undefined method `text' for {:to_file=>"test.txt"}:Hash (NoMethodError)
Did you mean?  test

pretty_print是我应该安装的红宝石吗?

1 个答案:

答案 0 :(得分:0)

我认为您的MemoryProfiler.report do ... end块返回nil(我不知道为什么会发生)。

存在报告后,它将在pretty_print的实例上执行MemoryProfiler的MemoryProfiler::Results方法。

当报告为nil时,它将在pretty_print的实例上执行Ruby的NilClass方法。