четверг, 5 ноября 2009 г.

Кто быстрее ?

Здравствуйте, только-что копался в бэкапах и нашел небольшой скрипт, под названием Who Faster. Мне всегда было интиресно, что быстрее сработает if else if или switch, Array или Object, while или for, а также проверить на скорость небольшие скрипты, для этого в Firebug есть замечательные инструменты, но по каким-то причинам они меня не устраивали, по каким уже и не вспомню.
В общем тогда, я и решил написать этот скрипт, состоящий из парочки не хитрых функция, и показывающий, кто все-таки быстрее ! :)

В Поле пишите 
//CODE[название скрипта]:
....
//CODE:
...

Who Faster








Птицей "Use Loop" можно установить сколько раз прокручивать скрипт, чтобы победителя лучше видно было :).
Сам код(именно он и выполняется в программке выше):

function _Go(toTest,__length){
 var __end    = 0,
  __start  = 0;  
 var __toEval = '__start = +new Date;'+
  (__length>0?'for(var __i=0;__i<__length;__i++){'+
  toTest+'}':toTest)+
  '__end = +new Date - __start; ';
 try{ 
  eval(__toEval);
 }catch(err){
  __end = err;
 }
 return __end;
}  
function _test(){

 var txt_field= document.getElementById('_script_1');
 var max_loop=parseInt(document.getElementById('max_loop').value);
 var script   = txt_field.value;
 var res   = document.getElementById("_res");
 
 max_loop   = max_loop>0?max_loop:0;
  
 var arr_script = script.match(/\/\/CODE[^:]*:[^\/\/CODE]*/g);
 if(arr_script[0]=='')arr_script.shift();  
 var _res = "";
 var tmp  = [];
 for(var i=0,l=arr_script.length;i<l;i++){
  tmp = arr_script[i].match(/\/\/CODE([^:]*):([^¬]*)/); //
  _res += "<div><i>"+(tmp[1]==''?i:tmp[1])+
  ": </i><span>"+_Go(tmp[2], max_loop)+"</span></div>";   
  
 }  
 res.innerHTML = _res;
}

function de(name){
 var obj = document.getElementById(name); 
 if(obj.disabled){
  obj.disabled = false;
 }else{
  obj.disabled = 'disabled';
  obj.value  = '';
 }
}

4 комментария:

Анонимный комментирует...
Этот комментарий был удален администратором блога.
Анонимный комментирует...
Этот комментарий был удален администратором блога.
Анонимный комментирует...

Может быть кто-нить поделится ссылочкой на что-нибудь из этой же тематики

Анонимный комментирует...

привет, Таких небывает