Я использую GCC в Ubuntu, и я хочу функцию, которая измеряет время, когда моя функция использует процессор. Я не хочу включать время, которое процессор тратит на фоновые процессы.
Например, если моя функция использовала процессор в течение 10 мс, то процессор обрабатывал некоторые другие данные в течение 20 мс, а затем продолжал работать над моей функцией в течение 8 мс. Я хочу, чтобы он возвращал 18 мс, а не 38. Я не против, если бы результат был в тиках процессора.
То, что вы хотите сделать, называется профилированием и gprof
на Linux это очень удобно, смотрите http://www.ibm.com/developerworks/library/l-gnuprof.html.
В дополнение к ответу Baris Demiray я могу лично порекомендовать инструмент callgrind (как и любой другой инструмент) из набора инструментов valgrind. Это особенно полезно в сочетании с kcachegrind / qcachegrind, который должен быть доступен через репозитории Ubuntu.
Очень краткое описание обоих инструментов, gprof и callgrind, можно найти здесь:
http://kcachegrind.sourceforge.net/html/Introduction.html
Вы хотите взглянуть на clock()
(man 3 clock
).