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

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

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

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

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

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

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

Хочется услышать (увидеть) от знатоков, как оптимизировать работу со строками в FLPROG, если это возможно конечно... :smile427:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

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

Сообщение User8 »

Главная проблема - это то что в флпрог любая созданная переменная - это глобальная переменная. Немного оптимизировать можно, создавая строки с повторяющимися символами и потом объединять их в нужном порядке с помощью блока «сложение строк». Самый простой путь - использовать железо мощнее.
Аватара пользователя
Яйкс
Рядовой
Сообщения: 49
Зарегистрирован: 23 янв 2018, 13:14
Откуда: Москва
Имя: Сергей

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

Сообщение Яйкс »

AlexCrane писал(а): 08 фев 2019, 19:22 столкнулся с проблемой неадекватной работы ардуины при превышении использования динамической памяти более 40%.
У меня данный эффект проявился на загрузке 68% динамической памяти (мега2560) в итоге просто добавил вторую мегу в проект, которая заведует исключительно коммуникационными модулями.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

Изучаем, делаем выводы и свои ПБ :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Ответить

Вернуться в «Спросить у знатоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость