null or delete test
by infous
HTML
<h1></h1>
JavaScript
function test (clear_method) {
var arr = [],
d1 = new Date(),
d2,
c = 1000000,
i;
for (i = 0; i < c; i++) {
arr.push(Math.pow(i, 2));
}
clear_method(arr);
for (i = 0; i < c; i++) {
arr[i] = Math.sqrt(arr[i]);
}
for (var i = 0; i < c; i++) {
arr.pop();
}
return (new Date()).getTime() - d1.getTime();
}
function clear_delete (arr) {
var c = arr.length,
i;
for (i = 0; i < c; i++) {
if (i % 2 === 0) {
delete arr[i];
}
}
}
function clear_null (arr) {
var c = arr.length,
i;
for (i = 0; i < c; i++) {
if (i % 2 === 0) {
arr[i] = null;
}
}
}
var times = 5,
dc = 0,
nc = 0,
i;
for (i = 0; i < times; i++) {
dc += test(clear_delete);
nc += test(clear_null);
}
$("h1").html("Delete: " + (dc / times) + "ms, null: " + (nc / times) + "ms");
$("<p>" + times + " tries done. Average value is above.</p>").appendTo("body");