Never mind, I can't reproduce it on other computers, so probably it will work on your computer too.
However, I'm still getting the 300ms/30ms times in my home computer (even measuring it with Chrome instead of Firefox), so I guess something is deeply broken on my machine and/or my network setup. Thanks for your time, and sorry for the "wrong" issue. -- S.Cinos JavaScript Developer at Tuenti.com 2010/12/9 Nicholas C. Zakas <[email protected]>: > Can you share your benchmarking code? > > -Nicholas > > -----Original Message----- From: Sergio Cinos > Sent: Wednesday, December 08, 2010 12:18 PM > To: Discussion of JavaScript > Subject: [JSMentors] Incredible impact on performance adding a > uncalledfunction (very weird) > > Hello guys, > > I've just stumbled upon an unbelievable JavaScript performance bug (or > feature, I can't decide). > I was trying to improve the performance of a Class constructor like this > one: > > --- > CreateClass = function(parentClass, config) { > //Code here to clean and validate arguments > > //Uncomment this to be 10x faster > //var totallyInventedName = function() { > // > //} > > var classConstructor = function() { > //A lot of stuff to copy 'config' to my prototype > } > > //A lot of tweaks with classConstructor.prototype > return classConstructor; > } > > var Class = CreateClass(null, { /*methods here*/}); > var instance = new Class(); > --- > > Creating 100 instances takes about 300ms (FF 3.6, measured with > FireBug and internal timers using Date()). The weird thing is that if > I add a function definition before defining classConstructor > (commented in the example), the code only takes 30ms to run, and no > code is calling this new function (100% sure about this point). It > makes no sense, the new code should be slower because it's creating > 100 new functions. > > I've checked everything several times, restarted Firefox, started with > a new Firefox profile, even reinstalled Firefox, and the results are > consistent: 300ms without the function, 30ms whit it. > > It makes completely no sense to me. Can someone please shed some light > into this? > > -- > S.Cinos > JavaScript Developer at Tuenti.com > > _______________________________________________ > JSMentors mailing list > [email protected] > http://jsmentors.com/mailman/listinfo/jsmentors_jsmentors.com > > List Archive: > http://jsmentors.com/pipermail/jsmentors_jsmentors.com/ > > _______________________________________________ > JSMentors mailing list > [email protected] > http://jsmentors.com/mailman/listinfo/jsmentors_jsmentors.com > > List Archive: > http://jsmentors.com/pipermail/jsmentors_jsmentors.com/ _______________________________________________ JSMentors mailing list [email protected] http://jsmentors.com/mailman/listinfo/jsmentors_jsmentors.com List Archive: http://jsmentors.com/pipermail/jsmentors_jsmentors.com/
