Practice of Programming

プログラム とか Linuxとかの話題

Text::Parts 0.07 をリリース

Text::Parts 0.07
0.06も上げたのですが、微妙なところがあって、すぐに0.07をリリースしてしまった。

変わったところ。

Text::Partsにwrite_filesメソッド追加。

  $s->write_files('file%d.csv', num => 4);

みたいな感じ。
# 0.06で追加したけど、0.07でインターフェースを変えてしまいました

Text::Parts::Partにwrite_fileメソッド追加。

 foreach my $part ($s->split(num => 4)) {
    $part->write_file("filename" . $i++ . ".csv");
 }

Text::Parts::Partにallメソッド追加

 foreach my $part ($s->split(num => 4)) {
     my $all = $part->all; # $partの範囲全部
     # ...
 }

ちなみに、実装順番は、紹介順の逆でした。


Parallel::ForkManagerと一緒に使う例も書いていることだし、実際試してみよう、と思って試してみたのですが、
スピードはforkしても、しなくても一緒でした。無駄に並列に動いているのでCPUの損です!
同一ディスク上だから、スピード上がんないよってことかな。RAID上だったら、もしかしたら意味あるかもしれません。

追記: もちろん、ループ内での処理が非常に遅い(大量データをDBへinsertとか)なら並列実行に意味はあるかと思います。
ちなみに、3Gのファイルを40個に分割して書きだすのは、2分くらいかかりました(読み書きとも同一HDD)。