perl获取linux缓存的内存号

src*_*ulo 3 linux memory perl caching

我正在写一个perl脚本,我真的想获得当前在我的linux盒子上使用的缓存内存量.当你运行" free -m"时,你得到这个输出:

             total       used       free     shared    buffers     cached
Mem:           496        322        173          0         33        106
-/+ buffers/cache:        183        312
Swap:         1023         25        998
Run Code Online (Sandbox Code Playgroud)

"缓存"下的数字是我想要的值.我一直在使用Linux :: SysInfo,这可以帮助我获得有关我的盒子的大量有用信息,但似乎缺乏缓存内存.有没有人知道perl中的另一个模块或优雅方式来获取我的机器上的缓存内存量?我知道我可以通过运行它来获得它:

my $val = `free -m`;
Run Code Online (Sandbox Code Playgroud)

然后运行正则表达式val,但我更喜欢另一个解决方案,如果存在.谢谢!

Fle*_*exo 6

运行strace free -m显示它正在使用/proc/mem:

open("/ proc/meminfo",O_RDONLY)= 3

cat /proc/meminfo 确认这包含您正在寻找的信息.