10 items time1::: 0.00006680000000000005 *time1a: 0.00003260000000000003* time2::: 0.00006320000000000005 time3::: 0.000052400000000000034
100 items time1::: 0.00004920000000000003 *time1a: 0.00002900000000000001*4 time2::: 0.00004500000000000003 time3::: 0.000038400000000000025 1000 items time1::: 0.000045 *time1a: 0.0000262* time2::: 0.000042000000000000004 time3::: 0.0000318 On Tue, Feb 23, 2010 at 5:16 PM, Thierry bela nanga <bna...@gmail.com>wrote: > from the mooshell, > > Win Vista64 FF3.6 > > time1::: 0.000049600000000000006 > time1a: 0.0000284 > time2::: 0.000044399999999999995 > time3::: 0.0000348 > > > On Tue, Feb 23, 2010 at 4:08 PM, Yann Leretaille < > yleretai...@googlemail.com> wrote: > >> could somebody test this one with 100,100 & 10 Elements? >> >> My results: >> n >> FF 3.6, Linux, 64Bit FF 2.5.8,WinXP, 32Bit >> 1000 >> time1::: 0.000033 >> *time1a: 0.000020* >> time2::: 0.000030 >> time3::: 0.000024time1::: 0.000055 >> *time1a: 0.000036* >> time2::: 0.000048 >> time3::: 0.000038 >> 100 >> time1::: 0.000045 >> *time1a: 0.000027* >> time2::: 0.000040 >> time3::: 0.000032time1::: 0.000058 >> *time1a: 0.000037* >> time2::: 0.000051 >> time3::: 0.000040 >> 10 >> time1::: 0.000052 >> *time1a: 0.000026* >> time2::: 0.000045 >> time3::: 0.000042**time1::: 0.000077 >> *time1a: 0.000046* >> time2::: 0.000072 >> time3::: 0.000059 >> >> >> >> http://mootools.net/shell/J7ySB/ >> >> On Mon, Feb 22, 2010 at 17:45, Yann Leretaille < >> yleretai...@googlemail.com> wrote: >> >>> I understand your point. Actually, benchmarking seems particualry >>> difficult for this one. >>> I created a mooshell wich creates a list with 1000 Elements, wich have >>> 0-3 classes, with or without base_class. >>> The list ist cloned for each benchmark and i ran each methos is runned 10 >>> times. >>> Here are the results: >>> >>> >>> - Method1 (my method): >>> - return this.set('class',new RegExp(klass).exec(this.get('class') >>> )); >>> >>> >>> - Method1a (my method, *precompiled RegExp* ) >>> - regexp=new RegExp(klass) >>> - this.each(function(e) { >>> e.set('class',regexp.exec(e.get('class'))) }); >>> >>> >>> - Method2 (Roman): >>> - return this.set('class', this.get('class').split(' ').filter( >>> function(c){return c == this },klass)[0]); >>> - Method3 (hazlema): >>> - return this.hasClass(klass) ? this.set("class", klass) : this. >>> erase("class"); >>> >>> >>> Results (1000 items): >>> >>> - time1: 0.0000340 >>> - *time1a: 0.0000216* >>> - time2: 0.0000306 >>> - time3: 0.0000234 >>> >>> It seems to depend on how much items you have what the fastet method is. >>> The strange thing is that i tried it with 1,50,10,100,500,1000 items and now >>> Method1a is always faster! Perhaps Firefox is caching the RegExp... >>> >>> http://mootools.net/shell/J7ySB/ >>> >>> Yann >>> >>> >>> >>> On Mon, Feb 22, 2010 at 06:47, Sanford Whiteman < >>> sa...@cypressintegrated.com> wrote: >>> >>>> > - Method1: 0.000265s >>>> > - Method2: 0.000297s >>>> > - Method3: 0.000279s >>>> >>>> > Looks like if my method is slightly faster... >>>> >>>> Mmm, something is wrong with your benchmark. >>>> >>>> Comparing your regex >>>> >>>> [f1] t.set('class',new RegExp('base_class').exec(t.get('class'))); >>>> >>>> with the straightforward >>>> >>>> [f2] t.hasClass('base_class') ? t.set('class','base_class') : >>>> t.erase('class'); >>>> >>>> averaging over 10 runs of 1000 function calls each, the regex approach >>>> is markedly slower. >>>> >>>> [f1]: >>>> >>>> .016 when base_class is present on the element >>>> .012 when base_class is not present >>>> >>>> [f2]: >>>> >>>> .007 when base_class is present >>>> .004 when base_class is not present >>>> >>>> You can eke out more performance by compiling the RegEx, but the basic >>>> approach still beats it out significantly, 50-100% faster depending on >>>> whether the target class is present. >>>> >>>> [f1-compiled]: >>>> >>>> .011 when base_class is present on the element >>>> .008 when base_class is not present >>>> >>>> See http://mootools.net/shell/B8pPc/7/. >>>> >>>> - S. >>>> >>>> >>> >> > > > -- > http://tbela99.blogspot.com/ > > fax : (+33) 08 26 51 94 51 > -- http://tbela99.blogspot.com/ fax : (+33) 08 26 51 94 51