Commit Graph
78 Commits
Author SHA1 Message Date
mlemanczyk 16acdff58a Code readability - newArraySpan renamed => newMemoryBlocksSpan to match naming convention 2023-01-29 14:13:31 +01:00
mlemanczyk a9012dc25d Tiny cleanup. Declaration moved closer to usage. 2023-01-29 14:09:41 +01:00
mlemanczyk 96f4912cd3 Unnecessary case removed. 2023-01-29 14:07:34 +01:00
mlemanczyk 604ee06697 Merge branch 'recyclable-block-list-added' of https://github.com/mlemanczyk/Recyclable.Collections into recyclable-block-list-added 2023-01-28 23:54:55 +01:00
mlemanczyk 1b3c24bf74 Performance improvement - removed unneeded case. We never hit it in our benchmarks or tests. We'll use Memory<T> instead of Span<T> again, where applicable. 2023-01-28 23:54:53 +01:00
mlemanczyk 8b7c4407d5 Performance improvement - removed unneeded case. We never hit it in our benchmarks or tests. 2023-01-28 23:48:28 +01:00
mlemanczyk 06ef3d4fa4 Tiny cleanup 2023-01-28 23:19:26 +01:00
mlemanczyk ea1d7d91ba Solutions from RecyclableList.SetNewLength migrated to RecyclableList.SetNewLength. 2023-01-28 23:17:30 +01:00
mlemanczyk 3cfe0b7e79 We'll now use Span<T> instead of memory to eliminate 1 more local var. 2023-01-28 23:04:55 +01:00
mlemanczyk 3d6536beea RecyclableList.Add marked for aggressive inlining for the best performance 2023-01-28 22:49:10 +01:00
mlemanczyk 6da67ede0d RecyclableArrayList.Add marked for aggresive inlining for the best performance. 2023-01-28 22:40:48 +01:00
mlemanczyk 315acb5a68 Fixing condition for taking array from the pool 2023-01-28 15:02:50 +01:00
mlemanczyk 3ce5c52d54 Adjusting default block size to what .Net currently returns to avoid sub-optimal execution paths. 2023-01-28 14:32:19 +01:00
mlemanczyk 41c9eccd81 Adjusting const to ^2 2023-01-28 14:28:51 +01:00
mlemanczyk d545d31aea Merge branch 'recyclable-block-list-added' of https://github.com/mlemanczyk/Recyclable.Collections into recyclable-block-list-added 2023-01-28 14:19:56 +01:00
mlemanczyk c72b18ad1d Source code cleanup 2023-01-28 14:19:50 +01:00
mlemanczyk 10717c4bd4 Source code cleanup 2023-01-28 14:19:31 +01:00
mlemanczyk 680776f259 Performance improvement - Removing unneeded check. There is no case the new block count == current block count. 2023-01-28 14:18:34 +01:00
mlemanczyk 35ccb12efc Performance improvements 2023-01-28 14:05:30 +01:00
mlemanczyk b9b4c40cf9 Performance improvement. Removing unnecessary var. 2023-01-27 23:48:56 +01:00
mlemanczyk d4440134c8 ref removed. I seem to get better & more stable benchmarks without it. 2023-01-27 23:32:28 +01:00
mlemanczyk 4fcf3f2362 public MemoryBlocks property added to allow more efficient use. 2023-01-27 22:33:14 +01:00
mlemanczyk c283cb562c Read.me extended & updated. 2023-01-27 22:31:42 +01:00
mlemanczyk f9b2d82629 RecyclableList.Clear, .RemoveAt, .RemoveBlock, .SetNewLength, Dispose performance improvements. 2023-01-25 22:48:37 +01:00
mlemanczyk 032908bc7d _lastBlockIndex & _lastItemIndex fields added for performance gain. Tiny cleanup. 2023-01-24 22:41:43 +01:00
mlemanczyk 9db490d8e9 Fixed problem with RecyclableList.RemoveAt returning to the pool always the same block 2023-01-24 02:10:26 +01:00
mlemanczyk 43c2c6f13a if converted to switch for performance improvements. 2023-01-23 01:40:11 +01:00
mlemanczyk f45b6aac98 RecyclableList performance optimizations. 2023-01-23 01:22:41 +01:00
mlemanczyk 30dfd97336 ReleaseBlock method removed. 2023-01-23 00:16:02 +01:00
mlemanczyk 64be78d1c6 Benchmark list updated for current runs. 2023-01-23 00:15:25 +01:00
mlemanczyk cbac777e43 Using cleanup 2023-01-22 23:46:20 +01:00
mlemanczyk 1691f07fbe RecyclableList.AddRange will only call EnsureCapacity, if there is a need for it. Small source code cleanup. 2023-01-22 23:45:54 +01:00
mlemanczyk 7aec77e674 Recyclable list initializations fixed to pass the no. of items, not block size. 2023-01-22 23:17:02 +01:00
mlemanczyk f94e91c45d RecyclableList.AddRange(IEnumerable) made similar in behavior / optimizations to RecyclableArrayList. Variables named made similar. 2023-01-22 23:16:21 +01:00
mlemanczyk 7c78b6f87e RecyclableArrayList variables names standardized a little with RecyclableList. 2023-01-22 23:13:00 +01:00
mlemanczyk 576ac9ccfa RecyclableList.RemoveBlock renamed to ReleaseBlock.
RecyclableList.Clear will no longer create new arrays. It will only release the array to the pool & decrease capacity.

