X.Y
- это отметка времени в единицах seconds.microseconds
.
Как отображается это значение, можно посмотреть здесь . Вы можете передать переключатель --ns
на perf script
для отображения меток времени в формате seconds.nanoseconds
.
Чтобы понять это значение, вам необходимо понять, как модуль perf
вычисляет временные метки. Вы можете связать каждое событие с другой функцией часов, чтобы вычислить метки времени. По умолчанию perf
использует функцию sched_clock
для вычисления временных отметок для события, подробности здесь .
event->clock = &local_clock;
Но вы можете использовать переключатель -k
вместе с командой perf record
, чтобы связать событие с различными часами.
-k, --clockid
Sets the clock id to use for the various time fields in the
perf_event_type records. See clock_gettime(). In particular
CLOCK_MONOTONIC and CLOCK_MONOTONIC_RAW are supported, some
events might also allow CLOCK_BOOTTIME, CLOCK_REALTIME and
CLOCK_TAI.
Добавление переключателя -k
в * 1026 Команда * активирует различные функции часов в зависимости от того, какой тактовый генератор вы используете, как видно здесь .
sched_clock
Функция должна возвращать количество наносекунд с момента запуска системы. Конкретная архитектура может обеспечивать или не обеспечивать реализацию sched_clock()
сама по себе. Счетчик системного отклонения будет использоваться как sched_clock()
, если локальная реализация не предусмотрена.
Обратите внимание, что все приведенные выше фрагменты кода предназначены для Linux для ядра 5.6.7 .