RecyclableArrayList.AddRange(IEnumerable<T>) performance improvements. ...WhenSourceIsIEnumerable benchmarks reworked to use real IEnumerable, which can't be typecasted to anything.
This commit is contained in:
1 parent
bf2d966f28
commit
f500f846ac
7 files changed
+121
-33
No files matched your search
@@ -19,6 +19,7 @@
|
||||
|
||||
private RecyclableArrayList<object>? _testObjectsAsRecyclableArrayList;
|
||||
protected RecyclableArrayList<object> TestObjectsAsRecyclableArrayList => _testObjectsAsRecyclableArrayList ??= TestObjects.ToRecyclableArrayList();
|
||||
protected IEnumerable<object> TestObjectsAsIEnumerable = Enumerable.Range(1, TestObjectCount).Select(static x => new object());
|
||||
|
||||
protected static void DoNothing<T>(T obj)
|
||||
{
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
}
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void Array_GetItem()
|
||||
{
|
||||
var data = TestObjects;
|
||||
@@ -36,14 +36,14 @@ namespace Recyclable.Collections.Benchmarks
|
||||
}
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void Array_Count()
|
||||
{
|
||||
var data = _testArray;
|
||||
DoNothing(data.Length);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void Array_LongCount()
|
||||
{
|
||||
var data = _testArray;
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
DoNothing(list);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void List_Add()
|
||||
{
|
||||
var data = TestObjects;
|
||||
@@ -39,7 +39,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
}
|
||||
}
|
||||
|
||||
[Benchmark(Baseline = false)]
|
||||
//[Benchmark(Baseline = false)]
|
||||
public void List_Add_WithCapacity()
|
||||
{
|
||||
var data = TestObjects;
|
||||
@@ -51,7 +51,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
}
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void List_AddRangeWhenSourceIsArray()
|
||||
{
|
||||
var data = TestObjects;
|
||||
@@ -59,7 +59,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
list.AddRange(data);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void List_AddRangeWhenSourceIsList()
|
||||
{
|
||||
var data = TestObjectsAsList;
|
||||
@@ -67,7 +67,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
list.AddRange(data);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void List_AddRangeWhenSourceIsIList()
|
||||
{
|
||||
var data = (IList<object>)TestObjectsAsList;
|
||||
@@ -78,12 +78,12 @@ namespace Recyclable.Collections.Benchmarks
|
||||
[Benchmark]
|
||||
public void List_AddRangeWhenSourceIsIEnumerable()
|
||||
{
|
||||
var data = (IEnumerable<object>)TestObjects;
|
||||
var data = TestObjectsAsIEnumerable;
|
||||
var list = new List<object>();
|
||||
list.AddRange(data);
|
||||
}
|
||||
|
||||
[Benchmark(Baseline = false)]
|
||||
//[Benchmark(Baseline = false)]
|
||||
public void List_AddRange_WithCapacity()
|
||||
{
|
||||
var data = TestObjects;
|
||||
@@ -92,7 +92,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
list.AddRange(data);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void List_SetItem()
|
||||
{
|
||||
var data = TestObjectsAsList;
|
||||
@@ -103,7 +103,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
}
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void List_GetItem()
|
||||
{
|
||||
var data = TestObjectsAsList;
|
||||
@@ -114,7 +114,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
}
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void List_Count()
|
||||
{
|
||||
var data = _testList;
|
||||
|
||||
+11
-11
@@ -44,7 +44,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
DoNothing(list);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void RecyclableArrayList_Add()
|
||||
{
|
||||
var data = TestObjects;
|
||||
@@ -56,7 +56,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
}
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void RecyclableArrayList_Add_WithCapacity()
|
||||
{
|
||||
var data = TestObjects;
|
||||
@@ -68,7 +68,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
}
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void RecyclableArrayList_AddRangeWhenSourceIsArray()
|
||||
{
|
||||
var data = TestObjects;
|
||||
@@ -76,7 +76,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
list.AddRange(data);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void RecyclableArrayList_AddRangeWhenSourceIsList()
|
||||
{
|
||||
var data = TestObjectsAsList;
|
||||
@@ -84,7 +84,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
list.AddRange(data);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void RecyclableArrayList_AddRangeWhenSourceIsIList()
|
||||
{
|
||||
var data = (IList<object>)TestObjectsAsList;
|
||||
@@ -95,12 +95,12 @@ namespace Recyclable.Collections.Benchmarks
|
||||
[Benchmark]
|
||||
public void RecyclableArrayList_AddRangeWhenSourceIsIEnumerable()
|
||||
{
|
||||
var data = (IEnumerable<object>)TestObjects;
|
||||
var data = TestObjectsAsIEnumerable;
|
||||
using var list = new RecyclableArrayList<object>();
|
||||
list.AddRange(data);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void RecyclableArrayList_AddRangeWhenSourceIsRecyclableArrayList()
|
||||
{
|
||||
var data = TestObjectsAsRecyclableArrayList;
|
||||
@@ -108,7 +108,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
list.AddRange(data);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void RecyclableArrayList_AddRange_WithCapacity()
|
||||
{
|
||||
var data = TestObjects;
|
||||
@@ -117,7 +117,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
list.AddRange(data);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void RecyclableArrayList_SetItem()
|
||||
{
|
||||
var data = TestObjectsAsRecyclableArrayList;
|
||||
@@ -128,7 +128,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
}
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void RecyclableArrayList_GetItem()
|
||||
{
|
||||
var data = TestObjectsAsRecyclableArrayList;
|
||||
@@ -139,7 +139,7 @@ namespace Recyclable.Collections.Benchmarks
|
||||
}
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void RecyclableArrayList_Count()
|
||||
{
|
||||
var data = _testRecyclableArrayList;
|
||||
|
||||
Reference in new issue
Block a user