2017-10-11 67 views
1

我有一系列在嵌入式系统上运行的bash脚本。 bash脚本包含其他内容,当他们这样做时,它们的内存使用情况似乎就会上升。因此,例如,我有:如何在bash中跟踪内存使用情况

showmem() { 
     echo "[$1] $(ps up $$ | tail -1 | awk '{print $6}')" 
} 

showmem "about to include" 
. foo.sh 
showmem "done include" 

我也得到输出

[about to include] 3356 
[done include] 5244 

请注意,该值是KB。所以,我需要找出其中的内存是怎么回事。起初我以为这是包含文件的实际大小(该文件包含其他文件等),但现在我已经将所有文件大小相加,并且它们不重要。此外,env的输出大小也不会增加太多,所以它不是一个臃肿的环境,并且流程树不显示任何子流程。

是否有任何工具可以告诉我内存被用于什么?有没有办法在bash脚本中的任何时候“刷新”未使用的内存?

(注意:这是很重要的,因为这个特定的bash脚本等待一个事件,并且在任何给定的时间有几个它运行的实例)。

回答

0

也许这是不可能的。 bash本身是非常复杂的,它的内存使用可能不会简单地被它正在运行的脚本所缓冲。