你好,我有一个简单的脚本,它接受一个文件并在其上运行另一个Perl脚本。该脚本对当前文件夹中的每个图片文件执行此操作。这在一台带有2个四核Xeon处理器、16GB内存的RedHat Linux机器上运行。
第一个脚本work.pl基本上调用了magicplate.pl并传递了一些参数和要处理的文件名给magicplate.pl。 Magic Plate需要大约一分钟才能处理完每个图像。由于work.pl正在执行相同的功能超过100次,并且因为系统有多个处理器和内核,所以我考虑将任务分割成多个部分,以便可以并行运行多次。如果必要,我可以将图像拆分到不同的文件夹中。任何帮助都将非常感激。谢谢
以下是目前的进展:
use strict;
use warnings;
my @initialImages = <*>;
foreach my $file (@initialImages) {
if($file =~ /.png/){
print "processing $file...\n";
my @tmp=split(/\./,$file);
my $name="";
for(my $i=0;$i<(@tmp-1);$i++) {
if($name eq "") { $name = $tmp[$i]; } else { $name=$name.".".$tmp[$i];}
}
my $exten=$tmp[(@tmp-1)];
my $orig=$name.".".$exten;
system("perl magicPlate.pl -i ".$orig." -min 4 -max 160 -d 1");
}
}