RecyclableList.Contains reworked for performance improvements. 69% vs List.Contains

This commit is contained in:
Marek Lemańczyk committed 2023-02-05 17:58:29 +01:00
1 parent 91abf1a614
commit 10ae744875
4 files changed
+245 -59

No files matched your search

@@ -111,5 +111,17 @@ namespace Recyclable.Collections.Benchmarks
var data = TestObjectsAsList;
DoNothing(data.Count);
}
[Benchmark(Baseline = true)]
public void List_Contains()
{
var data = TestObjects;
var list = TestObjectsAsList;
var dataCount = 100_000;
for (var i = 0; i < dataCount; i++)
{
DoNothing(list.Contains(data[i]));
}
}
}
}
@@ -4,21 +4,21 @@ namespace Recyclable.Collections.Benchmarks
{
public partial class RecyclableCollectionsBenchmarks : BenchmarkBase
{
[Benchmark]
//[Benchmark]
public void RecyclableList_Create()
{
using var list = new RecyclableList<object>();
DoNothing(list);
}
[Benchmark]
//[Benchmark]
public void RecyclableList_Create_WithCapacity()
{
using var list = new RecyclableList<object>(minBlockSize: 102_400, expectedItemsCount: TestObjectCount);
DoNothing(list);
}
[Benchmark]
//[Benchmark]
public void RecyclableList_Add()
{
var data = TestObjects;
@@ -30,7 +30,7 @@ namespace Recyclable.Collections.Benchmarks
}
}
[Benchmark]
//[Benchmark]
public void RecyclableList_Add_WithCapacity()
{
var data = TestObjects;
@@ -77,5 +77,17 @@ namespace Recyclable.Collections.Benchmarks
var data = _testRecyclableList;
DoNothing(data.LongCount);
}
[Benchmark]
public void RecyclableList_Contains()
{
var data = TestObjects;
var list = TestObjectsAsRecyclableList;
var dataCount = 100_000;
for (var i = 0; i < dataCount; i++)
{
DoNothing(list.Contains(data[i]));
}
}
}
}