使用している自プロセスのメモリサイズを取得する方法

Devel::Sizeでは、変数のメモリサイズしか取れないので。
プログラム全体のサイズは取れないので、自プロセスの実際に使っているメモリを取る方法。
perlだけでも結構メモリを喰っています。モジュールを入れれば入れるほどメモリも食うでしょう。

#!/usr/bin/perl
# 1ページ 4kbの環境の場合

sub get_memsize{
open(IN,"/proc/$$/statm");
my @t=split(/ /,);
close(IN);
return $t[1]*4;
}

print "VmRSS=",get_memsize(),"kB\n";


# statm
# size プログラムの合計サイズ:ページ数
# resident メモリ上にある部分のサイズ:ページ数
# shared 共有されているページ数
# trs コードのページ数
# drs データ/スタックのページ数
# lrs ライブラリのページ数
# dt dirtyページ


実行結果

VmRSS=1748kB