Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 没有mmap2系统调用策略的内存分配?_C_Memory Management_Memory Leaks_Linux Kernel_Strace - Fatal编程技术网

C 没有mmap2系统调用策略的内存分配?

C 没有mmap2系统调用策略的内存分配?,c,memory-management,memory-leaks,linux-kernel,strace,C,Memory Management,Memory Leaks,Linux Kernel,Strace,是否可以在不调用mmap2的情况下分配内存 我在做一个10板的视频播放器,我有一个巨大的内存泄漏。可能在每个帧显示器中。有一个库libvecore处理系统调用,但我们没有源代码 我知道A10不是常见的主题,所以我的问题不是针对A10,而是针对内核内存分配 我试着用:strace-e mmap2./VideoPlayer跟踪该程序 但我对结果感到惊讶。它不调用mmap2,而视频播放器只在启动时调用 但与此同时,我从TOP中看到内存使用情况,我可以看到VideoPlayer正在有争议地分配内存,它在

是否可以在不调用
mmap2
的情况下分配内存

我在做一个10板的视频播放器,我有一个巨大的内存泄漏。可能在每个帧显示器中。有一个库
libvecore
处理系统调用,但我们没有源代码

我知道A10不是常见的主题,所以我的问题不是针对A10,而是针对内核内存分配

我试着用:
strace-e mmap2./VideoPlayer
跟踪该程序

但我对结果感到惊讶。它不调用
mmap2
,而视频播放器只在启动时调用

但与此同时,我从
TOP
中看到内存使用情况,我可以看到VideoPlayer正在有争议地分配内存,它在3分钟内几乎消耗了300 MB


我应该考虑内存泄漏是否在内核中?或者有任何其他动态分配内存的调用?

是的,正常分配内存的方式是通过
brk
系统调用。

是的,正常分配内存的方式是通过
brk
系统调用。

谢谢更新。我认为brk是用来重新定位内存的,对吗?。我也追踪了brk,但在播放视频时没有brk的调用。任何其他功能?您如何确定应用程序正在分配内存?我怀疑你错了,内核只是在缓存文件系统中的数据。
free
命令的输出对于确定内存使用量是完全无用的。感谢您的更新。我认为brk是用来重新定位内存的,对吗?。我也追踪了brk,但在播放视频时没有brk的调用。任何其他功能?您如何确定应用程序正在分配内存?我怀疑你错了,内核只是在缓存文件系统中的数据。
free
命令的输出对于确定内存使用量是完全无用的。