メモリー計測スクリプト

tokuhiromさんの簡易シェルでメモリーの使用量をはかるっていうアイデアがいいなぁと思って試してみました。
http://d.hatena.ne.jp/tokuhirom/20081206/1228567506

ただ、GTopが手元のUbuntuでインストールできず(GTopが2からインターフェースが変わってGTop.pmがインストールできなくなってる模様)ので、Devel::Memusedを使ってちょっと書き換えてみました。

#!/usr/bin/env perl
use strict;
use warnings;
use Devel::MemUsed;
use Term::ReadLine;

my $term = Term::ReadLine->new('Memory Shell');

while ( defined (my $line = $term->readline('perl> ')) ) { 
    last unless $line;

    my $pid = fork();
    if ($pid) {
        # parent
        wait();
    } elsif (defined $pid) {
        my $memused  = Devel::MemUsed->new;
        eval $line;
        print "$memused\n";
        exit();
    } else {
        die "fork error : $!";
    }   
}

http://gist.github.com/33027

簡易シェル使ったツール用意するのは使いどころが意外とありそうだなぁと。

# memused->resetの挙動が期待してる挙動と違うので、再度書き換え。