相关疑难解决方法(0)

Schwartzian Transforms什么时候有用?

在阅读" 中级Perl "一书的过程中,我注意到了Schwartzian变换的一个部分,并在练习中尝试了这个例子(9.9.2),但注意到多次运行导致变换花费的时间比正常排序多.这里的代码根据文件大小执行windows\system32目录中的简单文件 -

#!/usr/bin/perl
use strict;
use warnings;

use Benchmark;

my $time = timethese( 10, {
            testA => sub { map $_->[0],     
                        sort {$a->[1] <=> $b->[1]}
                        map [$_, -s $_],
                        glob "C:\\Windows\\System32\\*";
                    },
            testB => sub { sort { -s $a <=> -s $b } glob "C:\\Windows\\System32\\*";
                    },
            }
        );
Run Code Online (Sandbox Code Playgroud)

输出是 -

Benchmark: timing 10 iterations of testA, testB...
     testA: 11 wallclock secs ( 1.89 usr +  8.38 sys = 10.27 CPU) @  0.97/s (n=10)
     testB:  5 wallclock secs …
Run Code Online (Sandbox Code Playgroud)

perl benchmarking transform

9
推荐指数
3
解决办法
633
查看次数

标签 统计

benchmarking ×1

perl ×1

transform ×1