From d03697e12398b07f087ac5a76b5a468084dfa39f Mon Sep 17 00:00:00 2001 From: mlemanczyk Date: Sat, 15 Jul 2023 14:49:54 +0200 Subject: [PATCH] Array-based version for AddRange added to Recyclable.Collections benchmarks. --- .../Benchmarks/AddRangeWhenSourceIsArray.cs | 7 +++++++ .../Benchmarks/AddRangeWhenSourceIsIEnumerable.cs | 12 ++++++++++++ .../Benchmarks/AddRange_WithCapacity.cs | 8 ++++++++ 3 files changed, 27 insertions(+) diff --git a/Recyclable.Collections.Benchmarks/Benchmarks/AddRangeWhenSourceIsArray.cs b/Recyclable.Collections.Benchmarks/Benchmarks/AddRangeWhenSourceIsArray.cs index 63cf3b2..823f861 100644 --- a/Recyclable.Collections.Benchmarks/Benchmarks/AddRangeWhenSourceIsArray.cs +++ b/Recyclable.Collections.Benchmarks/Benchmarks/AddRangeWhenSourceIsArray.cs @@ -4,6 +4,13 @@ namespace Recyclable.Collections.Benchmarks { public partial class RecyclableCollectionsBenchmarks { + public void Array_AddRangeWhenSourceIsArray() + { + var data = TestObjects; + var list = new long[TestObjectCount]; + data.CopyTo(list, 0); + } + public void List_AddRangeWhenSourceIsArray() { var data = TestObjects; diff --git a/Recyclable.Collections.Benchmarks/Benchmarks/AddRangeWhenSourceIsIEnumerable.cs b/Recyclable.Collections.Benchmarks/Benchmarks/AddRangeWhenSourceIsIEnumerable.cs index 804f29a..da5d00c 100644 --- a/Recyclable.Collections.Benchmarks/Benchmarks/AddRangeWhenSourceIsIEnumerable.cs +++ b/Recyclable.Collections.Benchmarks/Benchmarks/AddRangeWhenSourceIsIEnumerable.cs @@ -4,6 +4,18 @@ namespace Recyclable.Collections.Benchmarks { public partial class RecyclableCollectionsBenchmarks { + public void Array_AddRangeWhenSourceIsIEnumerable() + { + var data = TestObjectsAsIEnumerable; + var list = new long[TestObjectCount]; + int itemIndex = 0; + + foreach (var item in data) + { + list[itemIndex++] = item; + } + } + public void List_AddRangeWhenSourceIsIEnumerable() { var data = TestObjectsAsIEnumerable; diff --git a/Recyclable.Collections.Benchmarks/Benchmarks/AddRange_WithCapacity.cs b/Recyclable.Collections.Benchmarks/Benchmarks/AddRange_WithCapacity.cs index 8616914..f57d883 100644 --- a/Recyclable.Collections.Benchmarks/Benchmarks/AddRange_WithCapacity.cs +++ b/Recyclable.Collections.Benchmarks/Benchmarks/AddRange_WithCapacity.cs @@ -4,6 +4,14 @@ namespace Recyclable.Collections.Benchmarks { public partial class RecyclableCollectionsBenchmarks { + public void Array_AddRange_WithCapacity() + { + var data = TestObjects; + var dataCount = TestObjectCount; + var list = new long[dataCount]; + data.CopyTo(list, 0); + } + public void List_AddRange_WithCapacity() { var data = TestObjects;