0

データセット (または列ベクトル) 内のすべての値に関数変換を適用する (実行時間の点で) 最速の方法は何だろうと思っています。次のコードは準拠しており、より効率的にできるかどうか疑問に思っています。

#!/usr/bin/perl

use 5.10.0;
use String::Nysiis qw(nysiis);

open( my $l,  '<', 'Strings.txt' )          or die "Can't open locations: $!";
open( my $o,  '>', 'NYSIIS.txt' )          or die "Can't open locations: $!";

while ( my $line = <$l> ) {
  my $transform = nysiis($line);
  print "$line,$transform,\n" ;
  print( $o ("$line,$transform"),"\n" );

}
close $o;
4

1 に答える 1

4

いいえ、ただのマイクロです。

  • 自動フラッシュしないでください。
  • ファイル全体をメモリにロードします。
  • nysiis改行を気にしない場合はむしゃむしゃ食べないでください。
  • 2 回印刷しないでください。tee代わりに使用してください。(グッドアドバイス期間。)

並列化することで利益を得ることができます。

于 2013-02-22T02:51:48.933 に答える