Некоторые вещи, которые я хочу измерить, очень короткие, и я могу повторять их столько раз, только если не выполняю какой-либо код установки / утилизации в середине.
note: onLinux, чтение / proc / stat
Не очень переносимый, и вам нужно быть очень осторожным, чтобы он был надежным, но Счетчик отметок времени определенно имеет самое высокое доступное разрешение (увеличивается при каждом такте процессора).
Счетчик меток времени имеет до недавно был отличным с высоким разрешением, низким накладным расходом получение информации о времени процессора. С появление многоядерных / гиперпоточных Процессоры, системы с несколькими процессорами и «спящие» операционные системы, На TSC нельзя положиться точные результаты - если только не заботиться принято, чтобы исправить возможное недостатки: скорость тика и все ли ядра (процессоры) имеют идентичные ценности в их хронометраж регистры. Там нет никаких обещаний, что счетчики меток времени нескольких Процессоры на одной материнской плате будут синхронизированы. В таких случаях, программисты могут получить только надежные результаты, блокируя их код один процессор. Даже тогда скорость процессора может измениться из-за энергосбережения меры, принятые ОС или BIOS, или система может быть в спящем режиме и позже возобновлено (сброс метки времени счетчик). В этих последних случаях, чтобы оставаться актуальным, счетчик должен быть периодически калибруется (в соответствии с к разрешению времени вашего требуется приложение).
Там также есть некоторые заметки о конкретных решениях для Linux:
В Linux похожая функциональность обеспечивается чтением значения Часы CLOCK_MONOTONIC с использованием POSIX Функция clock_gettime.