solegaonkar:

If you're not measuring, then you're guessing.

If you're guessing, you're doing it wrong.

Example: If you take a function and make it take half the time, but your program only spends 1% of its time in that function, you've saved 0.5%. Not terribly significant. On the other hand, If you take a different function and make it take half the time, and your program spends 50% of its time in that function, then you've saved 25%. Much better!

So first figure out where your program is spending all its time. Then look at that area and see what you can do to speed it up. Frequently, programs spend most of their time in a very small part of the code, so there's no real benefit in optimizing "everything".

Changing your program everywhere to get a small gain will get you: (a) a small gain, and (b) many chances to introduce errors.

Also, as others have mentioned, you'll often get a *much* higher payoff by finding a better way to do it (algorithm) than polishing what you have a little here and there.

Finally: It's easy enough to go down the rabbit hole and make the code faster than it needs to be. Obviously, faster is better. But spending too much time to make it faster can rob your project of time needed for other tasks. So before you start optimizing, figure out how fast is fast enough. Then when your code hits the benchmark, stop. Otherwise, you may have a very fast, but uselessly late bit of code.

...roboticus

When your only tool is a hammer, all problems look like your thumb.


In reply to Re: Performance improvement by using $_ instead of named variables by roboticus
in thread Performance improvement by using $_ instead of named variables by solegaonkar

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.