- 締切済み
連想配列のサイズ制限
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]; }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- osamuy
- ベストアンサー率42% (1231/2878)
たとえば、 for ( $k = 0; $k < $ARGV[0]; $k++ ){ $a{ $k } = 'a'; } open( PS, "ps auxw|" ); # psの引数は適宜変える必要があります。 while ( <PS> ){ print if /perl/; } close( PS ); ――みたいなコードをまわして、メモリ使用量の傾向を掴んでみるとか。