Commit Graph
260 Commits
Author SHA1 Message Date
mlemanczyk 4500484831 RecyclableArrayList.IndexOf performance improvements. 2023-04-01 13:54:53 +02:00
mlemanczyk d79dc4fb86 Tiny cleanup 2023-03-30 20:29:36 +02:00
mlemanczyk 83f5b2ddc1 All benchmarks enabled by default 2023-03-30 19:45:49 +02:00
mlemanczyk a2694a0b87 Benchmark results added. 2023-03-30 19:39:34 +02:00
mlemanczyk 07f1ee6880 Benchmarks for Collections.Pooled added 2023-03-30 19:36:03 +02:00
mlemanczyk d1e0482693 RecyclableList.SetNewLength renamed to RecyclableList.Resize & performance improved. 2023-03-30 19:33:55 +02:00
mlemanczyk 8c0d3c5fbc Responsibility for rounding RecyclableList.minBlockSize up to the closest & highest power of 2 moved to .SetNewLength. 2023-03-27 01:53:09 +02:00
mlemanczyk 1f86ef2c59 MathUtils.IsPow2 & MathUtils.GetPow2Shift performance improvements. 2023-03-27 01:12:39 +02:00
mlemanczyk b33904a17f RecyclableList.BlockSize enforced to be the power of 2 2023-03-27 01:10:54 +02:00
mlemanczyk 3f986c75a2 Additional benchmarks added to compare iterations over RecyclableList. 2023-03-27 00:00:42 +02:00
mlemanczyk 0cc9f6b84a Modulo benchmarks added. 2023-03-26 23:57:23 +02:00
mlemanczyk bd04f10931 Tiny cleanup 2023-03-26 23:40:13 +02:00
mlemanczyk 858964edbc MathUtils added 2023-03-26 23:38:21 +02:00
mlemanczyk ef285bdc67 Historical versions removed. 2023-03-26 23:37:26 +02:00
mlemanczyk 9aac3e0224 RecyclableList[int] & RecyclableList[long] performance improvements. We'll now require the block size to be the power of 2. Includes historical versions. 2023-03-26 23:35:08 +02:00
mlemanczyk c7052e778f RecyclableList.SetNewLength fixed to properly initialize the list if the no. of memory blocks from array pool exceeds requested no. 2023-03-26 23:22:32 +02:00
mlemanczyk f231f7e0aa RecyclableList.LastBlockIndex renamed to RecyclableList.NextItemBlockIndex. 2023-03-26 23:16:34 +02:00
mlemanczyk 17787b2cb1 Benchmark results moved to Recyclable.Collections.Benchmarks to keep the package clean. 2023-03-24 21:02:45 +01:00
mlemanczyk b815767d8f RecyclableArrayList & RecyclableList tests synced. 2023-03-24 20:53:54 +01:00
mlemanczyk 76598dcc7d Cleanup 2023-03-24 20:14:29 +01:00
mlemanczyk 00b059006d Compilation error fix. 2023-03-24 20:13:40 +01:00
mlemanczyk 98026f0103 No. of test cases reduced due to high execution times. 2023-03-24 20:10:49 +01:00
mlemanczyk a5a4129f1c Resolved problem with running tests all together. 2023-03-24 20:04:16 +01:00
mlemanczyk e4e63715c2 Added missing "using" 2023-03-24 19:06:01 +01:00
mlemanczyk 31e3099bf4 Removed unnecessary arguments. We'll try to get enumerated count later in AddRange anyway. 2023-03-24 19:04:34 +01:00
mlemanczyk ea52b32859 Fixed memory leak in RecyclableList.AddRangeEnumerated 2023-03-24 19:03:46 +01:00
mlemanczyk 6fc2a10e28 RecyclableArrayList fixes to always stay within the no. of items on the list, not the size of memory block. 2023-03-24 19:02:45 +01:00
mlemanczyk 97d5d9c6a3 RecyclableArrayList.Contains fixed to respect empty list. 2023-03-22 01:22:01 +01:00
mlemanczyk 5a39dc87f0 Tests ordered alphabetically. 2023-03-22 00:25:16 +01:00
mlemanczyk c84cf263ca Missing using added to limit pressure on garbage collector.
RecyclableArrayList.Remove tests extended to cover more cases.

