0
什么是DRYest基准测试方法,使用ruby Benchmark stdlib或相当的宝石对几个矩阵进行基准测试?举例来说,如果我是标杆一些SQL,我可能会想尝试的套表的大小,各种查询,查询的数量等的所有组合针对多个矩阵的红宝石基准测试
什么是DRYest基准测试方法,使用ruby Benchmark stdlib或相当的宝石对几个矩阵进行基准测试?举例来说,如果我是标杆一些SQL,我可能会想尝试的套表的大小,各种查询,查询的数量等的所有组合针对多个矩阵的红宝石基准测试
require 'benchmark'
table_sizes = [100, 1000]
queries = ["QUERY1", "QUERY2"]
num_queries = [1, 2, 3]
combis = table_sizes.product(queries, num_queries)
Benchmark.bm(20) do |x|
combis.each do |combi| # or |size,query,num| and use those
x.report(combi.inspect){ sleep rand } #do something with combi
end
end
输出:
user system total real
[100, "QUERY1", 1] 0.000000 0.000000 0.000000 ( 0.524222)
[100, "QUERY1", 2] 0.000000 0.000000 0.000000 ( 0.075334)
[100, "QUERY1", 3] 0.000000 0.000000 0.000000 ( 0.041683)
[100, "QUERY2", 1] 0.000000 0.000000 0.000000 ( 0.227865)
[100, "QUERY2", 2] 0.000000 0.000000 0.000000 ( 0.558131)
[100, "QUERY2", 3] 0.000000 0.000000 0.000000 ( 0.284121)
[1000, "QUERY1", 1] 0.000000 0.000000 0.000000 ( 0.496799)
[1000, "QUERY1", 2] 0.000000 0.000000 0.000000 ( 0.304552)
[1000, "QUERY1", 3] 0.000000 0.000000 0.000000 ( 0.918314)
[1000, "QUERY2", 1] 0.000000 0.000000 0.000000 ( 0.332485)
[1000, "QUERY2", 2] 0.000000 0.000000 0.000000 ( 0.379680)
[1000, "QUERY2", 3] 0.000000 0.000000 0.000000 ( 0.804835)
虽然你的' inspect'是显示'product'结果的好方法,您可能想要证明您可以将'each'的块参数中的'combi'数组解析为明确的'size,query,num'变量。 – Phrogz
这很棒!比我使用的嵌套循环更好:) – bloudermilk