- 论坛徽章:
- 0
|
use strict;
use warnings;
use File::Spec;
use Benchmark;
my $str = 'Hello, World' x 1000000;
open(NULL, ">", File::Spec->devnull);
timethese(100, {
'print $str, "\n"' => sub { print NULL $str, "\n"},
'print "$str\n"' => sub { print NULL "$str\n"},
'print $str . "\n"' => sub { print NULL $str . "\n"},
});
# Windows上跑的, 结果如下:
# Benchmark: timing 100 iterations of print "$str\n", print $str . "\n", print $str, "\n"...
# print "$str\n": 14 wallclock secs (12.46 usr + 0.18 sys = 12.64 CPU) @ 7.91/s (n=100)
# print $str . "\n": 15 wallclock secs (12.60 usr + 0.18 sys = 12.78 CPU) @ 7.83/s (n=100)
# print $str, "\n": 11 wallclock secs (10.45 usr + 0.12 sys = 10.57 CPU) @ 9.47/s (n=100)
# 比较明显的是print $str, "\n"最快, 而其余2种方法不相上下(多次测试中这2种各有快慢, 可忽略差异).
|
|
|