Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.perl.misc > #8675

Re: this should work

Newsgroups comp.lang.perl.misc
Subject Re: this should work
References <krkm21$19jd$1@news.ntua.gr> <87li5dclp5.fsf@sapphire.mobileactivedefense.com> <3q63bax8mr.ln2@goaway.wombat.san-francisco.ca.us> <87k3kxasym.fsf@sapphire.mobileactivedefense.com>
From Ben Morrow <ben@morrow.me.uk>
Organization morrow.me.uk
Date 2013-07-11 21:58 +0100
Message-ID <hsi3ba-va22.ln1@anubis.morrow.me.uk> (permalink)

Show all headers | View raw


Quoth Rainer Weikusat <rweikusat@mssgmbh.com>:
> Keith Keller <kkeller-usenet@wombat.san-francisco.ca.us> writes:
> > On 2013-07-11, Rainer Weikusat <rweikusat@mssgmbh.com> wrote:
> >>
> >> because the 'my $tmp' is invariant code: It's effective result never
> >> changes throughout the loop.
> >
> > This strikes me as premature optimization.
> 
> 'Premature optimization' is a term which originally referred to the idea
> of trying to write an 'optimal' machine-language programming 'from the
> start', instead of concentrating on writing a working machine-language
> program first and then - possibly - transform that into an
> also-working but faster machine-language program and this in the
> context of highly 'irregular' CISC-architecture as they were (still)
> common in the 1970s where a lot of relatively 'bizarre' ways to
> perform semantically identical operations in different ways actually
> existed and it makes a hell lot of sense in this context.
> 
> It was never meant to be a universal justification for "But I don't
> want to think about that!" and certainly also not for "But I don't
> want to change my habits!"

This is not about habits: anyone who's been here (or anywhere else
programming is taught) for a while will know that getting beginners to
understand the value of proper scoping is not easy. It's about
cleanliness: the value assigned to $tmp is not needed outside of one
iteration of the loop, so it should not exist outside that scope.

> > Unless I know my program is
> > spending too much time doing my $tmp = 'ar!'; inside the for loop, I
> > would much prefer to keep $tmp properly scoped and initialized inside
> > the loop.
> 
> It is 'properly scoped' in the second example because the variable
> stays (logically) alive for as long as it is going to be used and
> 'improperly scoped' in the first because (again, logically) it keeps
> being destroyed and recreated (this is supposed to be a demonstration
> that 'proper' means nothing on its own).

Yes, Humpty Dumpty, you can make words mean whatever you want; but that
doesn't change anything. The values in $tmp in the different iterations
of the loop are logically unrelated, so they should be in logically
distict variables; if perl in fact chooses to store them in the same
physical piece of memory this is an invisible optimisation.

> Unless you are having a serious out of memory problem,
> 'micro-optimizing' your code such that each object has the shortest
> possible livetime can also be considered 'a premature optimization',
> especially as it might not even help, as in this example.

Both the forms under discussion use exactly the same amount of memory at
all times (at least as long as $tmp only has an IV part), except for one
32bit value pushed onto the save stack.

Ben

Back to comp.lang.perl.misc | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

