Sorry, I don't see what you got. Is there a screenshot or something ? -----Message d'origine----- De : Mark Kessler [mailto:kesslerconsult...@gmail.com] Envoyé : samedi 19 octobre 2013 01:51 À : Dev@Flex Objet : Re: UID performance
I ran the swf file from your link and I got these... On Fri, Oct 18, 2013 at 7:45 PM, Maurice Amsellem < maurice.amsel...@systar.com> wrote: > I have posted FB project with the source s + compiled SWF. > > https://dl.dropboxusercontent.com/u/12169005/ApacheFlex/TestUIDPerf.fx > p > https://dl.dropboxusercontent.com/u/12169005/ApacheFlex/TestUIDPerf.sw > f > > Algorithm 1= Original > Algorithm 2 = using Array.join() and other optimizations by JMcLean > Algo 3: using single static byteArray (Maurice) > > These are the results I get for 100,000 iterations: > > Original: 2.74s > V2: 2.5s > V3: 1.70s > > Please can you test on your side as well... > > Maurice > > -----Message d'origine----- > De : Maurice Amsellem [mailto:maurice.amsel...@systar.com] > Envoyé : samedi 19 octobre 2013 00:56 > À : dev@flex.apache.org > Objet : RE: UID performance > > I have used a static ByteArray as suggested: much better. > Thanks for the suggestion. > > > -----Message d'origine----- > De : Maurice Amsellem [mailto:maurice.amsel...@systar.com] > Envoyé : samedi 19 octobre 2013 00:49 > À : dev@flex.apache.org > Objet : RE: UID performance > > Sure, I will do that. > > I will also post the source so that you can recompile at your convenience. > > Maurice > > > -----Message d'origine----- > De : Alex Harui [mailto:aha...@adobe.com] Envoyé : samedi 19 octobre > 2013 > 00:13 À : dev@flex.apache.org Objet : Re: UID performance > > I'm a bit surprised that ByteArray.writeByte is faster but maybe > Array.join isn't that fast. I would also like to see a test of a > single static bytearray and resetting it and/or overwriting the old bytes. > > Maybe if you put a SWF with various algorithms in your people.a.o > folder folks can hit it and make sure we all get the same results and > then we'll know which algorithm to check in. > > Thanks for this idea as well. > > -Alex > > On 10/18/13 3:05 PM, "Maurice Amsellem" <maurice.amsel...@systar.com> > wrote: > > >Any answer ? > > > >-----Message d'origine----- > >De : Maurice Amsellem [mailto:maurice.amsel...@systar.com] > >Envoyé : vendredi 18 octobre 2013 14:39 À : dev@flex.apache.org Objet : > >RE: UID performance > > > >Hi, > > > >I shouldn't have mixed the two options, because it's confusing. > > > >Actually, V3 option generates uppercase, exactly as the current UUID, > >and it's 2x faster. > >So let's forget about V4... > > > >Here is the code: > > > > private static const HEX_CHARS:String = "0123456789ABCDEF"; > > private static const DASH:int = 45; // "-" > > > >public static function createUID():String > > { > > var ba:ByteArray = new ByteArray(); > > var i:int; > > var j:int; > > > > for (i = 0; i < 8; i++) { > > ba.writeByte(HEX_CHARS.charCodeAt(Math.random() * 16)); > > } > > > > for (i = 0; i < 3; i++) > > { > > ba.writeByte(DASH); > > for (j = 0; j < 4; j++) > > { > > ba.writeByte(HEX_CHARS.charCodeAt(Math.random() * 16)); > > } > > } > > > > ba.writeByte(DASH); > > > > var time:Number = new Date().getTime(); > > > > var timeString:String = ("0000000" + > >time.toString(16).toUpperCase()).substr(-8); > > ba.writeUTFBytes(timeString); > > > > for (i = 0; i < 4; i++) > > { > > ba.writeByte(HEX_CHARS.charCodeAt(Math.random() * 16)); > > } > > > > return ba.toString(); > > } > > > >-----Message d'origine----- > >De : Justin Mclean [mailto:jus...@classsoftware.com] Envoyé : > >vendredi > >18 octobre 2013 14:34 À : dev@flex.apache.org Objet : Re: UID > >performance > > > >Hi, > > > >> V3: generates the random hex bytes one by one, and writes them to > >> the BA > >> V4: generates 4 or 8 random bytes in one shot, and writes them to > >> the BA (hexa in lowercase, to avoid call toUppercase() ) > >Probably best not too fiddle too much with the UID construction. > >While I can't think of any major issues it would cause there could be > >subtle issues due to seeding of random numbers and the like. > > > >> I don't know if this is acceptable (are we breaking some code if we > >>use lowercase instead of uppercase). > > > >Again can't think of any issues but probably safer if we kept it > >upper case. > > > >Go ahead and post the code it could be interesting/useful to someone. > > > >Thanks, > >Justin > >