LINUX.ORG.RU

время в тактах(клоках)


0

1

скажите, как померить время в тактах процессора.

суть вот в чем.

в модуле вызываю функцию, нужно померить сколько ушло времени на вызов функции в тактах

какими функциями воспользоваться?

Ответ на: комментарий от perlovik

прочитал, что можно точно определить следующим образом: jiffies + счетчик таймера

а как получить счетчик таймера? и что физически означает тип cycles_t, возвращаемый функцией get_cycles(void);

perlovik
() автор топика
Ответ на: комментарий от perlovik

> а есть ли что-нубудь, которое вернет мне точное кол-во тактов?

Какой процессор? На многих есть регистр/пара регистров, где хранится инкрементируемых каждый такт счётчик. google rdtsc gcc inline asm (x86)

anonymous
()
Ответ на: комментарий от perlovik

get_cycles() - переносимое API для аппаратнозависимых счетчиков. Реализация этой функции своя для каждой архитектуры. Если архитектура не предоставляет счетчика, то эта функция будет просто возвращать ноль.
Для x86, к примеру, эта функция вернет значение tsc. Здесь можно посмотреть реализацию get_cycles для разных платформ.

Что касается jiffies (и jiffies_64), они отражают значения софтовых часов, доступных на каждой платформе и имеющих частоту HZ. Если прочитать значение переменной jiffies дважды с интервалом в одну секунду, то разность полученных значений должна составить HZ.

nocomer
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.