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

Строки в FLPROG

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#1

Сообщение AlexCrane » 08.02.2019{, 19:22}

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

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

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

Более оптимальная такого вида
001.jpg
001.jpg (82.3 КБ) 452 просмотра
-

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

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

User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12.06.2017{, 14:44}
Репутация: 103
Имя: Евгений

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

#2

Сообщение User8 » 08.02.2019{, 23:06}

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

Аватара пользователя
Яйкс
Рядовой
Сообщения: 49
Зарегистрирован: 23.01.2018{, 13:14}
Репутация: 5
Откуда: Москва
Имя: Сергей

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

#3

Сообщение Яйкс » 09.02.2019{, 00:41}

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

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#4

Сообщение Sancho » 09.02.2019{, 08:55}

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

Ответить

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