Команда collect
не работает таким образом - это Образцы исполняемый исполняемый файл для сбора данных стека вызовов, которые он собирает.
Необходимо указать compile with -xpg
и использовать prof
или gprof
в файле выходных данных.
Что-то вроде этого Dtrace сценария будет также собирать счетчики вызовов функции:
countfuncs.d:
pid$target:::entry
{
@[ probefunc ] = count();
}
Затем запустите что:
dtrace -s countfuncs.d -c your_program ...
По моему опыту, подсчитывая количество раз функция называется не имеет значения - сколько время (процессор или настенные часы) проводится в любой функции t шляпа имеет значение. Если функция занимает 90% времени выполнения, то вы тратите свои усилия на оптимизацию производительности, независимо от того, была ли эта функция вызываться один или несколько раз. Если функция занимает 0.001% времени выполнения, вы не беспокоитесь о ней независимо от того, сколько раз она вызывается.
Это зависит от вашего компилятора. Например, gprof – Garf365