8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
|
||||||||||||||||
1 | ||||||||||||||||
Неправильно замеряется время выполнения функции08.05.2017, 15:05. Показов 1244. Ответов 5
Метки benchmarkdotnet (Все метки)
Добрый день!
Для выполнения лабораторной работы мне необходимо собрать статистику, насколько сильно увеличивается время расчета алгоритма при увеличении количества объемов информации. Измеряю время в тактах, т.к. компьютер справляется обычно быстрей 1 мс. Было замечено следующее. При запуске программы и первом открытии формы, на которой производится расчет, затраченное время в разы больше, чем при последующих закрытиях и открытиях формы. Форму вызываю каждый раз новую: Вызов из главной формы.
На второй форме вызывается последовательно два класса, в которых происходит расчет и заполнение интерфейса.
Подскажите, пожалуйста, из-за чего может происходить такое явление. А, самое главное, какой результат считать правильным?
0
|
08.05.2017, 15:05 | |
Ответы с готовыми решениями:
5
Перемещение формы во время выполнения функции Как ограничить время выполнения функции Прогресс выполнения функции AJAX и время выполнения Используя О- символику, найдите время выполнения (как функции от N) процедуры или функции в наихудшем случае |
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
08.05.2017, 15:12 | 2 |
Ты неправильно меряешь. Все расчёты нужно выносить как минимум в отдельные методы, а лучше в отдельные потоки, никак не связанные с интерфейсом.
0
|
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
|
|
08.05.2017, 15:16 [ТС] | 3 |
У меня так и есть. В классе существует метод FillList, который только считает, ничего больше, он и замеряется.
Можно попробовать в отдельный поток, действительно, вынести...
0
|
Администратор
|
|
08.05.2017, 15:20 | 4 |
Сообщение было отмечено Dreiser как решение
Решение
Dreiser, вероятнее всего JIT-компиляция вносит свою задержку при первом вызове. Сделай хотя бы один запуск этого кода перед замерами. Еще лучше будут переписать тестирование используя BenchmarkDotNet.
2
|
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
|
|
08.05.2017, 15:32 [ТС] | 5 |
Да, звучит разумно. Потоки тоже никак не изменили ситуацию, к сожалению. Использование такого отдельного инструмента (BenchmarkDotNet) не сильно необходимо, не научная работа, а так, лишь бы разницу вычислить)
Спасибо) буду хотя бы знать, что не совсем моя вина в происходящем)
0
|
Администратор
|
|
08.05.2017, 15:43 | 6 |
Тебе виднее. Главное помни что кроме JIT компиляции есть и другие факторы влияющие на замеры времени. Поэтому к полученным цифрам следует относиться с определенным уровнем скепсиса и не абсолютизировать их. Использование BenchmarkDotNet позволяет нивелировать ряд этих факторов и получать результат более близкий к реальности.
0
|
08.05.2017, 15:43 | |
08.05.2017, 15:43 | |
Помогаю со студенческими работами здесь
6
Время выполнения функции Время выполнения функции Время выполнения функции Время выполнения Функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |