C客户端服务器应用程序中的内存管理

时间:2018-06-07 10:03:24

标签: c memory-management memory-leaks valgrind

我正在TCP上构建IOT协议应用程序。该应用程序几乎完成, 我目前正在对应用程序的性能进行基准测试。应用程序将嵌入到硬件中,因此内存使用严格。

我在valgrind内运行了我的应用程序并获得了非常可怕的内存使用情况统计信息。 见下面的valgrind screeshot。 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,当客户端尝试读取它时,它将没有正确的值。

0 个答案:

没有答案