【问题标题】:Memory Allocation without mmap2 system call strace?没有 mmap2 系统调用 strace 的内存分配?
【发布时间】:2012-09-13 04:23:29
【问题描述】:

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

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

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

我尝试使用:strace -e mmap2 ./VideoPlayer 跟踪程序。

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

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

那么我应该考虑内存泄漏在内核中吗?还是有其他动态分配内存的调用?

【问题讨论】:

    标签: c memory-management memory-leaks linux-kernel strace


    【解决方案1】:

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

    【讨论】:

    • 感谢更新。我认为 brk 用于重新分配内存对吗?我也追踪了 brk 但播放视频时没有调用 brk 。还有其他功能吗?
    • 您如何确定应用程序正在分配内存?我怀疑你错了,内核只是从文件系统缓存数据。 free 命令的输出对于确定内存使用完全没有用处。
    猜你喜欢
    • 1970-01-01
    • 2011-09-25
    • 2020-05-18
    • 1970-01-01
    • 2012-02-26
    • 2019-04-02
    • 2019-11-10
    • 2016-08-06
    • 1970-01-01
    相关资源
    最近更新 更多