比较缩放与 BenchmarkDotNet
Compare scaling with BenchmarkDotNet
我有一个方法需要迭代集合(准确地说是 DataRowCollection)。
当前的实现有点慢,所以我一直在试用更快的一个。我使用 BenchmarkDotNet 比较了具有相同参数的执行时间,如果集合足够大,它明显更快。
我怀疑如果馆藏相对较小,情况就不会如此。因此,我真的很想比较两者的缩放比例:在 1、10、100、1,000、10,000 个元素时哪个更快?
据我所知,BenchmarkDotNet 没有为此内置的工具。我想要的是向它传递对集合的引用,并让它执行具有不同大小或切片的方法。 (例如通过将其复制到不同大小的 ILists。)
这样的图表
[Params(1, 10, 100, 1000, 10000)]
public int Size { get; set; }
然后在测试中使用 Size
。它应该自动输出等。您还可以在任何预测试 [GlobalSetup]
方法中使用参数化值,例如预初始化 list/array 以便它不计入基准测试。
我有一个方法需要迭代集合(准确地说是 DataRowCollection)。
当前的实现有点慢,所以我一直在试用更快的一个。我使用 BenchmarkDotNet 比较了具有相同参数的执行时间,如果集合足够大,它明显更快。
我怀疑如果馆藏相对较小,情况就不会如此。因此,我真的很想比较两者的缩放比例:在 1、10、100、1,000、10,000 个元素时哪个更快?
据我所知,BenchmarkDotNet 没有为此内置的工具。我想要的是向它传递对集合的引用,并让它执行具有不同大小或切片的方法。 (例如通过将其复制到不同大小的 ILists。)
这样的图表[Params(1, 10, 100, 1000, 10000)]
public int Size { get; set; }
然后在测试中使用 Size
。它应该自动输出等。您还可以在任何预测试 [GlobalSetup]
方法中使用参数化值,例如预初始化 list/array 以便它不计入基准测试。