相关疑难解决方法(0)

Perl的unpack()是否比substr()更快?

我读过几次unpack()比这更快substr(),特别是随着子串数量的增加.但是,这个基准建议不然.我的基准测试是否存在缺陷,或者是unpack()旧版Perl的保留所谓的性能优势?

use strict;
use warnings;
use Benchmark;

my ($data, $format_string, $n_substrings);

my %methods = (
    unpack => sub { return unpack $format_string, $data },
    substr => sub { return map {substr $data, $_, 1} 0 .. $n_substrings - 1 },
);

for my $exp (1 .. 5){
    $n_substrings = 10 ** $exp;
    print $n_substrings, "\n";
    $format_string = 'a1' x $n_substrings;
    $data          =   9  x $n_substrings;
    Benchmark::cmpthese -2, \%methods;
}
Run Code Online (Sandbox Code Playgroud)

输出(在Windows上):

10
           Rate unpack substr …
Run Code Online (Sandbox Code Playgroud)

perl

14
推荐指数
3
解决办法
4102
查看次数

标签 统计

perl ×1