Skip to content

Commit 98cc300

Browse files
committed
Updated benchmarks
1 parent 89764c0 commit 98cc300

File tree

1 file changed

+33
-15
lines changed

1 file changed

+33
-15
lines changed

FrozenSetBenchmark/Program.cs

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,60 @@
11
using System.Collections.Frozen;
2+
using System.Collections.Immutable;
23
using BenchmarkDotNet.Attributes;
34
using BenchmarkDotNet.Running;
45

5-
BenchmarkRunner.Run<Benchi>();
6+
BenchmarkSwitcher.FromAssembly(typeof(LookupBenchmark).Assembly).Run();
67

7-
public class Benchi
8+
public class LookupBenchmark
89
{
9-
private const int OneHundred = 100;
10-
private readonly List<int> oneToHundredList = Enumerable.Range(0, OneHundred).ToList();
11-
private readonly FrozenSet<int> oneToHundredFrozen = Enumerable.Range(0, OneHundred).ToFrozenSet();
12-
private readonly HashSet<int> oneToHundredHashSet = Enumerable.Range(0, OneHundred).ToHashSet();
13-
private readonly HashSet<int> oneToHundredImmutableHashSet= Enumerable.Range(0, OneHundred).ToHashSet();
10+
private const int Iterations = 1000;
11+
private readonly List<int> list = Enumerable.Range(0, Iterations).ToList();
12+
private readonly FrozenSet<int> frozenSet = Enumerable.Range(0, Iterations).ToFrozenSet();
13+
private readonly HashSet<int> hashSet = Enumerable.Range(0, Iterations).ToHashSet();
14+
private readonly ImmutableHashSet<int> immutableHashSet= Enumerable.Range(0, Iterations).ToImmutableHashSet();
1415

1516
[Benchmark(Baseline = true)]
1617
public void LookupList()
1718
{
18-
for (var i = 0; i < OneHundred; i++)
19-
_ = oneToHundredList.Contains(i);
19+
for (var i = 0; i < Iterations; i++)
20+
_ = list.Contains(i);
2021
}
2122

2223
[Benchmark]
2324
public void LookupFrozen()
2425
{
25-
for (var i = 0; i < OneHundred; i++)
26-
_ = oneToHundredFrozen.Contains(i);
26+
for (var i = 0; i < Iterations; i++)
27+
_ = frozenSet.Contains(i);
2728
}
2829

2930
[Benchmark]
3031
public void LookupHashSet()
3132
{
32-
for (var i = 0; i < OneHundred; i++)
33-
_ = oneToHundredHashSet.Contains(i);
33+
for (var i = 0; i < Iterations; i++)
34+
_ = hashSet.Contains(i);
3435
}
3536

3637
[Benchmark]
3738
public void LookupImmutableHashSet()
3839
{
39-
for (var i = 0; i < OneHundred; i++)
40-
_ = oneToHundredImmutableHashSet.Contains(i);
40+
for (var i = 0; i < Iterations; i++)
41+
_ = immutableHashSet.Contains(i);
4142
}
43+
}
44+
45+
public class CreateBenchmark
46+
{
47+
private readonly int[] from = Enumerable.Range(0, 1000).ToArray();
48+
49+
[Benchmark(Baseline = true)]
50+
public List<int> CreateList() => from.ToList();
51+
52+
[Benchmark]
53+
public FrozenSet<int> CreateFrozenList() => from.ToFrozenSet();
54+
55+
[Benchmark]
56+
public HashSet<int> CreateHashSet() => from.ToHashSet();
57+
58+
[Benchmark]
59+
public ImmutableHashSet<int> CreateImmutableHashSet() => from.ToImmutableHashSet();
4260
}

0 commit comments

Comments
 (0)