Tiny cleanup.
2023-03-22 00:07:24 +01:00
mlemanczyk 62b2a2d105 Merge branch 'recyclable-block-list-added' of https://github.com/mlemanczyk/Recyclable.Collections into recyclable-block-list-added 2023-03-22 00:04:28 +01:00
mlemanczyk 0f7237e3f0 Added rented array clearing if T is a reference type, as discussed in https://github.com/dotnet/runtime/issues/25378. 2023-03-22 00:04:25 +01:00
mlemanczyk 4a1f2c1ffb Added rented array clearing if T is a reference type, as discussed in https://github.com/dotnet/runtime/issues/25378. 2023-03-22 00:00:41 +01:00
mlemanczyk d4af246a3a Added missing Array.IndexOf parameter 2023-03-21 23:14:34 +01:00
mlemanczyk cda1c2b77d Merge branch 'recyclable-block-list-added' of https://github.com/mlemanczyk/Recyclable.Collections into recyclable-block-list-added 2023-03-20 23:51:30 +01:00
mlemanczyk 277e52f701 RecyclableArrayList.Contains fixed to not throw exception when the list is empty.
RecyclableArrayList tests sorted alphabetically, simplified & extended to use the test data & validate various combinations of item counts & block sizes.
2023-03-20 23:51:23 +01:00
mlemanczyk b91c4476eb RecyclableList.BlockCount renamed => RecyclableList.ReservedBlockCount. Fixed to always include the last block.
RecyclableList.LastTakenBlockIndex property added for some scenarios.

RecyclableList.IndexOf & .LongIndexOf fixed to use the correct index.

RecyclableArrayList.AddRange(RecyclableList<T> items) fixed to use the correct index.

Some test cases excluded, where needed.
2023-03-20 23:46:50 +01:00
mlemanczyk 0a402e2d13 Merge branch 'recyclable-block-list-added' of https://github.com/mlemanczyk/Recyclable.Collections into recyclable-block-list-added 2023-03-20 21:49:49 +01:00
mlemanczyk b1e6c587c3 RecyclableList modified to respect the removal of blocks.
RecyclableList.IndexOf fixed to work in various combinations.

RecyclableList tests extended.
2023-03-20 21:48:09 +01:00
mlemanczyk b21b80e222 RecyclableList modified to respect the removal of blocks.
RecyclableList.IndexOf fixed to work in various combinations.

RecyclableList tests extended.
2023-03-20 20:29:50 +01:00
mlemanczyk 070549de9e Merge branch 'recyclable-block-list-added' of https://github.com/mlemanczyk/Recyclable.Collections into recyclable-block-list-added 2023-03-20 19:40:11 +01:00
mlemanczyk 1157e3e23d Test cases adjusted to limit execution time. 2023-03-20 19:32:08 +01:00
Marek Lemańczyk e6224ebe44 Fixed handling of empty lists in RecyclableArrayList.
Some RecyclableList properties made public to allow use in RecyclableArrayList.

Added support for RecyclableList in RecyclableArrayList.AddRange.

Additional tests added for RecyclableArrayList.
2023-03-19 20:37:18 +01:00
Marek Lemańczyk e312accfe5 Unused & confusing test data removed. 2023-03-17 02:09:16 +01:00
Marek Lemańczyk 3e8f03e59f RecyclableList tests extended & parameterized for various combinations of block sizes in source & target lists, including different no. of items. 2023-03-17 01:42:30 +01:00
Marek Lemańczyk 5235ea12bc RecyclableListExtensions.CopyTo fixed to not raise exceptions in some configurations. 2023-03-17 01:40:56 +01:00
Marek Lemańczyk cf284865e9 RecyclableList finalizer added to make sure that the recyclable arrays are correctly returned. 2023-03-16 02:24:18 +01:00
Marek Lemańczyk c2eefdfe3b RecyclableCollections.Contains(T item) fixes to exceptions found by tests. 2023-03-16 02:21:14 +01:00
Marek Lemańczyk ca6ee45bb6 RecyclableCollections.AddRange(List<T> items) fixes to exceptions found by tests. 2023-03-16 02:20:16 +01:00
Marek Lemańczyk bdf69f300d Added test cases for various block sizes & items counts. 2023-03-12 18:01:30 +01:00