On Fri Apr 4 17:56:14 2025 +0000, Matteo Bruni wrote:
For what it's worth, the difference doesn't seem *that* large that I would consider `FORCEINLINE` necessary here[*]. What I feared was that we'd be falling off a performance cliff with the additional function call overhead, but that definitely doesn't seem to be the case from your tests. The gap with native is significant. No need to tackle that until necessary, but it's something to keep in mind. BTW, what are the time units in the tables above? Milliseconds? [*]: There are other possible concerns with inlining (e.g. additional cache pressure) that are hard to evaluate in a standalone test and might discourage it, all things being (roughly) equal otherwise.
The time unit is in seconds. Initially I used `GetTickCount()`, the difference was still noticeable but I wasn't sure if that was just due to the resolution of the timer there. I switched to `QueryPerformanceCounter()` instead to make sure it wasn't just a timer resolution issue.