Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: (Ovid) Re: Improving the efficiency of this piece of code

by MeowChow (Vicar)
on Feb 26, 2001 at 01:11 UTC ( [id://60781]=note: print w/replies, xml ) Need Help??

in reply to (Ovid) Re: Improving the efficiency of this piece of code
in thread Improving the efficiency of this piece of code

I don't believe that the overhead is in exporting the functions, but in the ability for the methods to "swing both ways".

Every dual-nature (ie. functional and OO) method in CGI starts off by calling an internal sub, self_or_default, to determine the calling style. If the method was called as an export, self_or_default has to do the additional task of unshifting the default CGI object ($Q in the source) onto @_. This negates any performance gain from not having the method-call overhead:

use strict; use warnings; use Benchmark qw(cmpthese); use CGI qw(:standard); my $q = new CGI; cmpthese (-3, { method => sub { $q->header; }, direct => sub { header; } }); ### RESULTS #### Rate direct method direct 14483/s -- -4% method 15106/s 4% --
So it appears as if OO calling style on CGI is indeed faster in practice.
               s aamecha.s a..a\u$&owag.print

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://60781]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (2)
As of 2024-06-25 03:08 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.