11、Perl 性能测试与内存使用全解析

Perl性能测试与内存使用解析

Perl 性能测试与内存使用全解析

1. 思考在性能测试中的重要性

在进行性能测试时,如果完全依赖计算机得出的结果而不加以思考,可能会被误导。 Benchmark 模块虽能不断输出数据,但如果不理解测试内容和数据含义,这些数据便毫无用处,甚至可能让人得出错误结论。

以对文件名按修改日期排序的测试为例,原本使用 Benchmark timethese 方法比较两种排序方式:

use Benchmark qw{ timethese };
timethese( -2, {
   Ordinary    =>
      q{ my @results = sort { -M $a <=> -M $b } glob "/bin/*"; },
   Schwartzian =>
      q{ map $_->[0], sort { $a->[1] <=> $b->[1] } map [$_, -M], glob "/bin/*"; },
   });

这段代码存在问题。为了准确比较,测试对象应尽可能相似,但此代码中 “Ordinary” 排序将结果存入 @results 数组,而 “Schwartzian” 排序使用 map() 在空上下文环境中,二者操作不同。并且, glob() 操作开销大,会影响排序结果。

为解决这些问题,可按以下步骤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值