Perl - アクセッサ
sub field { shift->{field} } sub field { $_[0]->{field} }
のどちらの方が速いのかはかってみたら、 shift の方が速かった。完全に逆だと思ってた。
#!/usr/bin/env perl use strict; use warnings; use Benchmark qw(cmpthese); package Dummy { sub new { my $class = shift; bless { field => "value" }, $class; } sub _shift { shift->{field}; } sub _arg { $_[0]->{field}; } } my $d1 = Dummy->new; my $d2 = Dummy->new; cmpthese 0, { 'shift' => sub { $d1->_shift }, '$_[0]' => sub { $d2->_arg }, }; __END__ Rate $_[0] shift $_[0] 3185777/s -- -14% shift 3709584/s 16% --