Почему время выполнения Goroutines существенно отличается? - PullRequest
0 голосов
/ 10 марта 2019

Я просто измеряю время выполнения набора программ. Это значит:

Я начинаю измерения, затем запускаю 20 процедур и прекращаю измерения, как только они заканчиваются. Я повторяю этот процесс как 4 раза, а затем сравниваю 4 раза выполнения.

Иногда эти времена выполнения значительно различаются:

1-й запуск из 20 процедур: 1,2 мс
2-й пробег из 20 процедур: 1,9 мс
3-ий из 20 сеансов: 1,4 мс
Четвёртый прогон 20 горутин: 17,0 мс!

Почему это иногда так сильно отличается? Есть ли способ избежать этого?

1 Ответ

0 голосов
/ 10 марта 2019

Почему иногда он так сильно отличается?

Время выполнения всегда будет непредсказуемым в какой-то момент, как указано в комментариях к вашим вопросам (ЦП, загрузка диска, память и т. Д.)

Есть ли способ избежать этого?

Существует способ сделать ваши измерения более полезными. Go имеет встроенный инструмент для тестирования производительности (вот руководство о том, как правильно его использовать). Этот инструмент запускает ваш код достаточно раз, чтобы определить несколько детерминированное время выполнения.

Помимо отображения среднего времени выполнения вашего кода, он также может отображать полезную информацию о памяти.

...