this should work "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-11 01:08 +0300
  Re: this should work Jim Gibson <jimsgibson@gmail.com> - 2013-07-10 15:49 -0700
    Re: this should work George Mpouras <nospam.gravitalsun.noadsplease@hotmail.noads.com> - 2013-07-11 09:42 +0300
      Re: this should work tmcd@panix.com (Tim McDaniel) - 2013-07-11 08:02 +0000
        Re: this should work Ben Morrow <ben@morrow.me.uk> - 2013-07-11 12:45 +0100
          Re: this should work George Mpouras <nospam.gravitalsun.noadsplease@hotmail.noads.com> - 2013-07-11 15:03 +0300
            Re: this should work "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2013-07-11 14:52 +0200
              Re: this should work George Mpouras <nospam.gravitalsun.noadsplease@hotmail.noads.com> - 2013-07-11 16:01 +0300
                Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-11 14:29 +0100
        Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-11 14:27 +0100
          Re: this should work Peter Makholm <peter@makholm.net> - 2013-07-11 15:50 +0200
      Re: this should work Jürgen Exner <jurgenex@hotmail.com> - 2013-07-11 03:34 -0700
        Re: this should work George Mpouras <nospam.gravitalsun.noadsplease@hotmail.noads.com> - 2013-07-11 13:55 +0300
          Re: this should work Peter Makholm <peter@makholm.net> - 2013-07-11 13:57 +0200
          Re: this should work Shmuel (Seymour J.) Metz <spamtrap@library.lspace.org.invalid> - 2013-07-11 09:10 -0400
            Re: this should work Ben Morrow <ben@morrow.me.uk> - 2013-07-11 21:35 +0100
    Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-11 10:32 +0100
      Re: this should work Ben Morrow <ben@morrow.me.uk> - 2013-07-11 12:51 +0100
        Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-11 13:42 +0100
          Re: this should work Ben Morrow <ben@morrow.me.uk> - 2013-07-11 16:23 +0100
            Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-11 17:17 +0100
              Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-11 18:08 +0100
              Re: this should work Ben Morrow <ben@morrow.me.uk> - 2013-07-11 21:48 +0100
          Re: this should work Keith Keller <kkeller-usenet@wombat.san-francisco.ca.us> - 2013-07-11 10:32 -0700
            Re: this should work Jürgen Exner <jurgenex@hotmail.com> - 2013-07-11 10:48 -0700
              Re: this should work "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-11 21:38 +0300
              Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-11 23:08 +0100
            Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-11 18:48 +0100
              Re: this should work Charles DeRykus <derykus@gmail.com> - 2013-07-11 12:03 -0700
                Re: this should work Ben Morrow <ben@morrow.me.uk> - 2013-07-11 22:02 +0100
                Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-11 23:06 +0100
                Re: this should work Ben Morrow <ben@morrow.me.uk> - 2013-07-12 01:04 +0100
                Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-15 13:41 +0100
                Re: this should work Ben Morrow <ben@morrow.me.uk> - 2013-07-15 14:07 +0100
                Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-15 15:05 +0100
                Re: this should work Ben Morrow <ben@morrow.me.uk> - 2013-07-15 21:02 +0100
                Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-15 23:58 +0100
                Re: this should work tmcd@panix.com (Tim McDaniel) - 2013-07-15 17:23 +0000
                Re: this should work Charlton Wilbur <cwilbur@chromatico.net> - 2013-07-15 15:40 -0400
              Re: this should work Ben Morrow <ben@morrow.me.uk> - 2013-07-11 21:58 +0100
                Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-11 23:17 +0100
                [OT] scoping Ivan Shmakov <oneingray@gmail.com> - 2013-07-12 07:50 +0000
                Re: [OT] scoping aka 'new holes in old shoes' Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-12 11:53 +0100
                [OT] engineering Ivan Shmakov <oneingray@gmail.com> - 2013-07-15 11:37 +0000
                Re: [OT] engineering Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-16 21:49 +0100
                Re: [OT] engineering Ivan Shmakov <oneingray@gmail.com> - 2013-07-17 09:27 +0000
                Re: [OT] engineering Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-17 15:53 +0100
                Re: [OT] engineering Ivan Shmakov <oneingray@gmail.com> - 2013-07-22 10:36 +0000
                Re: [OT] engineering Shmuel (Seymour J.) Metz <spamtrap@library.lspace.org.invalid> - 2013-07-23 06:43 -0400
                Re: [OT] engineering Ivan Shmakov <oneingray@gmail.com> - 2013-07-22 10:38 +0000
                Re: [OT] engineering Rui Maciel <rui.maciel@gmail.com> - 2013-07-26 10:09 +0100
                Re: [OT] scoping "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2013-07-12 14:58 +0200
                Re: [OT] scoping Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-12 15:50 +0100
                Re: [OT] scoping Shmuel (Seymour J.) Metz <spamtrap@library.lspace.org.invalid> - 2013-07-12 13:34 -0400
                Re: [OT] scoping Ben Morrow <ben@morrow.me.uk> - 2013-07-12 22:04 +0100
                Re: [OT] scoping Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-13 13:13 +0100
                Re: [OT] scoping John Black <jblack@nospam.com> - 2013-07-13 20:01 -0500
                Re: [OT] scoping Ben Morrow <ben@morrow.me.uk> - 2013-07-14 03:24 +0100
                Re: [OT] scoping "Dr.Ruud" <rvtol+usenet@xs4all.nl> - 2013-07-14 10:49 +0200
                Re: [OT] scoping Ben Morrow <ben@morrow.me.uk> - 2013-07-14 13:13 +0100
                Re: [OT] scoping "Dr.Ruud" <rvtol+usenet@xs4all.nl> - 2013-07-14 17:02 +0200
                Re: [OT] scoping Ben Morrow <ben@morrow.me.uk> - 2013-07-14 22:21 +0100
                Re: [OT] scoping "Dr.Ruud" <rvtol+usenet@xs4all.nl> - 2013-07-15 02:21 +0200
                Re: [OT] scoping Xho Jingleheimerschmidt <xhoster@gmail.com> - 2013-07-14 17:04 -0700
                Re: [OT] scoping Ben Morrow <ben@morrow.me.uk> - 2013-07-15 14:12 +0100
                Re: [OT] scoping tmcd@panix.com (Tim McDaniel) - 2013-07-14 15:11 +0000
                Re: [OT] scoping "Dr.Ruud" <rvtol+usenet@xs4all.nl> - 2013-07-14 17:34 +0200
                Re: [OT] scoping Xho Jingleheimerschmidt <xhoster@gmail.com> - 2013-07-14 15:34 -0700
                Re: [OT] scoping Ben Morrow <ben@morrow.me.uk> - 2013-07-15 14:27 +0100
                Re: [OT] scoping John Black <jblack@nospam.com> - 2013-07-14 23:48 -0500
                Re: [OT] scoping Martijn Lievaart <m@rtij.nl.invlalid> - 2013-07-13 12:14 +0200
      Re: this should work David Harmon <source@netcom.com> - 2013-07-11 10:02 -0700
        Re: this should work Ben Morrow <ben@morrow.me.uk> - 2013-07-11 22:04 +0100
          Re: this should work David Harmon <source@netcom.com> - 2013-07-12 09:34 -0700
            Re: this should work Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-12 18:16 +0100
        Re: this should work "Dr.Ruud" <rvtol+usenet@xs4all.nl> - 2013-07-12 15:44 +0200
          Re: this should work David Harmon <source@netcom.com> - 2013-07-12 15:53 -0700
  Re: this should work Shmuel (Seymour J.) Metz <spamtrap@library.lspace.org.invalid> - 2013-07-11 09:14 -0400
    Re: this should work "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-11 19:45 +0300

csiph-web