tips: perl スクリプトが使うメモリ量を調べる方法 - Qiita
ちょうど書こうと思っていたネタが投稿されていたので。
メモリー量とは
RSSとVSSというのがあって
RSSは実際に確保した量、VSSは割り当てたけど使っていない量というもの。
本稿ではRSSの値を取る。
詳しくは以下リンク先他を参照のこと。(詳しくはggr)
Linuxトラブルシューティング探偵団 番外編(2):減り続ける利用可能メモリ……そしてついにリブート! (2/3) - @IT
プロセスが現在使っているメモリー量
tips: perl スクリプトが使うメモリ量を調べる方法 - Qiita
の通りである。
$ cat a.pl
#!/usr/bin/perl
my $a = "x" x 10_000_000;
while (1) {
sleep 1;
}
$ ./a.pl &
$ ps -o pid,rss,cmd -C a.pl
PID RSS CMD
8361 21372 /usr/bin/perl ./a.pl
プロセスが使ったメモリー量
こちらが本題である。
使うのはpsでなく種も仕掛けもないtimeコマンド。ただしフルパス指定。
(bashではtimeは組み込み関数になるので)
プログラム側に仕込みがいらないのがメリット。
$ cat b.pl
#!/usr/bin/perl
my $a = "x" x 10_000_000;
$ /usr/bin/time -f "\n%M" ./b.pl
21372
ちからつきた。おやすみなさい。