Страница 1 из 1

Оптимизация при работе со строками при работе в FLPROG

Добавлено: 08 фев 2019, 19:22
AlexCrane
Я думаю данная тема будет многим интересна, создавая проект GSM сигнализации столкнулся с проблемой неадекватной работы ардуины при превышении использования динамической памяти более 40%. Хотя думаешь всего-то 40%. Ан нет.

Погуглив немного понял что если неправильно работать со строками, то строковая переменная может динамически "расширятся" и занимать уже другое место в динамичесой памяти, и так несколько раз пока она не кончится, а кончится она быстро и полезут артефакты.

Из своих наблюдений при конструкции вида
002.jpg
Артефакты появляются очень быстро

Более оптимальная такого вида
001.jpg
-

Ну и видимо при передаче переменной от одного блока к другому создается ее копия, т.е. место в памяти занимается в два раза больше.

Хочется услышать (увидеть) от знатоков, как оптимизировать работу со строками в FLPROG, если это возможно конечно... :smile427:

Оптимизация при работе со строками при работе в FLPROG

Добавлено: 08 фев 2019, 23:06
User8
Главная проблема - это то что в флпрог любая созданная переменная - это глобальная переменная. Немного оптимизировать можно, создавая строки с повторяющимися символами и потом объединять их в нужном порядке с помощью блока «сложение строк». Самый простой путь - использовать железо мощнее.

Оптимизация при работе со строками при работе в FLPROG

Добавлено: 09 фев 2019, 00:41
Яйкс
AlexCrane писал(а): 08 фев 2019, 19:22 столкнулся с проблемой неадекватной работы ардуины при превышении использования динамической памяти более 40%.
У меня данный эффект проявился на загрузке 68% динамической памяти (мега2560) в итоге просто добавил вторую мегу в проект, которая заведует исключительно коммуникационными модулями.

Оптимизация при работе со строками при работе в FLPROG

Добавлено: 09 фев 2019, 08:55
Sancho
Изучаем, делаем выводы и свои ПБ :)