To profile the core, there's a privilegues problem, because being started as root, but then dropping those becoming icinga user will disallow creating valuable profiles.
running with gprof will tell the following
Resultion: Set icinga_user to root (only for profiling!!!), or wait for a proper runtime param (https://dev.icinga.org/issues/2289), meanwhile comment the drop privilegues functions and remove that code parts.
Using callgrind for profiling.
KCachegrind can be used to visualize callground (and other) profiling outputs.
Compile Icinga with gprof flags (-pg), i.e. in base/Makefile.in
Afterwards, you'll run the newly compiled binary, generating profiling output in gmon.out
Then run gprof on the binary and the output.