下面的子例程在我的计算机上执行需要12秒:

sub trans() {
    $trans = "";
    foreach $nuc (@array) {
        foreach $k (keys %hash) {
            if ($nuc eq $k) {
                $w = $hash{$k};
                $trans .= $w;
                last;
            }
        }
    }
}

该代码将继续生成具有$ trans内容的文件。正如我所说,这需要12秒钟。问题是我必须产生256个输出文件......并且它花费的时间太长......

有什么优化的想法吗?

最佳答案

尝试以下

sub trans() {
    $trans = "";
    foreach $nuc (@array) {
            if ($hash{$nuc}) {
                $w = $hash{$nuc};
                $trans .= $w;
            }

    }
}

关于performance - Perl中的慢循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19831030/

10-11 19:38
查看更多