Slice benchmark
[].slice.call vs Array.prototype.slice.call
by azproduction
HTML
<div id="sandbox"></div>
<div id="result"></div>
CSS
body {
font-family: Arial;
font-size: 12px;
}
#sandbox {
visibility: none;
}
td, th{
padding: 5px;
color: #333;
}
th {
background: #EEE;
color: #555;
border-bottom: 1px solid #AAA;
}
td {
text-align: center;
border-bottom: 1px solid #EEE;
}
abbr {
border-bottom: 1px dashed #777;
}
JavaScript
/*
Benchmark Skeleton
*/
// 1. Update configuration
var NUMBER_OF_ITERATIONS = 1e6;
var RESULT_ELEMENT = this.document.getElementById('result');
var TEST_OUTPUT = [];
var TEST_NAME = "Slice benchmark ";
var C = 1;
// 2. Put test resources below
// 3. Use test skeleton to add a tests
// Test Skeleton -----------------------------+
TEST_OUTPUT.push(function(___,____,_,__){/////| Test 1
// Your vars ---------------------------------+
var dt = '1234567890';
// -------------------------------------------+
__=new Date();while(_--){/////////////////////|
// Your code ---------------------------------+
dt = [].slice.call(dt, 2, 3);
// -------------------------------------------+
};return {n:___,t:new Date()-__};/////////////|
}(TEST_NAME+'[].slice.call',this,NUMBER_OF_ITERATIONS));//|
// -------------------------------------------+
// Test Skeleton -----------------------------+
TEST_OUTPUT.push(function(___,____,_,__){/////| Test 2
// Your vars ---------------------------------+
var dt = '1234567890';
// -------------------------------------------+
__=new Date();while(_--){/////////////////////|
// Your code ---------------------------------+
dt = Array.prototype.slice.call(dt, 2, 3);
// -------------------------------------------+
};return {n:___,t:new Date()-__};/////////////|
}(TEST_NAME+'Array.prototype.slice.call',this,NUMBER_OF_ITERATIONS));//|
// -------------------------------------------+
// 4. Render results
(function (e, r, c, i, o, n) {
o += "<table><tr><th>Test</th><th>Result, sec</th><th>Result, <abbr title=\"Calls Per Second\">CPS</abbr></th></tr>";
for (; i < c; i += 1) {
o += "<tr><td>" + r[i].n + "</td><td>" + r[i].t + "</td><td>" + (~~((n/r[i].t) * 100)/100) + "</td></tr>";
}
e.innerHTML = o;
}(RESULT_ELEMENT, TEST_OUTPUT, TEST_OUTPUT.length, 0, '', NUMBER_OF_ITERATIONS));