Go James! Thanks for doing the due-diligence on this one. I read the thread and it was somethin I had not heard of before.
Thanks for clearing it up. Regards, Bjorn Schultheiss -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of JOR Sent: Tuesday, 19 September 2006 1:23 PM To: Flashcoders mailing list Subject: Re: [Flashcoders] Find item in array Steven Sacks | BLITZ wrote: > It's the fastest because: > > Pre-decrementation (--i) is faster than post-decrementation (i--) I don't see why that would be. Both "var i=1;i--;" and "var i=1;--i;" compile down to the exact same 8 lines of p-code: _constantPool "i" _push "i" 1 _var _push "i" "i" _getVariable _decrement _setVariable _end So i don't see how one can be faster than the other. Maybe in other languages this is the case? > And substraction (- (-1) is faster than addition (+ 1). > I ran numerous tests using loops of 1 million on this but was unable to conclude one way or the other because roughly half the time one method was faster than the other. differences ranged from 1 millisecond to 175 milliseconds in both directions. My only take on my results is that they are at least negligably similar. > They are faster because it's less code that gets produced when you > compile. > http://flasm.sourceforge.net/#optimization > This isn't true. (i--) is one less line of p-code (and 9 less bytes of data) than (--i -(-1)) because it isn't doing the extra calculation of subtraction like I mentioned in my email. Take a look at the p-code: var i:Number = 1; while (i--) { trace(i); } _constantPool "i" _push "i" 1 _var #4 _push "i" _getVariable _push "i" "i" _getVariable _decrement _setVariable _not _if true goto #16 _push "i" _getVariable _trace _jump to #4 #16 _end ------------------------------ var i:Number = 1; while (--i -(-1)) { trace(i); } _constantPool "i" _push "i" 1 _var #4 _push "i" "i" _getVariable _decrement _storeRegister 0 _setVariable _push register0 4294967295 _subtract _not _if true goto #17 _push "i" _getVariable _trace _jump to #4 #17 _end > For most cases, it's a matter of milliseconds or even less, which isn't > that big a deal, but I use it anyway because it's a good habit to have > and it makes my code logic work with that in mind always so when it does > make a difference in seconds, it's already there. > I agree about it not being a big deal, but I prefer the (i--) method over (--i -(-1)) since I find it easier to read. -- James James O'Reilly www.jamesor.com _______________________________________________ [email protected] To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com _______________________________________________ [email protected] To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com

