🔬Research perf of StopWatch #865
Labels
high-priority
High Priority
preview
Done while in preview
🔬research
Research collection / investigation
Complete The Item Below
What To Research
Research different uses of the
StopWatch
class to see if there is a possibility for improvements to performance.Currently, the
Start()
,Stop()
, andReset()
methods are being used in conjunction with theElapsed
property to measure time.Another option to try and use is the
Stopwatch.GetTimestamp()
method. This method is static and returns along
data type which represents the current ticks. The idea here is to see if the current implementation is more or less performant than using theStopWatch.GetTimestamp()
method.Note
The current use needs to get the time in milliseconds, but the new method is ticks. Math operations will need to be performed to convert ticks to milliseconds. This math needs to be included in the performance measurements for an honest comparison.
If it turns out that
StopWatch.GetTimestamp()
is more performant, create an issue to do the work.Additional Info:
This is all implemented in the types
StopWatchWrapper
andTimerService
.Research Results
Test Results With Raw Stopwatch Calls
New stopwatch and timer service types
The main area that this increases performance is when calculating the frames per second in the main
GLWindow
classand is in the game loop hot path.
Stopwatch.GetTimestamp()
method, we were able to increase the performance of theTimerService
implementation by 93.011%!!Acceptance Criteria
The items to complete in order to satisfy the Definition of Done.
ToDo Items
The items to complete in order to satisfy the Definition of Done.
Issue Dependencies
No response
Related Work
No response
Additional Information:
Priority Type Labels
low priority
medium priority
high priority
Code of Conduct
The text was updated successfully, but these errors were encountered: