Intel Performance Tuning Utility

Intel Performance Tuning Utility

The Intel Performance Tuning Utility (Intel PTU) is a powerful
analysis tool set. It offers a low overhead statistical call graph. For
experienced tuners, it offers the power of the processor hardware event
counters for a detailed look into the performance of the memory system,
for architectural tuning, and more. This tool features advanced control
flow analysis and event over IP graphs to help you navigate the
disassembly, in case you dont have access to the source code. The
Intel Performance Tuning Utility is available for both Windows and

Product Overview | Download

Retired 12/31/2016
4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Just downloaded this tool and had a quick play. It looks very promising. I realise this is an early release, but I wanted to raise a couple of points that I think could improve it. Some of these may of course already be planned.

The biggest potential benefit for us the statistical callgraph - callgraph on VTune is way too slow for our purposes, so this has huge potential. However I see that I cannot use this option without starting the application explicitly from within the tool. To really make this tool usable it should be as easy and lightweight as possible. Ideally I'd like to be able to fire up the tool while I'm running my app, just to see what the statistical callgraph looks like, rather than have to quit and restart from within the tool.

The UI is too complex. I spent 5 minutes just searching to find the "Start" button once I'd set it up. Ideally the UI would just have a couple of buttons, a start/stop and a data collection option button. The start/stop should be on a hotkey that can be hit even when the collection tool is minimised. Shark on OSX is the gold standard here. The tool currently looks too much like VTune, which is a rather intimidating UI.

It seems slow - after collecting data it spent a really long time analysing it. Maybe this is just because it is early days, or my tests generated too much data. Also it crashed for me a lot - I only got one sucessful run out of around 10 or so, all the rest crashed.

Is there a "start with data collection paused" option? I think the crashing problem may be data volume. By the time my app has started up and I get to my test area, I've collected so much data the tool is overwhelmed.

Great that there is a UI on Linux for this by the way.


Thanks for your feedback. Our goal is to make data collection as easy as possible and your input is extremely valuable. So, how do you see yourselffiringup the tool in the ideal case? or would this be a case where the tool has already been invoked, but firing up translates to starting and stopping data collection through a "hot-key(s)"?

Regarding the UI, we have made available a helper document to get you over the initial hump of getting used to a new UI.It is available on the PTU product page (in the FAQ), but certainly not in an obvious location. Please let us know if you find this document useful in enabling you toperform thedata analysis as opposed to having to deal with a new UI. We will certainly record all feedback - positive and negative, to make our future products better.

IPTU is based on Eclipse, so the post processing of the data collected is a bit slower as Eclipse is based on Java. This tends to be amplified if large amounts of data are collected. The tool however, is reasonably robust. Can you please describe your "runs" (i.e., how long was the run, threaded? etc)that caused the tool to crash? This will help us identify the cause or at least provide you with a workaround until a fix is available.


Hi Vasanth,

Ideal I'd be able to start the profiling tool at any time. I see it as the difference between planning your work around profiling and just having a profiling tool at your fingertips any time should you want it. If I am running my app and notice some slowness, or even am just curious about what it is currently doing, I'd like to be able to start up the tool and collect the data immediately. The hotkey is important because the operation I care about can be quite specific. I don't want to move the cursor to the profiling tool to turn it on, and the same to turn it off. With the hotkey I can catch the part of the app I care about to a fraction of a second.

Thanks for the docs pointer, that looks very useful. I still think it would be good to have a default setup that can be run with minimal configuration requirements.

The sampling runs I did were about 1 minute - threaded code running on 8 cores. Probably a lot of data - the call stacks are pretty deep. Most of the time was application startup, so if I could defer data collection (or have that hotkey :-) ) it would be a lot less. I also noticed that the application began to stutter badly while data collection was happening, even if it was not using all cores. Sometimes it appears to run almost real time, sometimes it is an order of magnitude slower.


Leave a Comment

Please sign in to add a comment. Not a member? Join today