Глюк или я хотел бы знать почему так происходит.
Первая функция всегда медленнее, почему? Не могу понять!
Особенно заметно это в Chrome, он как будто разогревается (последующие запуски чуть быстрее). Но главное сохраняется всегда: первая функция всегда медленнее. function cmpobjs (f1, f2) { return f1.time<f2.time?-1:(f1.time>f2.time?1:0); }; function sorti(m) { m.sort(); } var funs=[ {f: sorti, fn: "sorti_1_slower_than_others", time: 0}, {f: sorti, fn: "sorti_2", time: 0}, {f: sorti, fn: "sorti_3", time: 0}, {f: sorti, fn: "sorti_4", time: 0}, {f: sorti, fn: "sorti_5", time: 0}, {f: sorti, fn: "sorti_6", time: 0}, {f: sorti, fn: "sorti_7", time: 0}, {f: sorti, fn: "sorti_8", time: 0}, {f: sorti, fn: "sorti_9", time: 0}, ]; var i,m,data=[],str=""; for (i=1;i<=77777;i++) data[i]="string"+Math.random(); for (i=0;i<funs.length;i++) { m=data.slice(); t1 = performance.now(); funs[i].f(m); t2 = performance.now(); funs[i].time=t2-t1; } funs.sort(cmpobjs); //console.log("\nResults:"); str="Results:\n"; for (i=0;i<funs.length;i++) { //console.log(funs[i].fn + ": " + (funs[i].time).toFixed(4) + " мс"); str+=funs[i].fn + ": " + (funs[i].time).toFixed(4) + " мс\n"; } alert(str); |
Часовой пояс GMT +3, время: 22:12. |