I tried already and the results are consistent. Here is the link:
https://dl.dropboxusercontent.com/u/12169005/ApacheFlex/TestUIDPerf_release.swf Maurice -----Message d'origine----- De : Alex Harui [mailto:aha...@adobe.com] Envoyé : samedi 19 octobre 2013 01:56 À : dev@flex.apache.org Objet : Re: UID performance Actually, I thought of one more test that needs to be run which I don't have time to do right now: Release player with release SWF. Sometimes you can get very different results on the debugger players. Thanks, -Alex On 10/18/13 4:53 PM, "Alex Harui" <aha...@adobe.com> wrote: >Yup, V3 wins on mac and windows for me. > >Thanks for doing it. > >-Alex > >On 10/18/13 4: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 >> >