Я работаю над несколькими командами ремесленников, которые делают что-то в цикле над разным количеством предметов.Иногда это 30
элементов, иногда это 800k
элементов, иногда 20k
.
Все работает, но иногда мигает вывод.Я знаю почему - из-за слишком частого обновления.
$progress = $this->output->createProgressBar($this->countSyncRowsCleaned);
Я придумал, как-то динамически определять частоту обновления, основываясь на объеме записей, через которые нужно пройти цикл.Поэтому вместо жесткого кодирования:
$progress->setRedrawFrequency(50);
Я делаю:
$progress->setRedrawFrequency(max(1, floor($this->countSyncRowsCleaned / 1000)));
Иногда 50
замечательно, иногда все еще часто.
Что было бы хорошоматематическая формула, чтобы установить разумную частоту перерисовки для огромного разброса целых чисел?Иногда несколько записей, иногда более миллиона.
Спасибо за любые подсказки.