Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.perl.misc > #8675
| 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) |
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 | Next — Previous in thread | Next in thread | Find similar
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