Вы открываете файл, который на самом деле не является обычным файлом файловой системы - это символьное устройство. Узлы устройства в Linux имеют свои системные вызовы, напрямую реализуемые конкретным драйвером, который регистрируется для обработки пары старший / младший номер, и поэтому их производительность зависит от реализации этого драйвера в операционной системе.
Высокая задержка характерна для драйвера w1-therm
; это происходит независимо от того, какой язык программирования вы используете.
В соответствии с техническими данными для оборудования, при https://www.maximintegrated.com/en/products/sensors/DS18B20.html, частота обновления составляет ~ 750 мс при генерации 12-битных выходов. Таким образом, вы просматриваете примерно 3/4 секунды на показание температуры, даже если все остальное абсолютно идеально.
Честно говоря, более быстрая частота обновления не имеет смысла в контексте датчика температуры - если физическая температура самого устройства изменяется так быстро, что вам нужно больше, чем измерение каждую секунду (принимая во внимание время необходимо, чтобы тепло действительно передавалось к датчику), у вас есть большие проблемы.