[code] | array-speed.php | | <body> <div id=result></div> </body> <script> function testcase(){
var result=document.getElementById('result'); var retstr=[]; var microtime = function() { var now = new Date().getTime() / 1000; return now ; } function runner(name,f){ setTimeout(function(){ var start=microtime(); sum=-1;sq=0;sq2=0; f(); var end=microtime(); var tt=end-start; retstr.push({str:"<tr><td>"+name+"</td><td>"+sum+"</td><td><b>"+(Math.round(tt*1000)/1000)+"</b></td>",result:tt}); },1); } var testlimit=10000000; var subv= 0.5567565; var subm = 1.0/subv; var irnd = Math.random()/1.1234234234324; function testmul(){ var t1=0,rnd=irnd,tl=testlimit; for( var i =0; tl; ++i,--tl){ t1+=rnd*subm; } sum=t1; return t1; } function testsub(){ var t1=0,rnd=irnd, tl=testlimit; for( var i =0; tl; ++i,--tl){ t1+=rnd/subv; } sum=t1; return t1; } function teste1(){ var t1=0;//testlimit*4; for( var i =0; i<testlimit; ++i){ t1+=1; } sum=t1; return t1; } function teste2(){ var t1=0,rnd=irnd, tl=testlimit; for( var i =0; tl; ++i,--tl){ t1+=1;//Math.random()/subv; } sum=t1; return t1; } //runner('zeroold', teste1); //runner('zerotest', teste2); runner('test mul', testmul); runner('test sub', testsub); //runner("for hash",htestFor); //runner("each hash",htestEach); //runner("i in hash",htestIIn); setTimeout(function(){ //find best var min=0; for(var i in retstr){ if(retstr[i].result<min || !min){ min=retstr[i].result; } } var out=[]; for(var i in retstr){ out.push(retstr[i].str+"<td>"+Math.round(100*retstr[i].result/min)+"</td></tr>"); } result.innerHTML="min:"+min+"<br /><table>"+out.join("\n")+"</table>"; },100); // }); }
setTimeout(testcase,2000); </script> ready...<br />
|
|
[CODE]/array-speed.php
|