执行将函数应用于大型数据集的最快方法

时间:2013-02-22 02:40:55

标签: perl function module performance

我想知道将功能转换应用于数据集(或列向量)中的每个值的最快方式(就执行时间而言)。以下代码符合,我想知道是否可以提高效率。

#!/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;

1 个答案:

答案 0 :(得分:4)

不,只是微观。

  • 不要autoflush。
  • 将整个文件加载到内存中。
  • 如果nysiis不关心换行符,请不要选择。
  • 不要打印两次。请改用tee。 (好建议期。)

你可以通过并行获得收益。