【发布时间】:2013-08-15 00:55:45
【问题描述】:
我有一个 perl 脚本,它会检查几个 gig 的文件并生成报告。
为了计算百分位数,我正在执行以下操作
my @values = 0;
while (my $line = <INPUTFILE>){
.....
push(@values, $line);
}
# Sort
@values = sort {$a <=> $b} @values;
# Print 95% percentile
print $values[sprintf("%.0f",(0.95*($#values)))];
这显然将所有值预先保存在一个数组中,然后计算百分位数,这可能会占用大量内存(假设有数百万个值),是否有更节省内存的方法?
【问题讨论】:
标签: performance perl memory percentile