diff options
| author | jhorv <38920027+jhorv@users.noreply.github.com> | 2023-03-11 15:05:48 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-11 17:05:48 -0300 |
| commit | 23c844b2aa84a65e573dcc023d19b8f5294a8baf (patch) | |
| tree | bf9d41ee0f94b833bb52b6b0016ca99a991cd441 /Ryujinx.HLE/HOS/Ipc | |
| parent | 81691b9e3716c7f7f8b243f0f4ded1d90c526a4e (diff) | |
Misc performance tweaks (#4509)
* use Array.Empty() where instead of allocating new zero-length arrays
* structure for loops in a way that the JIT will elide array/Span bounds checking
* avoiding function calls in for loop condition tests
* avoid LINQ in a hot path
* conform with code style
* fix mistake in GetNextWaitingObject()
* fix GetNextWaitingObject() possibility of returning null if all list items have TimePoint == long.MaxValue
* make GetNextWaitingObject() behave FIFO behavior for multiple items with the same TimePoint
Diffstat (limited to 'Ryujinx.HLE/HOS/Ipc')
| -rw-r--r-- | Ryujinx.HLE/HOS/Ipc/IpcHandleDesc.cs | 4 | ||||
| -rw-r--r-- | Ryujinx.HLE/HOS/Ipc/IpcMessage.cs | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/Ryujinx.HLE/HOS/Ipc/IpcHandleDesc.cs b/Ryujinx.HLE/HOS/Ipc/IpcHandleDesc.cs index 439590e0..e6ed4613 100644 --- a/Ryujinx.HLE/HOS/Ipc/IpcHandleDesc.cs +++ b/Ryujinx.HLE/HOS/Ipc/IpcHandleDesc.cs @@ -49,12 +49,12 @@ namespace Ryujinx.HLE.HOS.Ipc public static IpcHandleDesc MakeCopy(params int[] handles) { - return new IpcHandleDesc(handles, new int[0]); + return new IpcHandleDesc(handles, Array.Empty<int>()); } public static IpcHandleDesc MakeMove(params int[] handles) { - return new IpcHandleDesc(new int[0], handles); + return new IpcHandleDesc(Array.Empty<int>(), handles); } public byte[] GetBytes() diff --git a/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs b/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs index 09e237fe..55044da4 100644 --- a/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs +++ b/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; @@ -132,7 +133,7 @@ namespace Ryujinx.HLE.HOS.Ipc word0 |= (ReceiveBuff.Count & 0xf) << 24; word0 |= (ExchangeBuff.Count & 0xf) << 28; - byte[] handleData = new byte[0]; + byte[] handleData = Array.Empty<byte>(); if (HandleDesc != null) { @@ -202,7 +203,7 @@ namespace Ryujinx.HLE.HOS.Ipc word0 |= (ReceiveBuff.Count & 0xf) << 24; word0 |= (ExchangeBuff.Count & 0xf) << 28; - byte[] handleData = new byte[0]; + byte[] handleData = Array.Empty<byte>(); if (HandleDesc != null) { |
