Size: a a a

Анархическая электроника

2019 November 18

D

Dr Zlo in Анархическая электроника
Воха
Есть ESP32 и код на Arduino, использовал много длинных String, но они внутри функций, по идее должна память освобождатся после выхода из функции?, но с каждым циклом heap уменьшается очень сильно. С помощью отладчика и VScode можно посмотреть куда память уходит?
мож фрагментируется?
источник

D

Dr Zlo in Анархическая электроника
как ты смотришь размер кучи?
источник

В

Воха in Анархическая электроника
Dr Zlo
как ты смотришь размер кучи?
ESP.getFreeHeap()
источник

В

Воха in Анархическая электроника
Сомелье
а после функции дальнейшная судьба какая у строки?
Используется в еще двух функциях, потом выход из них. Но память остается занята
источник

В

Воха in Анархическая электроника
Попробую найти причину, если что напишу
источник

С

Сомелье in Анархическая электроника
Вот, уже ближе. т.е. вызываешь String ret = foo(...); ...; foo2(ret) ?
источник

В

Воха in Анархическая электроника
Да
источник

В

Воха in Анархическая электроника
Щас попробую кратко скинуть как работает
источник

С

Сомелье in Анархическая электроника
и в foo2 оно еще куда-то уползает?
источник

В

Воха in Анархическая электроника
Там слишком много копипастить
источник

В

Воха in Анархическая электроника
Сомелье
и в foo2 оно еще куда-то уползает?
Отправляется посредством GET запроса в сеть. Либо ложится в структуру из строк
источник

С

Сомелье in Анархическая электроника
ага, вот и структуру из строк
источник

В

Воха in Анархическая электроника
Точнее пришедшие данные ложатся в структуру
источник

В

Воха in Анархическая электроника
А потом из этой структуры отправляются на сервер
источник

С

Сомелье in Анархическая электроника
Попробуй руками после выкидывания из структуру пнуть деструктор строки
источник

С

Сомелье in Анархическая электроника
или идеологически правильней - из foo возвращать string* и по-человечески delete после ненадобност
источник

МЗ

Мировое Зло in Анархическая электроника
꧁Александр꧂
При старте ноута поднимается до 3,6
Потом плавно падает на 0
Хм. Или Биос или кп
источник

В

Воха in Анархическая электроника
сперва получаем страницу с ответом, второй параметр функции это данные из структуры:

String answer = gst(GAS_ID, sending_line);

парсим её:

parse_settings(answer);

далее по очереди каждую полученную строку из ответа раскладываем структуру:

void apply_pin_settings_from_gs(byte pin_number, String settings_string)

выход из функции, через время повторяется ещё раз
источник

В

Воха in Анархическая электроника
Сомелье
или идеологически правильней - из foo возвращать string* и по-человечески delete после ненадобност
Спасибо
источник

В

Воха in Анархическая электроника
Сомелье
Попробуй руками после выкидывания из структуру пнуть деструктор строки
Спасибо
источник