fps-inspector-sdk

Library to measure FPS and FlipRate


Keywords
cpp, fliprate, fps, fps-counter, fpsdisplay, fraps, game-dev, game-development, gamedev, presentmon, python
License
MIT
Install
pip install fps-inspector-sdk==1.0.8

Documentation

FPS Inspector SDK

Build status

Windows(AppVeyour):

Build status

It's a library which allows you to measure FPS FlipRate and other metrics.

It's based on Event Tracing and doesn't hook inside game process unlike Fraps

For now I've added only python binding if you wanna use another languages like C#, Java, R etc - let me know and I will add them

Also, you are able to use compiled dll and header from native code or add bindings by yourself

Installation

First option is:

git clone https://github.com/Andrey1994/fps_inspector_sdk
cd python
pip install .

Also you can install it from PYPI:

pip install fps_inspector_sdk

you have to run it with administrator priviligies and using 64-bit Python

Simple Sample

import sys
import time
import matplotlib
matplotlib.use ('Agg')
import numpy
import matplotlib.pyplot as plt

from fps_inspector_sdk import fps_inspector

def main ():
    float_formatter = lambda x: "%.5f" % x
    numpy.set_printoptions (formatter={'float_kind': float_formatter}, threshold=numpy.inf)

    pid = int (sys.argv[1]) # pid == 0 means recording all events from all processes
    fps_inspector.start_fliprate_recording (pid)
    time.sleep (10)
    fps_inspector.stop_fliprate_recording ()
    data = fps_inspector.get_all_fliprates () # get all data from begining,
    # also you can obtain the latest data using fps_inspector.get_last_fliprates(num_samples) method
    # data is a pandas dataframe, it simplify data analysis!
    print (data)

    plt.figure ()
    data[data.ScreenTime != 0][['FPS', 'FlipRate', 'ScreenTime']].plot (x='ScreenTime', subplots=True)
    plt.savefig ('plot.png')
    data.to_csv('scores.csv')
    plt.close ()


if __name__ == "__main__":
    main ()