Sign in to follow this  
NightCreature83

Profiling tools

Recommended Posts

NightCreature83    5006

I am trying to find CPU profiling tools for windows that work like VTune, Razor CPU, SN Tuner, or PIX for Xbox 360/Xbox One. Now all of these are propriatary tools and cost shit loads, not to mention require special hardware like devkits.

 

I know of Code Analyst and Code XL, however I am running my tools on an Intel chip so they wont give me much information than a timeline over the whole process duration. I want a bit more fine grained control I would prefable like something that I can instrument from code, so I can tell it where a frame swap would happen for example. Also when I had code analyst installed on an Intel machine previously it caused bluescreens due to it wanting to check certain CPU states that offcourse didnt exist. So is CodeXl currently safe for Intel chips?

 

Whole timeline optimisations only get me so far and only eliminate very hot functions that could have run for a long time, I would like to know where my hot points are per frame.

 

Are there any good free tools out there for the windows platform?

Share this post


Link to post
Share on other sites
NightCreature83    5006

Well, Visual Studio comes with one built in that you could start with.

This one sadly does only whole timeline sampling and I would like to get those samples ordered a bit different, specially on a per frame basis not sure the VS filters allow this sort of profiling. The documentation for the VS profiler seems geared towards managed application profiling, I am more interested in native profiling, if you have better documentation for the VS Profilier that info is more than welcome.

 

Ok finally found this stuff in VS its a bit hidden but the info can be found here: https://msdn.microsoft.com/en-us/library/windows/desktop/jj585574%28v=vs.85%29.aspx

The trick is to tell VS to do a CPU and GPU sample based profile at the same time, and then setting the time frame to the time it took to render one frame. Sadly this is not ideal, specially since you have no control over how many samples the profiler will do per second.

Edited by NightCreature83

Share this post


Link to post
Share on other sites
Hodgman    51334

You can write your own and embed it into your application fairly easily.

Or use an Open Source library that does it for you like google-perftools.

You can either modify that to suite your needs, or use it to help learn how to write your own. It's not as hard as it sounds.

^^This.
I'm outputting my timings in Chrome format at the moment, which removes the need for me to write a visualizer. Was pretty simple to get multiple CPU cores + the GPU showing N frames worth of timing bars myself.

I haven't used this one but it looks handy too: https://github.com/Celtoys/Remotery Edited by Hodgman

Share this post


Link to post
Share on other sites
NightCreature83    5006

 


Sleepy possibly?

+1, check it out. It is free, simple to use. Give it a try and see if it provides some useful information.

 

Sadly it doesnt do what I want, if I want a simple over time sample I can use the integrated profiler of VS, which has a better visualisation than Sleepy/VerySleepy.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this