#macos #clock
#macos #часы
Вопрос:
Я пробовал clock_gettime в Mac OS, но gcc жалуется, что не может найти этот символ. Я не знаю почему…… Я просто хочу использовать наносекунду для записи производительности.
Ответ №1:
Вы можете получить микросекунды из gettimeofday(2)
. Возможно, этого достаточно?
Комментарии:
1. Я думаю, этого недостаточно, потому что я тестирую malloc и свободную пару библиотеки … но большое вам спасибо. Я видел другую функцию в mac os, mach_absolute_time(), кто-то сказал, что ее можно использовать для вычисления длительности наносекунды.
2. Я был бы удивлен, если
mach_absolute_time()
или любой системный вызов может дать вам желаемую точность. Любое переключение контекста приведет к изменению времени, а такжеmalloc()
само по себе может варьироваться в зависимости от того, нужно ли ему выполнять системный вызов, чтобы получить больше виртуальной памяти. Иmach_absolute_time()
, вероятно, требуется некоторое время для выполнения в наносекундах.3. Если вы хотите определить время чего-то небольшого, обычно у вас нет выбора, кроме как выполнить процедуру много (сотни тысяч) раз и получить среднее значение. Точность синхронизации, как правило, просто недостаточно хороша для надежного времени одного вызова.
4. @JeremyP, спасибо, что рассказали мне об этом. Я обнаружил, что первый раз, когда пара без malloc занимает тысячи наносекунд, это может быть из-за виртуальной памяти.
5. @StevenSchlansker большое вам спасибо, я действительно думаю, что это лучший способ решить эту проблему