dポイントプレゼントキャンペーン実施中!

INF1というcsvファイルをハッシュに溜め込んで処理するperlを作成しようと考えています。
INF1というcsvファイルが仮に100万行有ろうとも、ハッシュに貯めれる上限は
マシンのメモリに依存すると考えてよろしいのでしょうか?
その際具体的に何MBだとサイズは幾つなどと算出できるものですか?
どなたかご存知の方お願いします。

環境はUNIXでperlはversion 4.0です。

# 関連配列にデータを格納 
%hash = ();
while(<INF1>){
@f = ();
$_ =~ s/\s*$//; #行末の改行コードや空白を取り去る
s/\"*\"//g;
@f = split(/,/, $_);
$key = $f[0].$f[1];
$hash{"$key"} = $f[44]."\t".$f[45]."\t".$f[46]."\t".$f[47]."\t".$f[48]."\t".
$f[49]."\t".$f[50]."\t".$f[51]."\t".$f[52]."\t".$f[53]."\t".
$f[54]."\t".$f[55]."\t".$f[56]."\t".$f[57]."\t".$f[58]."\t".$f[59];
}

A 回答 (1件)

たとえば、


for ( $k = 0; $k < $ARGV[0]; $k++ ){
$a{ $k } = 'a';
}
open( PS, "ps auxw|" ); # psの引数は適宜変える必要があります。
while ( <PS> ){
print if /perl/;
}
close( PS );

――みたいなコードをまわして、メモリ使用量の傾向を掴んでみるとか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!