LINUX.ORG.RU
ФорумAdmin

Скорость прочтения настроек uci

 


0

1

Всем привет!

Есть некая программа, которая в зависимости от состояния пинов в модуле делает запись в конфиг-файл. Она крутится постоянно в while [ 1 ] Также она читает из конфиг-файла данные, исходя из них что-то делает.

Раньше все значения у меня хранились в отдельном файле. Все работало быстро.

После неких изменений в программе + перенос всех настроеr под uci get/set процесс стал очень грузить модуль.

Может ли это быть конкретно из-за uci, то есть как сильно грузит систему постоянная считка и запись таким методом?

Ответ на: комментарий от alexey995

Вместо кода

while( true ) {
  var=uci_get(.....);
  if( var != old_var ) {
    // do something
  }
  sleep(1);
}

используй ядерную фичу inotify http://man7.org/linux/man-pages/man7/inotify.7.html это позволит сделать следующее: установить на /tmp/.uci хук, который тебе будет возвращать событие в дескриптор в случае если кто-то пишет в файл в этой директории.

Это событие равно тому, что кто-то сделал uci set. тогда и перечитываешь необходимую переменную и если она изменилась, то делаешь свои дела.

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.