【发布时间】:2014-08-06 14:50:24
【问题描述】:
此代码至少在 200M 行的文件上运行。这需要很多时间 我想知道我是否可以改善这个循环的运行时间。
my @bin_lsit; #list of 0's and 1's
while (my $line = $input_io->getline) {
if ($bin_list[$i]) {
$line =~ s/^.{3}/XXX/;
} else {
$line =~ s/^.{3}/YYY/;
}
$output_io->appendln($line);
$i++;
}
【问题讨论】:
-
没用过!你能告诉我怎么做吗?
-
你认为 $input_io 和 $output_io 可以放入内存吗?也许你在 I/O 上浪费时间
-
磁盘 I/O 将成为您的瓶颈,因此只要您正在读取和写入所有 200M 行,我看不出有任何方法可以显着加快速度。你到底想达到什么目的? (不是如何,而是 what)也许有更好的方法,不需要那么多 I/O。
-
$input_io 和 $output_io 只是指针.. 内存使用不是我的问题..
-
0和1的列表从何而来?
标签: performance perl file-io runtime