in reply to Re: Re: Efficiency Question
in thread Efficiency Question

You should also consider that method invocation on a blessed reference is much faster than method invocation on class name.

There is rather little performance overhead on object method calls. In addition, the two calls you suggest are not really an apples-apples comparison, since the class method passes the class name as a param, and the direct invocation does not (if factored in, the direct invocation becomes about 20% slower than shown below).

package Foo; use strict; use warnings; use Benchmark qw(cmpthese); sub new { bless {}, shift; } sub meth { 1 } my $obj = new Foo; cmpthese (-3, { class => sub { Foo->meth($obj) }, method => sub { $obj->meth() }, direct => sub { Foo::meth() }, }); ### results Rate class method direct class 464126/s -- -50% -64% method 923914/s 99% -- -28% direct 1289819/s 178% 40% --
   MeowChow                                   
               s aamecha.s a..a\u$&owag.print