Существует ли какая-либо эквивалентная функция с clock_gettime в Mac OS X

#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 большое вам спасибо, я действительно думаю, что это лучший способ решить эту проблему