Non commercial profiler for minGW with multithreading support
do you know one non commercial profiler for minGW with multithreading support?
Shark works just fine on OSX.
Shark guide – http://developer.apple.com/tools/sharkoptimize.html
Shark download – http://www.macupdate.com/app/mac/8506/apple-chud-tools
Note Shark is a profiler which is part of the Computer Hardware Understanding Developer Tools (CHUD Tools).
Cairo: minGW is for windos, not for OSX.
Yes Shark is really nice, unfortunately it does not match the criteria at all, being a Mac-only commercial tool.
What about gprof? Does it not work with multithreading?
My bad. I was recommended to try AMD CodeAnalyst for Windows/Linux.
It's free and it works on Intel processors too.
I usually profile my application on linux only even if It will be deployed on Windows too. Why ? The windows profilers expect Windows debugging symbols, while minGW insert the ones used by the gcc family.
Aside of that I second Cairo for AMD CodeAnalyst, but you should also look at Intel Vtune Amplifier.
There are different kind of analysis, from hot spots (code which take most of cpu time), Thread , Concurrency analysis, and other I didn't use yet. I seriously doubt that there is a better profiler than Vtune.
As a summary, the requirements were:
The main problem as pointed out by aureshinite is that profilers for windows typically don't understand debug information (symbols) from gcc. So most of the propositions so far fall short:
- Shark: commercial, doesn't work with MinGW, or even Windows
- AMD CodeAnalyst: free, but doesn't work with MinGW either. Its successor CodeXL is also free and supports MinGW-compiled executables... from the upcoming version 1.3.
- VTune Amplifiter: Now supports MinGW (since mid 2013...), but is commercial.
At the moment, I could not find any free profilers that support MinGW except for gprof, but gprof is not exactly ideal. It's quite limited in functionality. It's complementary with manual sampling (=repeatedly pausing during the execution or troublesome code to figure out what is slow).
Commercial tools that support it are rare, I could only find two:
They both are relatively affordable, if you're a company.