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-toolsNote Shark is a profiler which is part of the Computer Hardware Understanding Developer Tools (CHUD Tools).
-
Yes Shark is really nice, unfortunately it does not match the criteria at all, being a Mac-only commercial tool.
-
My bad. I was recommended to try AMD CodeAnalyst for Windows/Linux.
It's free and it works on Intel processors too.http://developer.amd.com/tools/codeanalyst/pages/default.aspx
-
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:
Multithreading support
Non-commercial
MinGW support
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:
- VTune
- AQTime
They both are relatively affordable, if you're a company.