我试图获取Ruby Cucumber的详细GC信息,就像我可以用于JVM一样。
但我不知道该怎么办。
我看过GC.collections
,GC.dump
,但我不确定如何使用它们。
如果任何人遇到同样的问题,请通知我如何获得GC转储或GC统计数据或详细的GC进行黄瓜测试。
答案 0 :(得分:0)
观看Ruby的GC工作的最简单方法是使用GC::Profiler
。您可以通过在features / support / gc.rb中添加类似的东西来使用黄瓜:
Before do
GC::Profiler.enable
GC.start
end
After do
puts GC::Profiler.report
end
如果您需要更详细的信息,假设您正在使用MRI(C Ruby),您可以从GC.stat
获取垃圾收集统计信息。您可以在每个Cucumber场景之后打印来自GC.stat
的信息,方法是在features / support / gc.rb中添加类似的内容:
After do
puts "GC: total #{GC.stat[:count]}, major #{GC.stat[:minor_gc_count]}, minor #{GC.stat[:minor_gc_count]}"
end
不同版本的Ruby具有不同的垃圾收集,因此GC.stat
返回不同的信息。 The GC.stat
rdoc没有记录每个哈希键的含义。 A blog post by Sam Saffron文档GC.stat
Ruby 2.0的哈希键(并说this SO answer不准确)。 A blog post by Thorsten Ball文档GC.stat
Ruby 2.1的哈希键。