Фундаментальный вопрос, на который вы пытаетесь ответить, заключается в том, насколько вероятно, что то, что вы наблюдаете, могло произойти случайно? Честна ли эта монета? Бросьте один раз: ГОЛОВЫ. Нет, это несправедливо, это всегда падает орлом. Плохой вывод! Бросьте его 10 раз и получите 7 орлов, что вы теперь сделаете? 1000 раз и 700 голов?
Для простых случаев мы можем представить, как выяснить, когда прекратить тестирование. А у вас немного другая ситуация - вы действительно проводите статистический анализ?
Насколько вы контролируете свои тесты? Добавляет ли их повторение какую-либо ценность? Ваш компьютер детерминирован (возможно). Определение безумия, данное Эйнштейном, состоит в том, чтобы повторять что-то и ожидать другого результата. Итак, когда вы запускаете свои тесты, вы получаете повторяющиеся ответы? Я не уверен, что статистический анализ поможет, если вы делаете достаточно хорошие тесты.
Что касается того, что вы делаете, я бы сказал, что в первую очередь нужно убедиться, что вы действительно измеряете то, что думаете. Запускайте каждый тест достаточно долго, чтобы любые эффекты запуска или завершения работы были скрыты. По этой причине полезные тесты производительности, как правило, выполняются в течение довольно продолжительных периодов времени. Убедитесь, что на самом деле вы не измеряете время в своей тестовой программе, а не в своем коде.
У вас есть две основные переменные: сколько итераций вашего метода нужно выполнить в одном тесте? Сколько тестов запустить?
Википедия говорит об этом
В дополнение к выражению изменчивости населения стандартное отклонение обычно используется для измерения достоверности статистических выводов. Например, предел погрешности в данных опроса определяется путем вычисления ожидаемого стандартного отклонения результатов, если один и тот же опрос будет проводиться несколько раз. Сообщаемая погрешность обычно примерно в два раза превышает стандартное отклонение.
Следовательно, если ваша цель состоит в том, чтобы убедиться, что одна функция работает быстрее, чем другая, вы можете запустить несколько тестов каждой, вычислить средние значения и стандартные отклонения. Я ожидаю, что если ваше количество итераций в любом тесте велико, то стандартное отклонение будет низким.
Если мы примем это определение предела погрешности, вы сможете увидеть, отличаются ли два средних значения дальше, чем их общий предел погрешности.
person
djna
schedule
07.09.2009