Я создаю приложение протокола IOT поверх TCP.Приложение почти завершено, в настоящее время я тестирую производительность приложения.Приложение будет встроено в аппаратное обеспечение, поэтому использование памяти строго.
Я запустил свое приложение в valgrind и получил очень ужасную статистику использования памяти.Смотри Вэлгринд Скрипшот ниже
У меня есть переменные, объявленные на сервере, эти переменные должны быть доступны для нескольких клиентов (сервер многопоточный),
Ниже показано, какя создаю переменные на стороне сервера
#define SERVER_IS_RUNNING 0
int* server_status = malloc(sizeof(*server_status));
*server_status = SERVER_IS_RUNNING;
Когда клиент запрашивает чтение / запись переменной server_status, значение server_status отправляется обратно клиенту.
Учитывая такую ситуацию,Как я могу освободить память, выделенную для server_status, имея в виду, что сервер будет работать вечно, и клиенты могут подключаться в любой момент времени.Если я освобожу переменную server_variable, она не будет иметь правильного значения, когда клиенты будут пытаться ее прочитать.