运行Cucumber时如何监控垃圾回收?

时间:2014-06-27 05:15:39

标签: ruby garbage-collection automation cucumber ui-automation

我试图获取Ruby Cucumber的详细GC信息,就像我可以用于JVM一样。 但我不知道该怎么办。 我看过GC.collectionsGC.dump,但我不确定如何使用它们。 如果任何人遇到同样的问题,请通知我如何获得GC转储或GC统计数据或详细的GC进行黄瓜测试。

1 个答案:

答案 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的哈希键。