• Advertisement
Sign in to follow this  

How do you benchmark your game?

This topic is 1761 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Do you think it's a good idea to use more metrics than just average frame rate when testing render performance? I mean 95th percentile, minimium frame rate, etc.

 

Share this post


Link to post
Share on other sites
Advertisement

Profiling helps identify bottlenecks, when looking to optimize. Profilers tell you the average amount of time a function takes, and even more importantly, the number of times it is called during a specific program run. Saving 10ms on a function that is only called 20 times a frame isn't as good as saving 1 ms on a function that is called two hundred thousand times a frame.

Edited by Servant of the Lord

Share this post


Link to post
Share on other sites
Fps is a bad test - as in, if you are testing the whole range of possible inputs (which you kinda should check, at the very least checking the limits)- you could speed up the avarage fps - and perhaps make every number modulously divided by 5 much slower then the avarage resulting in jumpy gameplay even though the function on avarage is faster.

Mapping out your program/parts of your program by hand before you dive into writing them often saves a lot of time when it comes to optimizing, as you should be able to see where your bottlenecks are likely to accure if you would of attempted to write it the way you origionally intended and can code with the intent on not having certain bottlenecks.

Share this post


Link to post
Share on other sites

Speaking of profiling and performance tracking, riting your own lightweight profiler is a great way to keep on top of how different bits of your game are performing.  You set it to run per-frame and record timings for various bits of code.  This is valuable for knowing where to look when you get performance drops during development - you might think the hit may be coming from what you're working on, but another part of the code has been affected.

 

A good example/tutorial is here:

http://www.rorydriscoll.com/2009/04/21/direct3d-11-multithreading/

 

I wrap certain functions up (culling, physics update, particles update, game code update, rendering, etc etc) in a profiling event and output a colour coded graph so I can quickly see what's going on.  No where near as fine grained as a proper profiler but I feel it's much more useful!

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement