The callgrind tool of valgrind as stated in the document has only Instructions read (Ir) enabled by default.
The tool itself is not suitable for calculating the time consumed by the function, refer here.
For getting time and CPU usage I prefer running "time" command in Unix in verbose mode
/usr/bin/time -v
However, we can get other utilities such as
==snippet from the doc===
Cache misses on instruction reads ("I1mr"/"ILmr"), data read accesses ("Dr") and related cache misses ("D1mr"/"DLmr"), data write accesses ("Dw") and related cache misses ("D1mw"/"DLmw") by enabling the option of
--cache-sim=yes
Also its possible to get other utilities such as
Number of executed conditional branches and related predictor misses ("Bc"/"Bcm"), executed indirect jumps and related misses of the jump address predictor ("Bi"/"Bim") by enabling option of
--branch-sim=yes
Finally with the help of callgrind_annotate utility we get the desired output file.
==========