Search code examples
c++frame-rate

C++: Calculating Moving FPS


I would like to calculate the FPS of the last 2-4 seconds of a game. What would be the best way to do this?

Thanks.

Edit: To be more specific, I only have access to a timer with one second increments.


Solution

  • Near miss of a very recent posting. See my response there on using exponential weighted moving averages.

    C++: Counting total frames in a game

    Here's sample code.

    Initially:

    avgFps = 1.0; // Initial value should be an estimate, but doesn't matter much.
    

    Every second (assuming the total number of frames in the last second is in framesThisSecond):

    // Choose alpha depending on how fast or slow you want old averages to decay.
    // 0.9 is usually a good choice.
    avgFps = alpha * avgFps + (1.0 - alpha) * framesThisSecond;