1

我有一个需要迭代集合的方法(准确地说是 DataRowCollection)。

当前的实现有点慢,所以我一直在尝试更快的实现。我使用 BenchmarkDotNet 将执行时间与相同的参数进行比较,如果集合足够大,它明显更快。

我的怀疑是,如果集合相对较小,情况就不会如此。因此,我真的很想比较两者的规模:在 1、10、100、1,000、10,000 个元素时哪个更快?

据我所知,BenchmarkDotNet 没有为此提供内置工具。我想要将一个对集合的引用传递给它,并让它执行具有不同大小或切片的方法。(例如通过将其复制到不同大小的 IList 中。)

基本上,以http://ridiculousfish.com/blog/posts/array.html上的图表结束

4

1 回答 1

2
[Params(1, 10, 100, 1000, 10000)]
public int Size { get; set; }

然后Size在您的测试中使用。它应该自动输出等。您还可以在任何预测试[GlobalSetup]方法中使用参数化值,例如预初始化列表/数组,使其不计入基准测试。

于 2019-08-01T07:44:19.663 回答