@Koshkin_I

Есть ли разница в нагрузке на процессор?

Здравствуйте!
У меня есть массив из 24 пикс разного цвета. Порядок цветов меняется раз в сек. В некоторый момент красный должен исчезнуть из набора. Думаю отслеживать бесконечным циклом robot.getPixelColor().

Есть ли смысл вставлять какую-нить задержку? Пока всё работает в одном потоке, но далее возможно рядом будет еще поток. Да и в целом как лучше?
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rPman
Конечно нужно ставить sleep и ждать половину времени, в это время процессор не будет занят. В этом режиме запаздывание отлова пиксела будет до полусекунды.

spoiler
Если нужно минимизировать задержку, т.е. синхронизировать обновления пикселов с чтением их (т.е. если не ты их обновляешь но нужно оперативно ловить) то либо ты уменьшаешь задержку, что повышает нагрузку на процессор, либо хитро пытаешься синхронизироваться.

Для синхронизации можешь использовать следующий алгоритм, у тебя должно быть два интервала чтения пикселов, интервал определяй как
intval(timestamp/интервал времени (у тебя 1 секунда)) * на этот же интервал + смещение

смещение у каждого интервала свое (меняется в пределах от 0 до длины интервала, само собой в миллисекундах), твоя задача найти такие значения для смещений, чтобы один интервал возвращал чаще то же самое что другой в последний раз (т.е. был позади во времени перед сменой значений), а это другой чаще новые значения (сразу после смены значений). Т.е. ты сохраняешь последние N измерений со значениями интервалов и boolean (подходит или нет) и считаешь градиент для интервалов (количество true по значениям интервалов), из них уже вычисляешь нужно ли увеличивать интервал или уменьшать на некую дельту.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы