env-js icon indicating copy to clipboard operation
env-js copied to clipboard

minor improvement to __trim__

Open chillitom opened this issue 14 years ago • 2 comments

i've benchmarked a bunch of trim methods on Rhino by pointing Env.JS at http://stevenlevithan.com/demo/trim.cfm

C:\Documents and Settings\user\My Documents\Downloads\rhino1_7R2>java -jar js.jar -opt -1
Rhino 1.7 release 2 2009 03 22
js> load('env.rhino.1.2.js')
[  Envjs/1.6 (Rhino; U; Windows XP x86 5.1; en-US; rv:1.7.0.rc2) Resig/20070309 PilotFish/1.2.13  ]
js> Envjs.scriptTypes['text/javascript'] = true;
true
js> window.location='http://stevenlevithan.com/demo/trim.cfm'
http://stevenlevithan.com/demo/trim.cfm
js> $('times').value = 200
200
js> benchmark();
js> $('log').innerHTML
Original length: 27663
trim1: 422ms (length: 27656)
trim2: 797ms (length: 27656)
trim3: 828ms (length: 27656)
trim4: 1156ms (length: 27656)
trim5: 1469ms (length: 27656)
trim6: 3922ms (length: 27656)
trim7: 3656ms (length: 27656)
trim8: 2079ms (length: 27656)
trim9: 5969ms (length: 27656)
trim10: 0ms (length: 27656)
trim11: 32ms (length: 27656)
trim12: 32ms (length: 27656)

but for smaller strings i get

Original length: 55
trim1: 16ms (length: 49)
trim2: 15ms (length: 49)
trim3: 31ms (length: 49)
trim4: 31ms (length: 49)
trim5: 31ms (length: 49)
trim6: 78ms (length: 49)
trim7: 78ms (length: 49)
trim8: 47ms (length: 49)
trim9: 172ms (length: 49)
trim10: 62ms (length: 49)
trim11: 31ms (length: 49)
trim12: 15ms (length: 49)

trim1 seems to take half the time of the current trim method (trim4), might be an idea to switch to this one.

chillitom avatar Aug 03 '10 22:08 chillitom

thanks for the insight... without having looked at the benchmark harness, and only relying on the numbers, why wouldn't I use trim12 instead of trim4?

thatcher avatar Aug 04 '10 00:08 thatcher

yip, sorry trim12, don't know how I drew that conclusion, it must have been late.

chillitom avatar Aug 04 '10 10:08 chillitom