【发布时间】:2015-06-15 20:34:10
【问题描述】:
我总结了当前进程的映射值。在一段时间内重复此操作。将结果保存在文件中,然后我将其绘制出来。我觉得有点奇怪的是,smaps 不同字段的值似乎或多或少呈线性增加。我还使用 c++ 中的新命令分配了一些内存。我释放了内存,但没有明显的区别。我正在接受田野里的一些上下运动。不幸的是,没有任何上下运动。
这种行为是正常的还是我做错了什么?但我很确定,我的解析器可以工作,因为我用 pmap 进行了检查。我的解析器和 pmap 为同一进程返回相同的结果。
【问题讨论】:
-
从操作系统获取内存需要付出努力。该过程不会将其退回并再次要求它,而是将其保留在身边。对于碎片,无论如何只能有时返回它。要查找泄漏,请使用查找泄漏的实用程序,而不是 smap。
-
但我的目标是计算 USS 和 PSS。所以我认为 smap 是这两个值的正确来源。你同意?但是如何处理它只是增加的事实呢?
标签: c++ linux memory-management