Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Re: Make your classes use their own methods

by petdance (Parson)
on Nov 24, 2003 at 19:48 UTC ( [id://309651]=note: print w/replies, xml ) Need Help??


in reply to Re: Make your classes use their own methods
in thread Make your classes use their own methods

Certainly there can be severe overhead in calling functions unnecessarily. Your example accessor is also not optimized very well: It's doing both read and write, and checking for the difference.

More important is that the programmer know that her use of accessors, in her specific program, is a specific bottleneck. Sure, you might be using accessors in a 100-iteration tight loop, but if you're doing a fetch across the network in between calls to the loop, then that tight loop which may be "inefficient" on its own may be a trivial percentage of execution time.

Rule 1: Premature optimization is the root of all evil.
Rule 2: Unmeasured optimiziation is always premature.

xoxo,
Andy

  • Comment on Re: Re: Make your classes use their own methods

Replies are listed 'Best First'.
Re: Re: Re: Make your classes use their own methods
by Jenda (Abbot) on Nov 24, 2003 at 23:04 UTC

    The only question left is whether not using accessor methods within the class should be called "optimization". Sure it improves the speed, but ... does it make the code harder to read? Does it make the class harder to use? Does it make the maintenance any harder?

    The only thing it does is that it forces you to make changes to the code should you need to use the code in some unexpected way. If you never need to do so ... you gained a lot for nothing, if you do, you only need to do a very reasonable amount of work to support the new use.

    You may need to use your class over the network one day, shouldn't it be done and used as a SOAP service even now?

    Update: Thinking about this some more ... maybe what petdance suggests could sometimes be seen as "premature generalization" :-)

    Jenda
    Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
       -- Rick Osborne

    Edit by castaway: Closed small tag in signature

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (3)
As of 2024-04-25 17:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found