RecyclableCollections.IndexOf benchmarks for all items reworked to search from the end, so that we measure the worst cases first.

This commit is contained in:
mlemanczyk committed 2023-05-13 20:39:16 +02:00
1 parent 53d759586e
commit d522535da5
1 file changed
+20 -18
@@ -2,14 +2,16 @@
{ {
public partial class RecyclableCollectionsBenchmarks public partial class RecyclableCollectionsBenchmarks
{ {
private const long MaxItemsToSearchFor = RecyclableDefaults.MinItemsCountForParallelization * 3;
public void Array_IndexOf_AllItems() public void Array_IndexOf_AllItems()
{ {
var data = TestObjects; var data = TestObjects;
var list = TestObjects; var list = TestObjects;
var dataCount = TestObjectCount; var dataCount = Math.Min(TestObjectCount, MaxItemsToSearchFor);
for (var i = 0; i < dataCount; i++) for (var i = 1; i <= dataCount; i++)
{ {
DoNothing(Array.IndexOf(list, data[i])); DoNothing(Array.IndexOf(list, data[^i]));
} }
} }
@@ -17,10 +19,10 @@
{ {
var data = TestObjects; var data = TestObjects;
var list = TestObjectsAsList; var list = TestObjectsAsList;
var dataCount = TestObjectCount; var dataCount = Math.Min(TestObjectCount, MaxItemsToSearchFor);
for (var i = 0; i < dataCount; i++) for (var i = 1; i <= dataCount; i++)
{ {
DoNothing(list.IndexOf(data[i])); DoNothing(list.IndexOf(data[^i]));
} }
} }
@@ -28,10 +30,10 @@
{ {
var data = TestObjects; var data = TestObjects;
var list = TestObjectsAsPooledList; var list = TestObjectsAsPooledList;
var dataCount = TestObjectCount; var dataCount = Math.Min(TestObjectCount, MaxItemsToSearchFor);
for (var i = 0; i < dataCount; i++) for (var i = 1; i <= dataCount; i++)
{ {
DoNothing(list.IndexOf(data[i])); DoNothing(list.IndexOf(data[^i]));
} }
} }
@@ -39,10 +41,10 @@
{ {
var data = TestObjects; var data = TestObjects;
var list = TestObjectsAsRecyclableArrayList; var list = TestObjectsAsRecyclableArrayList;
var dataCount = TestObjectCount; var dataCount = Math.Min(TestObjectCount, MaxItemsToSearchFor);
for (var i = 0; i < dataCount; i++) for (var i = 1; i <= dataCount; i++)
{ {
DoNothing(list.IndexOf(data[i])); DoNothing(list.IndexOf(data[^i]));
} }
} }
@@ -50,10 +52,10 @@
{ {
var data = TestObjects; var data = TestObjects;
var list = TestObjectsAsRecyclableList; var list = TestObjectsAsRecyclableList;
var dataCount = TestObjectCount; var dataCount = Math.Min(TestObjectCount, MaxItemsToSearchFor);
for (var i = 0; i < dataCount; i++) for (var i = 1; i <= dataCount; i++)
{ {
DoNothing(list.IndexOf(data[i])); DoNothing(list.IndexOf(data[^i]));
} }
} }
@@ -61,10 +63,10 @@
{ {
var data = TestObjects; var data = TestObjects;
var list = TestObjectsAsRecyclableList; var list = TestObjectsAsRecyclableList;
var dataCount = TestObjectCount; var dataCount = Math.Min(TestObjectCount, MaxItemsToSearchFor);
for (var i = 0; i < dataCount; i++) for (var i = 1; i <= dataCount; i++)
{ {
DoNothing(list.LongIndexOf(data[i])); DoNothing(list.LongIndexOf(data[^i]));
} }
} }
} }