mlemanczyk
7f90fcc969
Tiny cleanup & readability improvement
2023-01-29 21:32:04 +01:00
mlemanczyk
b24adc6d93
Unnecessary local var removed.
2023-01-29 21:31:25 +01:00
mlemanczyk
650a63828f
Unnecessary _capacity assignment removed. It's already set by RecyclableList.Clear.
2023-01-29 21:30:15 +01:00
mlemanczyk
d07c77c906
Unnecessary field initializer removed
2023-01-29 21:29:11 +01:00
mlemanczyk
4f920cf89a
RecyclableList.Count redirected to _longCount for better performance
2023-01-29 21:26:22 +01:00
mlemanczyk
71544f8a47
Finished RecyclableList implementation of array pool overriding.
2023-01-29 18:05:27 +01:00
mlemanczyk
ea29108731
Code cleanup - renaming blockSize => minBlockSize to better reflect the use.
2023-01-29 18:04:25 +01:00
mlemanczyk
b01dc63165
Too early typecasting fixed.
2023-01-29 14:50:00 +01:00
mlemanczyk
326999c682
Performance improvement - reuse local var
2023-01-29 14:48:30 +01:00
mlemanczyk
a3335bf4e7
IF's inverted to match expected most frequent scenarios.
2023-01-29 14:20:59 +01:00
mlemanczyk
6270f79291
Switches converted back to IFs. They are IF's in IL anyway.
2023-01-29 14:19:59 +01:00
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
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
06ef3d4fa4
Tiny cleanup
2023-01-28 23:19:26 +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
315acb5a68
Fixing condition for taking array from the pool
2023-01-28 15:02:50 +01:00
mlemanczyk
c72b18ad1d
Source code cleanup
2023-01-28 14:19:50 +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
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
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
f94e91c45d
RecyclableList.AddRange(IEnumerable) made similar in behavior / optimizations to RecyclableArrayList. Variables named made similar.
2023-01-22 23:16:21 +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
6ef79d2203
Solutions from RecyclableArreyList were copied to RecylableList. Initial version.
2023-01-21 18:50:21 +01:00
mlemanczyk
cc364c5fd7
Create benchmarks updated. Global benchmark setup & cleanup added.
2023-01-16 22:00:45 +01:00
mlemanczyk
880abd605e
RecyclableBlockList renamed to RecyclableArrayList for clarity. First set of optimizations and implementation.
2023-01-11 21:21:42 +01:00
mlemanczyk
8147c4ecbf
Decoded on GetItem/SetItem performance. It's more stable & faster without them.
2023-01-08 02:03:14 +01:00
mlemanczyk
93b8dc5317
Initial version of RecyclableBlockList implemented.
...
Tests switched to xUnit in hope to avoid stability issues.
2023-01-07 20:52:01 +01:00
mlemanczyk
aba28028b1
Performance & standardization improvements.
...
Business logic fixes.
RecyclableQueue & RecyclableStack added - pending improvements.
2023-01-06 13:54:32 +01:00
mlemanczyk
674aa00509
BlockUpdateEvent & UnblockUpdateEvent methods removed in favor for BeginUpdate & EndUpdate
2023-01-03 01:00:39 +01:00
mlemanczyk
fa3e78139e
RecyclableSortedList added
2023-01-03 00:42:58 +01:00
mlemanczyk
6a58917120
First implementation
2023-01-02 01:32:29 +01:00