我正在研究内存有限的嵌入式系统。我想找到一种方法来计算运行elf文件时将使用多少内存。
我希望结果接近 vmrss ,我可以使用cat /proc/pid/status
来获取。内存在运行时每时每刻都在变化。所以更接近的结果或下限也是有用的。
假设没有动态内存(如通过malloc)或映射内存(通过mmap)。
答案 0 :(得分:0)
简化假设:
malloc
或mmap
用法通过以上假设,您可以查看readelf -Wl a.out | grep LOAD
,并简单地将PT_LOAD
段大小加在一起作为RSS的上限。
如果您使用共享库,则还需要添加其PT_LOAD
段。但是如果它们被多个二进制文件使用,那么消耗的总系统内存将小于每个进程的RSS总数。同样违反假设2。
违反假设3和4将减少观察到的RSS,而违反5会增加它。