Стандартные функции, такие как time
, часто имеют очень низкое разрешение. И да, хороший способ обойти это - многократно выполнить тест и набрать среднее значение. Обратите внимание, что первые несколько раз могут быть очень медленными из-за скрытых затрат на запуск - особенно при использовании сложных ресурсов, таких как графические процессоры.
Для вызовов, специфичных для платформы, посмотрите QueryPerformanceCounter
в Windows и CFAbsoluteTimeGetCurrent
в OS X. (Я не использовал вызов POSIX clock_gettime
, но это может стоить проверить.)
Измерение производительности графического процессора сложно, поскольку графические процессоры являются удаленными процессорами, выполняющими отдельные инструкции - часто на многих параллельных блоках. Возможно, вы захотите посетить CUDA Zone Nvidia , где вы найдете различные ресурсы и инструменты, которые помогут измерить и оптимизировать код CUDA. (Ресурсы, связанные с OpenCL , также очень актуальны.)
В конечном счете, вы хотите увидеть, как быстро ваши результаты попадают на экран, верно? По этой причине звонка на номер time
вполне может быть достаточно для ваших нужд.