I know that “real”, professional-level performance monitoring is much more complex than a simple FPS (or better, millisecond/frame) counter.
However, I am not looking to squeeze every last drop of performance out of my application. Rather, I am a beginner, so if I do something stupid (as in: way too costly), I would like to get feedback on that ASAP.
I currently have a naive frame time counter, where in the draw loop I update an int frameCount and a double elapsedTime. Every time the elapsedTime is more than a second, I write frameCount and 1000/frameCount to the console as FPS and ms/frame.
That works, but it also clogs up the console output. So I had a look at:
- NVidia NSight. I have an NVidia GPU and was already using the detailed information in NSight for other reasons. Seems to come at a cost, though: From 1200FPS/0.8ms to 600FPS/1.8ms (or so).
Also, it’s not there automatically if I click “run” in my IDE.
And if it is running, it shows a bunch of errors “pAllocateInfo->allocationSize (830208) is not a multiple of minImportedHostPointerAlignment (4096)”. It still works, but for running all the time, this is basically unusable (it hides all the “real” errors caused by me). - MSI afterburner The automatic overlay works as desired here, but also causes massive amounts of validation errors.
- GeForce Experience Can’t get the overlay to run for my application, probably because it is not an “official”, NVidia-approved application.
So, what do people usually use to keep a simple, rough eye on performance while developing?