Commit Graph
100 Commits
Author SHA1 Message Date
mlemanczyk ff4a4b6683 Fix to avoid exception when the target is smaller, if the no. of items on the list is smaller than capacity. 2023-07-15 17:41:27 +02:00
mlemanczyk 54b7320bcb Tiny cleanup. Unnecessary casting removed. 2023-07-15 17:38:31 +02:00
mlemanczyk 78b7f31aeb Benchmarks.md updated. 2023-07-15 17:13:10 +02:00
mlemanczyk 0b4ee0b39f Compilation error fixed. RecyclableDefaults.InitialCapacity added. 2023-07-15 17:12:33 +02:00
mlemanczyk 81f2c6d137 RecyclableList.AddRange fix to skip empty sources. 2023-07-15 16:44:51 +02:00
mlemanczyk 8242247436 RecyclableList.AddRange performance improvements. Local variable removed. 2023-07-15 16:42:33 +02:00
mlemanczyk 7909417a68 README.md updated 2023-07-15 16:30:49 +02:00
mlemanczyk f05d00e8d4 Tiny cleanup. Parameters renamed to be more descriptive. 2023-07-15 15:55:32 +02:00
mlemanczyk 17703618d4 Tiny performance improvements. Property replaced with field. 2023-07-15 15:52:44 +02:00
mlemanczyk ceffb90936 Small cleanup. RecyclableList.InitialCapacity moved to RecyclableDefaults. 2023-07-15 15:49:03 +02:00
mlemanczyk 1540d8e286 Fixed problem in RecyclableList.Helpers & RecyclableList causing an exception trying to copy too many items into the destination. 2023-07-15 15:45:09 +02:00
mlemanczyk 64002fc443 Recyclable.Collections.xxx_AddRange_WhenSameType fixed 2023-07-15 14:53:18 +02:00
mlemanczyk d03697e123 Array-based version for AddRange added to Recyclable.Collections benchmarks. 2023-07-15 14:49:54 +02:00
mlemanczyk 38f53fc8f3 Recyclable.Collections benchmarks adjusted to be closer to real use-cases. Initialization with predefined capacity removed. 2023-07-15 14:42:35 +02:00
mlemanczyk 484c46470c Benchmarks.md updated 2023-07-15 12:50:27 +02:00
mlemanczyk af669d59c2 Merge branch 'implement-array-clearing-for-needsclearing' of https://github.com/mlemanczyk/Recyclable.Collections into implement-array-clearing-for-needsclearing 2023-07-13 20:48:04 +02:00
mlemanczyk 2f35cc7089 Cleanup. Unnecessary files removed. 2023-07-13 20:47:53 +02:00
mlemanczyk 3041e6c1ee Cleanup. Unnecessary files removed. 2023-07-13 20:44:50 +02:00
mlemanczyk d3c77525df Benchmarks.md updated 2023-07-13 18:42:21 +02:00
mlemanczyk 1bc8f34436 RecyclableList.AddRange performance improvements. 2023-07-08 15:17:20 +02:00
mlemanczyk 93d4ddd9cb Initial RecyclableList.AddRange performance improvements. Before cleanup. 2023-07-08 14:54:24 +02:00
mlemanczyk 66a713016f Params values updated. 2023-07-08 14:53:24 +02:00
mlemanczyk a275c180a5 Tiny improvement. Added small protection against invalid state. 2023-07-08 14:51:49 +02:00
mlemanczyk b39b4d2f4a Benchmarks.md updated 2023-07-08 14:51:04 +02:00
mlemanczyk 571c394f4e Benchmark improvements & fixes to have 1:1 comparison. 2023-07-08 14:50:15 +02:00
mlemanczyk 4da13cd9c1 Initial OneSizeArrayPool performance improvements. 2023-07-08 14:45:24 +02:00
mlemanczyk 5ee70abf93 Small performance improvement to benefit from .Net optimization for faster calls. 2023-07-08 14:28:36 +02:00
mlemanczyk 3f11b3b384 Benchmarks.md updated 2023-07-05 19:48:01 +02:00
mlemanczyk f1d6b2e749 Benchmarks updated 2023-07-04 19:06:53 +02:00
mlemanczyk fe77863bba RecyclableList.ResizeAndCopy moved back to RecyclableListHelpers. 2023-07-03 01:57:12 +02:00
mlemanczyk b1bcd8ea03 MemoryBucket & OneSizeArrayPool made sealed for better performance. 2023-07-03 01:26:14 +02:00
mlemanczyk af8fef4e73 Merge branch 'implement-array-clearing-for-needsclearing' of https://github.com/mlemanczyk/Recyclable.Collections into implement-array-clearing-for-needsclearing 2023-07-01 17:07:27 +02:00
mlemanczyk c20b252a6c Cleanup. Hints and warnings either disabled or fixed. Typos fixed. 2023-07-01 17:07:16 +02:00
mlemanczyk a0eb38a405 Cleanup. Hints and warnings either disabled or fixed. Typos fixed. 2023-07-01 17:01:27 +02:00
mlemanczyk 2317f53d51 Cleanup. WhenParallelSearchBenchmarks.cs removed, because it wasn't comparing anything after code changes. 2023-07-01 16:53:43 +02:00
mlemanczyk 823141400a Tiny performance improvement based on RecyclableList<T> benchmarks. 2023-07-01 15:44:59 +02:00
mlemanczyk 391c72ee48 Cleanup. Comments & dead code removed. 2023-07-01 15:43:46 +02:00
mlemanczyk 845cf602dd Cleanup. const introduced for initial capacity. 2023-07-01 15:03:32 +02:00
mlemanczyk f23e9054e5 Cleanup. Commented out code removed. 2023-07-01 15:01:40 +02:00
mlemanczyk 748f206c39 Tiny cleanup. Unnecessary code removed. 2023-07-01 14:49:16 +02:00
mlemanczyk 9d9a8abd76 Cleanup. RecyclableLongList<T> static methods moved to RecyclableLongList<T>.Helpers. 2023-07-01 14:13:02 +02:00
mlemanczyk b81182876e Merge branch 'implement-array-clearing-for-needsclearing' of https://github.com/mlemanczyk/Recyclable.Collections into implement-array-clearing-for-needsclearing 2023-07-01 14:10:08 +02:00
mlemanczyk 8352575043 RecyclableLongList.Enumerator & .VersionedEnumerator will clear the current value only when it's reference type. Tiny cleanup. 2023-07-01 14:09:48 +02:00
mlemanczyk ec9733b976 RecyclableLongList.VersionedEnumerator will clear the current value only when it's reference type. Tiny cleanup. 2023-07-01 14:08:19 +02:00
mlemanczyk 55dd7ba078 RecyclableList.Capacity setter will now resize the array & update the version for enumerators. .Dispose will update the version to break enumerators. 2023-07-01 14:06:04 +02:00
mlemanczyk cded3ced65 RecyclableList destructor removed to improve performance. 2023-07-01 14:02:31 +02:00
mlemanczyk 224800d89a RecyclableList.Count & .LongCount made read-only 2023-07-01 13:59:59 +02:00
mlemanczyk e5c20a1aaa TODOs added 2023-07-01 13:54:44 +02:00
mlemanczyk e129e43863 Tiny cleanup. Comment updated. 2023-07-01 13:49:30 +02:00
mlemanczyk b9181eee23 RecyclableList.Resize performance improvements. We'll always initiate the list to 4 elements to eliminate branching along the way. Before cleanup. 2023-07-01 13:02:43 +02:00
mlemanczyk 11fd6e3dd0 RecyclableList<T>.Helpers renamed to RecyclableListHelpers and made top-level class for better performance. 2023-07-01 12:53:37 +02:00
mlemanczyk db8b0602c0 Benchmarks.md updated 2023-07-01 12:26:30 +02:00
mlemanczyk cec414ca0a New no. of items added to test cases. 2023-06-29 18:14:13 +02:00
mlemanczyk 5e89f6db2d Benchmarks for fixed size array creation added. 2023-06-29 18:10:56 +02:00
mlemanczyk 8940ba66f5 Constructor's benchmark results added 2023-06-29 17:34:26 +02:00
mlemanczyk 64fdf59f90 Benchmarks for empty array creation added. 2023-06-29 17:32:42 +02:00
mlemanczyk ba0d15cdcb Cleanup. RecyclableList static methods moved to RecyclableList.Helpers. 2023-06-29 13:35:12 +02:00
mlemanczyk c7e23f5f3c Tiny cleanup 2023-06-28 23:30:45 +02:00
mlemanczyk 54cb2b583d RecyclableCollectionsBenchmarks.GetTestMethod will now throw exception if the method couldn't be found in a given class. 2023-06-28 23:28:54 +02:00
mlemanczyk 3ca7d0ab7b Tiny cleanup 2023-06-28 23:27:01 +02:00
mlemanczyk 5d36a08138 Problem with running RecyclableCollectionsBenchmarks.Create fixed. Methods made static. 2023-06-28 23:25:06 +02:00
mlemanczyk 484cb07fcf README.md updated 2023-06-28 23:23:56 +02:00
mlemanczyk 76dd62a5e2 RecyclableList.Clear functionality copied to .Dispose for better performance. 2023-06-28 23:15:53 +02:00
mlemanczyk 5fea2b44e4 Small performance improvement to avoid assignments if the list is empty. 2023-06-28 22:56:41 +02:00
mlemanczyk deb95a571c Tiny cleanup 2023-06-28 22:54:12 +02:00
mlemanczyk ba4fbbee98 Tiny cleanup. RecyclableList._defaultIsNull moved to RecyclableList.IList 2023-06-28 22:50:35 +02:00
mlemanczyk 8a10c52ef9 Cleanup. Protected methods & properties made private, where possible. 2023-06-26 00:19:09 +02:00
mlemanczyk b1b96fd05c Tiny cleanup 2023-06-26 00:08:05 +02:00
mlemanczyk 4f7af026f7 Small performance improvements to avoid repeated clearing of the buffers. 2023-06-25 23:58:46 +02:00
mlemanczyk 6b3b30fc12 Compilation error fix 2023-06-25 23:27:08 +02:00
mlemanczyk 6362c343db Tiny cleanup 2023-06-25 21:01:41 +02:00
mlemanczyk 413d625d8e Tiny cleanup. Commented out code removed. 2023-06-25 20:56:49 +02:00
mlemanczyk f66b129f3a RecyclableList<T> marked as sealed. All protected entities made private. Future versions will provide a way to create your own, top performance collections. 2023-06-25 20:45:01 +02:00
mlemanczyk c3820a61d9 Code readability improvements - nullability checks disabled for memory blocks, to avoid hint suppression in code. 2023-06-25 20:36:46 +02:00
mlemanczyk 6ebc6ac6fb Cleanup - RecyclableList<T>.Helpers.Contains(), .CopyTo() & .Enumerate() methods marked as obsolete. 2023-06-25 20:29:49 +02:00
mlemanczyk 7b3e80efe1 RecyclableLongList<T>.RecyclableLongListHelpers renamed to RecyclableLongList<T>.Helpers - compilation fix. 2023-06-25 20:27:52 +02:00
mlemanczyk d465029358 RecyclableList<T>.RecyclableListHelpers renamed to RecyclableList<T>.Helpers 2023-06-25 20:16:30 +02:00
mlemanczyk 9afa16c9c3 RecyclableLongList<T>.RecyclableLongListHelpers renamed to RecyclableLongList<T>.Helpers 2023-06-25 20:11:53 +02:00
mlemanczyk 675f2d19a0 Tiny cleanup 2023-06-25 19:59:13 +02:00
mlemanczyk 86f5387b55 Tiny performance improvement until the stack is redesigned. 2023-06-25 19:50:39 +02:00
mlemanczyk fe544ed786 README.md updated 2023-06-25 03:50:09 +02:00
mlemanczyk 2784c94dc4 Benchmarks updated 2023-06-25 03:49:42 +02:00
mlemanczyk f3317bb9df Clarification comment added. 2023-06-25 03:43:35 +02:00
mlemanczyk ea16731188 README.md updated 2023-06-25 03:43:06 +02:00
mlemanczyk 7ec5ea844f Package version increased. 2023-06-25 03:42:35 +02:00
mlemanczyk 8ddda532bb Benchmarks.md added. 2023-06-25 03:42:05 +02:00
mlemanczyk 40c0ac0ab4 Package version increased. 2023-06-25 02:44:15 +02:00
mlemanczyk e57fa3d572 Pure attribute added, where applicable. 2023-06-25 02:25:32 +02:00
mlemanczyk 12f051c821 README.md updated. 2023-06-25 02:22:47 +02:00
mlemanczyk e65a7c2230 IVersionedList<T> & IVersionedLongList<T> renamed to IRecyclableVersionedList<T> & IRecyclableVersionedLongList<T>. README.md updated. 2023-06-25 01:08:06 +02:00
mlemanczyk f96d9b056a README.md updated 2023-06-25 00:21:35 +02:00
mlemanczyk 8a0b53743a Merge branch 'add-versioning' of https://github.com/mlemanczyk/Recyclable.Collections into add-versioning 2023-06-25 00:17:41 +02:00
mlemanczyk 273ef8a3b0 Cleanup 2023-06-25 00:17:33 +02:00
mlemanczyk 7e00c0cc0b Cleanup 2023-06-25 00:15:32 +02:00
mlemanczyk a7317f5230 Fixed missing call to GC.SuppressFinalize. 2023-06-25 00:14:37 +02:00
mlemanczyk aefd68d6c8 JonSkeet.MiscUtil package removed 2023-06-25 00:08:37 +02:00
mlemanczyk d830a53006 Versioned enumerator for RecyclableList implemented. Benchmarks & tests added. 2023-06-25 00:05:17 +02:00
mlemanczyk be746d65bf Merge branch 'add-versioning' of https://github.com/mlemanczyk/Recyclable.Collections into add-versioning 2023-06-25 00:04:49 +02:00
mlemanczyk 448656fd29 IVersionedLongList<T> interface & RecyclableLongList.GetVersionedEnumerator added for use with foreach. 2023-06-25 00:04:05 +02:00
mlemanczyk 9aab9e9f6f IVersionedLongList<T> interface & RecyclableLongList.GetVersionedEnumerator added for use with foreach. 2023-06-24 23:55:01 +02:00