> > any chance you'd accept a patch if I'm able to make it work?
sure! just prove it work, fyi, do try this also http://businessintelligence.me/projects/performance_tester/performanceTester.html cheer ;D 2009/1/27 Justin Lawerance Mills <[email protected]> > > Did you try using Lambda.map in haxe for sake of argument/comparison, its > possible to not use a loop at all, but I guess its really looping just in > more optimal way. For instance I was creating a simple tweener class the > ot]her day, and used Lambda to map the properties to their new values, its > just a concept class so it works but is v.basic but if anyone wants it to > get more grip on mapping i can send it. Not currently using away, but Rob > mentioned he was looking at haXe. > > cheer justin > > > On 26 Jan 2009, at 22:05, simplychaos wrote: > > >> I was wondering if there are any plans to use linked lists for >> iterating through all the various meshes, primitives, lights, etc... ? >> It seems like Dictionary is used for everything, but according to my >> speed tests linked lists are quite a bit faster. I'm not sure how much >> of a boost it would really give but for 5,000,000 iterations here are >> my numbers: >> >> linked list: 37ms >> for loop: 67ms >> dictionary: 179ms >> while: 38ms >> >> Here's the iteration code I'm using: The array, linked list, and >> dictionary are already built before timing. obj is a typed variable >> that has a "nxt" variable to point to the next object in the list. >> These numbers are from FP10 release version; numbers are similar with >> debug version, but all slightly slower. >> >> var time:uint = getTimer(); >> for (i=0; i < len; ++i) { >> obj = list[i]; >> } >> time = getTimer() - time; >> trace("for loop: " + time); >> debugText.appendText("for loop: " + time + "\n"); >> >> time = getTimer(); >> obj = list[0]; >> var val:Number = 0; >> while (obj = obj.nxt) { } >> >> time = getTimer() - time; >> trace("linked list: " + time); >> debugText.appendText("linked list: " + time + >> "\n"); >> >> >> time = getTimer(); >> for each (obj in dict) { >> >> } >> time = getTimer() - time; >> trace("dictionary: " + time); >> debugText.appendText("dictionary: " + time + "\n"); >> >> time = getTimer(); >> i = 5000000; >> while (i--) { >> obj = list[i]; >> } >> time = getTimer() - time; >> debugText.appendText("while: " + time + "\n"); >> >> This may not have a huge impact, but I thought I'd throw it out there. >> > > -- katopz http://www.sleepydesign.com
