*nods*

I find that it's often much easier to read when you use for..in and for
each..in rather than regular for. And since you need to have a "var current
= list[i]" or similar as the first line, If you only need an index to
display, or it's 1-based as opposed to 0-based, using a "for [each]..in" and
having the first inner line be "++idx" will be easier to read than a bunch
of statements within your loop that look like:

var current = foo[i+1]

or

msg = "you're at item #" + (i + 1)

If you want to know more about for each and how it works (outside of Arrays
at least), look into flash.Proxy. The documentation is a little unclear at
times on Proxy, so I wrote a couple of posts on using it here:

http://flex.joshmcdonald.info/2008/09/using-proxy-class-part-1_04.html
http://flex.joshmcdonald.info/2008/09/using-proxy-class-part-2.html

* IMHO, YMMV, (code) beauty is in the eye of the beholder, etc... =]

-Josh

On Wed, Dec 10, 2008 at 9:37 AM, Maciek Sakrejda <[EMAIL PROTECTED]>wrote:

> Interesting. I decided to actually try my test above, and on 1000000
> items, the for-each version takes ~50 milliseconds, versus ~25
> milliseconds for the explicitly indexed loop. When doing some actual
> work in the loop (a trace), the numbers are 41.9 seconds for the
> for-each and 41.1 seconds for the indexed for. On a loop with a trace
> with 100 items, both forms take ~5 milliseconds. This is rather
> unscientific, but I don't have the profiler available (will it ever make
> it to Linux, Adobe?).
>
> So yes, it looks like for-each is a lot slower in some cases, but I'll
> maintain it still probably won't make a difference unless you've got a
> massive loop that does very little, or a deeply nested set of loops.
>
> Consider also the readability and maintainability benefits of a
> for-each: unless you need the index, it's just one more place to
> introduce bugs when refactoring, and it's cognitive cruft when trying to
> follow what's going on.
> --
> Maciek Sakrejda
> Truviso, Inc.
> http://www.truviso.com
>
> -----Original Message-----
> From: Alex Harui <[EMAIL PROTECTED]>
> Reply-To: [email protected]
> To: [email protected] <[email protected]>
> Subject: RE: [flexcoders] speed of the "for each" looping
> Date: Tue, 9 Dec 2008 12:30:19 -0800
>
> For each should be much slower than a basic iterator as it has to walk
> the object's properties.
>
>
>
> For each (var p:* in someObject)
>
>
>
> And
>
>
>
> For (var p:String in SomeObject)
>
>
>
> Probably run at the same rate.
>
>
>
> From:[email protected] <[EMAIL PROTECTED]>[mailto:
> [EMAIL PROTECTED] On
> Behalf Of Cato Paus
> Sent: Tuesday, December 09, 2008 5:28 AM
> To: [email protected]
> Subject: [flexcoders] speed of the "for each" looping
>
>
>
>
> Hi, all you experts :)
>
> I'm tying to speed up my application and I use a lot of
>
> exsample
> for (var i:int = 0; i < 5; i++)
> {
> trace(i);
> }
>
> so is the "for each" looping faster ?
>
>
>
>
>
>
> ------------------------------------
>
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Alternative FAQ location:
> https://share.acrobat.com/adc/document.do?docid=942dbdc8-e469-446f-b4cf-1e62079f6847
> Search Archives:
> http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! Groups
> Links
>
>
>
>


-- 
"Therefore, send not to know For whom the bell tolls. It tolls for thee."

Like the cut of my jib? Check out my Flex blog!

:: Josh 'G-Funk' McDonald
:: 0437 221 380 :: [EMAIL PROTECTED]
:: http://flex.joshmcdonald.info/
:: http://twitter.com/sophistifunk

Reply via email to