Você pode tentar usar ltrace
com o -c
trace (muito semelhante a strace
, mas para chamadas de biblioteca em vez de chamadas do sistema). Isso não será completo, na verdade, perfil do código e pode não ser o intervalo de tempo da CPU que você está procurando para, mas pode ser apenas a ferramenta de nível syadmin rápido que você precisa.
kbrandt@kbrandt-acer:~$ ltrace -c xcalc
% time seconds usecs/call calls function
------ ----------- ----------- --------- --------------------
66.83 0.222693 4453 50 XtCreateManagedWidget
28.52 0.095048 95048 1 XtAppInitialize
0.85 0.002837 2837 1 XtRealizeWidget
0.83 0.002764 2764 1 XSetWMProtocols
0.77 0.002581 2581 1 XtGetApplicationResources
0.42 0.001383 53 26 XtWindow
0.41 0.001371 54 25 XtDisplay
...
------ ----------- ----------- --------- --------------------
100.00 0.333219 168 total
strace
também com a opção -c
fornecerá a você uma saída semelhante, mas mostrará as chamadas do sistema (as chamadas que as bibliotecas estão usando, de forma mais ou menos profunda).
A ressalva em ambas as quebras é o tempo gasto no relógio de parede em cada chamada e não mostra se estava ativo ou ocioso.
Se você tiver o código e quiser fazer todo o possível, você deseja criar um perfil de código. Stack Overflows " O que eu posso usar para criar o perfil do meu código C ++ no Linux? "você deve começar. Eu usei Valgrind com código C e gostei.