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
命令的输出对于确定内存使用量是完全无用的。