【发布时间】:2023-04-10 23:04:01
【问题描述】:
我有一个如下基准:
benchmark_result = Benchmark.bm do |x|
x.report { send(test_name) }
end
当我运行它时,我看到了来自两个地方的输出:
-
report块中的send(test_name)。我想继续看到这个输出。 - 基准块的输出,即生成的基准报告打印到控制台。我不希望这种情况发生。
我从here 看到了如何临时隐藏控制台输出。但问题是我希望内部块继续打印其输出。我只是不想看到基准测试结果。
【问题讨论】:
-
您想查看方法调用的输出但不显示基准输出?我不知道你为什么要对某些东西进行基准测试然后扔掉结果。
-
我正在制作一个“基准缓存”系统,这样当我请求一个方法的基准时,我不必再次实际运行该方法。这专门针对长时间运行的方法,我承认结果不会完全准确。人们在我最近发布的问题here 中多次告诉我这一点。基本上,每当我运行测试用例时,我都会存储基准,稍后会显示。
-
一个有趣的项目,感谢您的解释。我认为 AmitA 的方法是最好的,您可以捕获结果并以某种方式保存它们以供以后使用。实际上,您可以将它们放在一些小型数据库中,例如 SQLite,以便在必要时更好地组织它们。
标签: ruby benchmarking