Как инструменты тестирования файловой системы измеряют время?

Я хочу измерить время выполнения определенного системного вызова, например, я хочу знать pread нужно сколько времени и на CPU и на ввод / вывод.

Какую функцию я должен использовать?

Сейчас пользуюсьtimesи это работает.

gettimeofday получить текущее время, и это может не просто рассчитать время выполнения конкретного процесса, верно?

clock возвращает время ЦП, используемое этой программой до сих пор, включает ли это время ввода-вывода? Если будут запущены другие программы, повлияет ли это на время этой функции? Я имею в виду что-то вроде переключения запущенного процесса.

getrusage кажется идеальным, но он также возвращает CPU время конкретного процесса.

Кто-нибудь знает, как вычисляют эталонные инструменты типа iozone? system calls время? Я прочитал его код и до сих пор понятия не имею.

1 ответ

Ты ищешь times(2),

Другие вопросы по тегам