kenji-nx/src/Ryujinx.Memory
LotP 01cb33f658 Memory Changes
* Refactors the RangeList and derivative classes used for handling lists of regions

* The Binary searches are now more performant, relying on edge searches instead of just returning the first matching hit and manually iterating until the edge is found

* Most look-ups now return a RangeItem, which acts as a linked list node now, instead where possible, moving away from Array copies. This should help with some specific lag spikes.

* Made IntrusiveRedBlackTreeNodes act like linked list nodes too to improve the lookup time of minimums, maximums and successors.

* Changed a few cases of HasFlag() into binary operations to save on memory allocations.

In general, [these changes] should increase frame time stability and lag spikes, but at the cost of some overhead to memory look-ups, the result being a very slightly better average fps from my testing (~1-2%).
2025-08-26 15:28:43 -05:00
..
Range Memory Changes 2025-08-26 15:28:43 -05:00
Tracking Memory Changes 2025-08-26 15:28:43 -05:00
WindowsShared editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
AddressSpaceManager.cs misc: chore: Remove unnecessary usings 2025-04-11 21:56:23 -05:00
BytesReadOnlySequenceSegment.cs Add support to IVirtualMemoryManager for zero-copy reads (#6251) 2024-04-04 22:23:03 -03:00
InvalidAccessHandler.cs editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
InvalidMemoryRegionException.cs editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
IRefCounted.cs editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
IVirtualMemoryManager.cs Delete old 16KB page workarounds (#6584) 2024-04-06 13:51:44 -03:00
IWritableBlock.cs Use pooled memory and avoid memory copies (#6691) 2024-04-21 12:57:35 +02:00
MemoryAllocationFlags.cs editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
MemoryBlock.cs Android: Numerous fixes 2025-05-26 16:01:23 -05:00
MemoryConstants.cs editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
MemoryManagement.cs Suppress CA1416 warnings, correct argument kind in IFileSystem 2025-06-01 02:26:15 -05:00
MemoryManagementUnix.cs Suppress CA1416 warnings, correct argument kind in IFileSystem 2025-06-01 02:26:15 -05:00
MemoryManagementWindows.cs editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
MemoryManagerUnixHelper.cs Android: Numerous fixes 2025-05-26 16:01:23 -05:00
MemoryMapFlags.cs [Ryujinx.Memory] Address dotnet-format issues (#5386) 2023-06-28 18:34:00 +02:00
MemoryNotContiguousException.cs editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
MemoryPermission.cs editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
MemoryProtectionException.cs editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
NativeMemoryManager.cs Revert "misc: chore: Remove redundant code" 2025-03-15 20:00:22 -05:00
PageTable.cs editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
Ryujinx.Memory.csproj chore: Remove TieredPGO from Ryujinx and Ryujinx.Headless.SDL2 projects (enabled by default in .NET 8+) 2025-03-08 14:38:56 -06:00
SparseMemoryBlock.cs misc: chore: Use collection expressions (part 2) 2025-03-10 21:32:01 -05:00
VirtualMemoryManagerBase.cs Replace and remove obsolete ByteMemoryPool type (#7155) 2024-08-05 21:09:08 -03:00
WritableRegion.cs Replace passing by IMemoryOwner<byte> with passing by concrete MemoryOwner<byte> (#7171) 2024-09-18 23:00:54 -03:00