C Управление памятью в клиент-серверном приложении. - PullRequest
0 голосов
/ 07 июня 2018

Я создаю приложение протокола IOT поверх TCP.Приложение почти завершено, в настоящее время я тестирую производительность приложения.Приложение будет встроено в аппаратное обеспечение, поэтому использование памяти строго.

Я запустил свое приложение в valgrind и получил очень ужасную статистику использования памяти.Смотри Вэлгринд Скрипшот нижеValgrind memory profiler

У меня есть переменные, объявленные на сервере, эти переменные должны быть доступны для нескольких клиентов (сервер многопоточный),

Ниже показано, какя создаю переменные на стороне сервера

#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, она не будет иметь правильного значения, когда клиенты будут пытаться ее прочитать.

...