Commit Graph
424 Commits
Author SHA1 Message Date
mlemanczyk 4165c9c6d9 RecyclableList.EnsureCapacity & .Resize performance improvements. Custom ArrayPool<T> added. 2023-04-10 22:35:00 +02:00
mlemanczyk 7f84cdc636 RecyclableList.Resize performance improvements. 2023-04-09 03:10:46 +02:00
mlemanczyk a132fdc775 RecyclableList.EnsureCapacity performance improvements. 2023-04-09 01:54:52 +02:00
mlemanczyk ed76bd99ba Failing tests fixed. 2023-04-09 01:51:58 +02:00
mlemanczyk 298af4e718 Arithmetic overflow protections added. 2023-04-09 00:50:12 +02:00
mlemanczyk b7af797dd7 Tiny cleanup 2023-04-08 01:15:27 +02:00
mlemanczyk dead323502 RecyclableArrayList.Remove & .RemoveAt performance improvements. 2023-04-08 01:13:37 +02:00
mlemanczyk fd9c2dab82 RecyclableList.Remove & .RemoveAt performance improvements. 2023-04-08 01:02:11 +02:00
mlemanczyk 3369bcc6cb RecyclableList.Remove & .RemoveAt performance improvements. 2023-04-08 00:34:23 +02:00
mlemanczyk 064b3f0cb0 .Remove & .RemoveAt benchmarks added. 2023-04-07 23:34:43 +02:00
mlemanczyk 1ce91c0062 RecyclableArrayList.Remove, RecyclableArrayList.RemoveAt, RecyclableList.Remove & RecyclableList.RemoveAt performance improvements.
Support for removal of any item implemented in RecyclableList.Remove & .RemoveAt.
2023-04-07 01:09:25 +02:00
mlemanczyk d6b351b1eb RecyclableList.DoIndexOf multiplication changed to bit shifting for better performance. 2023-04-01 20:01:34 +02:00
mlemanczyk 80756aff44 RecyclableList.RemoveAt fix to release the rented block correctly. 2023-04-01 20:00:32 +02:00
mlemanczyk 239d45fc8c RecyclableArrayList.IndexOf improved to not raise exception when the list is empty. 2023-04-01 16:38:53 +02:00
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