Какое максимальное количество ключей в Yun Bridge?

Yun имеет мост для связи между процессорами Arduino и Linux через хэш ключ/значение. В документации говорится, что это фактически хранится на стороне Linux, но не говорится, каков предел.

Сколько пар ключ/значение может хранить Bridge? Каковы практические ограничения?

, 👍0

Обсуждение

Я думаю, что ограничением является память в atmega32u4 и ограничение скорости для скрипта python на стороне linux. Около 20 значений не должны быть проблемой, но когда у вас есть 20 различных значений, все обновления и управление этими 20 значениями через мост могут стать проблемой. Когда вам нужно 1000 значений, возможно, вы можете попробовать контролировать все на стороне linux и время от времени запускать скрипт linux со стороны arduino. Лучшим решением будет прекратить использовать yun прямо сейчас, прежде чем вы потратите слишком много времени на борьбу с ним. Посмотрите на платы mkr wifi, или esp32, или raspberry pi., @Jot


1 ответ


Лучший ответ:

1

Данные просто хранятся в массиве внутри демона Python. ATMega32U4 просто отправляет команды для установки/получения значений, поэтому нет никаких ограничений, налагаемых стороной ATMega.

Единственным ограничением является размер массива в Python, который ограничивается:

  • Объем доступной памяти в Linux и
  • Независимо от того, настроено ли у вас пространство подкачки на Yun

Поскольку оба эти параметра очень изменчивы (зависят от того, какие процессы у вас запущены, какова ваша конфигурация и т. д.), ответ может быть только один:

  • Довольно много.

Отложив на мгновение память, ответ на этот вопрос на SO гласит:

Согласно исходному коду, максимальный размер списка составляет PY_SSIZE_T_MAX/sizeof(PyObject*). В обычной 32-битной системе это (4294967295 / 2) / 4 или 536870912. Таким образом, максимальный размер списка Python в 32-битной системе составляет 536 870 912 элементов.

Итак, у вас есть меньшее из:

  • Максимум, который можно вместить в память Linux, и
  • 536,870,912
,

Majenko, у google translate проблемы с выражением "довольно много". Он может понять "довольно много" или "несколько", а также "довольно много пива", но путается с просто "довольно много". Это "много", верно? Вы использовали arduino yun? Каждая идея, которая приходит мне в голову, оказывается очень сложной для реализации на arduino yun., @Jot

GT часто борется с идиомами. Довольно много = много, но не очень много. Больше, чем несколько, меньше, чем огромное количество. У меня есть Yun, но все, что он делает в данный момент, это является маршрутизатором для подключения моего skybox к WiFi. Yun был хорошей идеей, когда его впервые придумали, но с тех пор технология MCU шагнула вперед, и сейчас он довольно избыточен., @Majenko