Fixed possibly infinite loop in Clear.
2023-01-22 01:06:21 +01:00
mlemanczyk b3380b1f35 Small cleanup. RecyclableCollectionsBenchmarks properties & fields moved to RecyclableCollectionsBenchmark.cs file. 2023-01-21 20:02:00 +01:00
mlemanczyk 6ef79d2203 Solutions from RecyclableArreyList were copied to RecylableList. Initial version. 2023-01-21 18:50:21 +01:00
mlemanczyk 0c3847a9bf Fixing startup issue 2023-01-16 22:58:12 +01:00
mlemanczyk f3198a45a4 Smaller improvements and additional benchmarks setup 2023-01-16 22:56:13 +01:00
mlemanczyk bc4f0576de RecyclableArrayList parameterless constructor benchmarks added 2023-01-16 22:55:47 +01:00
mlemanczyk 4d1c59f672 Redundand benchmarks removed. 2023-01-16 22:03:40 +01:00
mlemanczyk cc364c5fd7 Create benchmarks updated. Global benchmark setup & cleanup added. 2023-01-16 22:00:45 +01:00
mlemanczyk 4bfb40007a Missing IList<T> interface added. Tiny cleanup. 2023-01-15 20:19:01 +01:00
mlemanczyk 8067bfb542 Tiny cleanup 2023-01-15 20:13:49 +01:00
mlemanczyk f500f846ac RecyclableArrayList.AddRange(IEnumerable<T>) performance improvements. ...WhenSourceIsIEnumerable benchmarks reworked to use real IEnumerable, which can't be typecasted to anything. 2023-01-15 20:12:52 +01:00
mlemanczyk bf2d966f28 RecyclableArrayList[int index] set performance improvement. Add marked for aggresive inlining. 2023-01-15 17:49:18 +01:00
mlemanczyk 63773415e7 Merge branch 'recyclable-block-list-added' of https://github.com/mlemanczyk/Recyclable.Collections into recyclable-block-list-added 2023-01-15 12:24:05 +01:00
mlemanczyk c48b4e2f56 Additional, optimized constructors & AddRange variants added to RecyclableArrayList. Benchmarks extended. 2023-01-15 12:24:00 +01:00
mlemanczyk 8984a3fac0 Additional, optimized constructors & AddRange variants added to RecyclableArrayList. Benchmarks extended. 2023-01-15 12:23:46 +01:00