<紙>さんLOG

「パソコンヲタクの雑記帳」
 PC/Linux系/物理・化学で遊んでいます。
思いついたことを綴っています。

Perl の処理速度(例)

2009年02月20日 | Weblog
昨日までの累計アクセス数=82,229。 ご訪問ありがとうございます。


結局 Perl になりました。」と云うことで、より本格的のものを作ることになりました。


現状は、FORTRAN で動いているが、Perl 一本で済ますことにしたい。
と云うことで、Perl に移植(?)しました。


処理内容は非常に単純なものです。

入力ファイルを一行ずつ読んで、フィールドを並べ替えて出力する。
データは入出力とも英数字だけのテキスト形式である。
各行は固定フォーマットである。
但し、一定行数毎に区切りの行を挿入(出力)する。
処理本体は、数行で済む様な、
掛け算、足し算、数字から英字への変換だけである。


なお、一定行数は約200行で、その組が2万ほどある。
つまり、400万行を処理する。

入力行は120桁程なので、500Mバイト以上のファイルである。
テキストエディタ(vi)では扱えないサイズのものである。


FORTRAN では、殆ど format文で読んで、format文で出力している。

これを、Perl で作りました。これで、Perl 5本目です。


実行して、処理時間を比較しました。
といっても、腕時計か、出力ファイルのタイムスタンプでの計測ですが。


FORTRAN では約12分でした。
Perl では約13分でした。

つまり、このような処理では、
コンパイラ言語に比べて1割程度のオーバヘッド
と云うことでしょうか。

なかなか、優秀なインタプリタですね。

何かの参考になりましたら、幸いです。


見ていただきありがとうございました。
お帰りに投票して頂けると嬉しい。 ⇒ 日記@BlogRanking(「60代~」と「茨城」にエントリ)

人気BlogRanking ⇒ (「インターネット・・・・・」>「ウェブログ」にエントリ)
gooブログに貼れない窓はこちらにあります。

P-NETBANKING ⇒ (「パソコン・・・・・」と「茨城」にエントリ)

最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
Unknown (duck)
2009-02-25 09:03:56
このテストは、ディスクの読み書き性能の影響もあるため、単純に1割程度のオーバーヘッドとはならないと思います。
返信する
duck さんへ (<紙>)
2009-02-25 18:22:11
確かに、ディスクIO時間が大きく影響しますね。

この場合、この結果で FORTRAN をヤメ、Perl 一本で、行くことになりました。
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。