Отчет о среднем и стандартном отклонении дает хорошее описание распределения, когда рассматриваемое распределение приблизительно нормальное.Однако это редко относится к измерениям производительности вычислений.Вместо этого измерения производительности имеют тенденцию более близко напоминать распределение Пуассона.Это имеет смысл, потому что не так много случайных событий на компьютере заставит программу работать быстрее;по существу, весь шум измерения заключается в том, сколько случайных событий происходит, что приводит к его замедлению.(Напротив, нормальное распределение не дает никакого интуитивного смысла вообще ; для этого потребуется уверенность в том, что программа имеет ненулевую вероятность завершения в отрицательное время).
В светеиз этого я считаю наиболее полезным сообщать о минимальном времени в течение многих запусков программы, а не о среднем;шум в распределении - это, как правило, шум измерительной системы, а не значимая информация об алгоритме.Для сложных алгоритмов, которые имеют условия раннего запуска и другие сочетания клавиш, нужно быть немного более осторожным, но минимум многих прогонов, где каждый прогон обрабатывает репрезентативный баланс входов, обычно работает хорошо.
"10 разкаждый "звучит как очень несколько итераций для меня.Я обычно делаю что-то порядка тысяч (или более, в зависимости от функции / системы) прогонов, если это не полностью невозможно.Как минимум, вам нужно убедиться, что вы запускаете синхронизацию достаточно долго, чтобы исключить любую зависимость от состояния системы, некоторые из которых могут измениться при довольно большой временной детализации.
Еще одна вещь, которую вы должныСледует помнить, что, по сути, в каждой системе имеется доступный для конкретной платформы таймер, который намного точнее, чем тот, который доступен <time.h>
.Узнайте, что это такое на вашей целевой платформе [ы] и используйте вместо этого.