Hi all. We have a simulation tool with a C# front-end and the simulation engine written in Fortran as a DLL. When I try to use the VTUNE tool for a Hotspots analysis in Release mode, it doesn't correctly identify which Fortran methods are consuming the most CPU time. If on the other hand, I do the analysis in Debug mode, it works.
Does anyone know how to get it to work in Release mode?
It can happen due to inlining, can you turn inlining off to verify? Which compiler do you use for building DLL?
Make sure you have "Inline Mode" set to "on" in the bottom of result view. Switching "Call Stack Mode" to "User/system functions" could also help to identify if some system routines take more samples than you expected.
Most of compilers have default "-O2" option ("inline" on), in release mode; When using debug mode, compiler uses "-O0" as default - that was why you can identify source location in debug mode.
For Intel C/C++ Composer, you can add "-inline-debug-info" option to build. And set "Inline Mode" in bottom-up report. I guess there is similar option in Intel Fortran Composer. If you use other compiler, it means you need to use debug mode or set "-O0" in release mode.