:하위 루틴 인수가 외부 변수보다 느리게 사용되는 이유는 무엇입니까? 다음 코드를 실행
use strict;
use warnings;
use Benchmark;
my $defaultArray = [1,2,3,4];
sub VARIABLE {
my $arrayref = @_ ? $_[0] : $defaultArray;
return $arrayref->[0].$arrayref->[1].$arrayref->[2].$arrayref->[3];
}
Benchmark::cmpthese(
-10,
{
VARIABLE_DEFAULT => sub { VARIABLE() },
VARIABLE_NODEFAULT => sub { VARIABLE([4,3,2,1]) },
}
);
를 내가 얻을 다음 벤치 마크 결과 :
Rate VARIABLE_NODEFAULT VARIABLE_DEFAULT
VARIABLE_NODEFAULT 313631/s -- -74%
VARIABLE_DEFAULT 1210501/s 286% --
이유는 무엇 NODEFAULT 버전 순전히 DEFAULT 하나보다 느리게?
다른 주제를하지만,이 작업을 수행 할 수 있다는 것을 잊지 마세요 : 다음과 같이 비교 '' ', @ $ arrayref' 가입 할 수 있습니다. – FMc