程序写在C++
on上X86_64 Linux 2.6.32.12
,有两种情况,一种情况会为每个注入的文件生成一个文件,并通过发送出去UDP(Version A)
;而另一种情况不会生成文件,直接通过 . 发送注入的文件UDP(Version B)
。
===============版本A统计图============================ http://i .stack.imgur.com/8bxI5.png
================VersionB 静态图=========================== http:// i.stack.imgur.com/wEnKc.png
我已经使用valgrind
验证了这两种情况,报告相同,没有看到任何内存泄漏。这是由linux内核内存映射引起的吗?测试机有64G
内存。这是memory leak
吗?
更新信息:
在 中Version A
,我们使用UNIX socket
将原始文件内容发送到另一个应用程序,然后接收处理结果生成所需的文件。如图所示,物理内存将增加。我试过另一种情况,不通过Unix套接字发送文件,使用system
函数,调用另一个应用程序生成需要的文件,显示内存不会增加。似乎新生成的文件不是问题,它是由 Unix 套接字引起的。我们使用套接字池,我使用lsof
,没有打开额外的套接字。难道Unix socket
会占用内存?