Как правильно повторно измерить время обхода директори?
Делаю рекурсивный обход директорий, но возникла такая проблема, что при первом обходе программа тратит 14с времени, а при последующих 1с. Можно как-то сделать так, чтобы время было +/- стабильное?
Обход делаю через os.Walk
Скорее все каждый раз измерение показывает верные результаты несмотря на такую разницу.
Думаю дело в кеше данных с диска, за счёт кеширования повторные обходы работают быстрее.
Чтобы можно было точнее сказать - нужно видеть ваш код.
Наверняка это можно отключить, но не уверен, что это вам нужно.
Лучше опишите более детально задачу или почему такой вариант работы не устраивает.
Складывается впечатление, что проблему нужно решать иначе, но чтобы искать решение - нужно понимать реальную задачу.
Евгений Мамонов, это не реальная задача, просто поковыряться решился, поэтому тут чисто исследовательский интерес, стало интересно как работает, а как найти эту информацию не знаю.
Парралельный обход не даст прироста производительности, т.к. механизм чтения данных с диска не умеет работать параллельно и реальное считывание данных будет происходить последовательно.
Выигрыш можно получить только в том случае, если полученные данные нужно обрабатывать или, например перекидывать в сеть, вот тогда выигрыш будет отличный.
Пока одна горутина читает данные с диска, другая отправляет данные в сеть и т.д.
Так и должно быть, это очень хорошо, если было бы иначе - диски бы постоянно "хрустели", а ОС жутко тормозила :))
Я бы не советовал развивать тему отключения кеша.
Вы разобрались как работать с файлами/папками, лучше изучить что-то более актуальное.
Вот отличный roadmap https://github.com/Alikhll/golang-developer-roadmap
Уверен, там вы найдёте то, что еще не успели "покрутить" :)
А это уже будет реально востребованный навык в отличие от отключения кеширования :)