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.fxp
>>https://dl.dropboxusercontent.com/u/12169005/ApacheFlex/TestUIDPerf.swf
>>
>>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
>>
>

Reply via email to