mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2025-02-02 18:12:32 +01:00
Test using Queue instead of List for Latency stats
The Queue version is faster
This commit is contained in:
parent
5c5e983ec1
commit
e207114339
@ -630,7 +630,8 @@ namespace DS4Windows
|
||||
{
|
||||
firstActive = DateTime.UtcNow;
|
||||
NativeMethods.HidD_SetNumInputBuffers(hDevice.safeReadHandle.DangerousGetHandle(), 2);
|
||||
List<long> latencyList = new List<long>(51); // Set capacity at max + 1 to avoid any list resizing
|
||||
//List<long> latencyList = new List<long>(51); // Set capacity at max + 1 to avoid any list resizing
|
||||
Queue<long> latencyQueue = new Queue<long>(51); // Set capacity at max + 1 to avoid any resizing
|
||||
int tempLatencyCount = 0;
|
||||
long oldtime = 0;
|
||||
Stopwatch sw = new Stopwatch();
|
||||
@ -643,17 +644,21 @@ namespace DS4Windows
|
||||
string currerror = string.Empty;
|
||||
long curtime = sw.ElapsedMilliseconds;
|
||||
this.lastTimeElapsed = curtime - oldtime;
|
||||
latencyList.Add(this.lastTimeElapsed);
|
||||
//latencyList.Add(this.lastTimeElapsed);
|
||||
latencyQueue.Enqueue(this.lastTimeElapsed);
|
||||
tempLatencyCount++;
|
||||
oldtime = curtime;
|
||||
|
||||
if (tempLatencyCount > 50)
|
||||
{
|
||||
latencyList.RemoveAt(0);
|
||||
//latencyList.RemoveAt(0);
|
||||
latencyQueue.Dequeue();
|
||||
tempLatencyCount--;
|
||||
}
|
||||
|
||||
Latency = latencyList.Average();
|
||||
//Latency = latencyList.Average();
|
||||
//latencyList.Average();
|
||||
Latency = latencyQueue.Average();
|
||||
|
||||
if (conType == ConnectionType.BT)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user