Profiling javascript date functions
Simple time tests for javascript date objects and date math. Requires console.time enabled browser.
by Riffic
JavaScript
/**
Profiling javascript dates and date math. End result- use getTime() where possible
**/
console.time("MS Date init");
for(var i=0; i < 1000000; i++){
var dT = new Date( 1357027200000 )
}
console.timeEnd("MS Date init");
console.time("Human Date Init");
for(var i=0; i < 1000000; i++){
var d=new Date(2013, 0, 1);
}
console.timeEnd("Human Date Init");
var tDate1 = new Date(2014,0,1),
tDate2 = new Date(2013,0,1);
console.time("Date to Date");
for(var i=0; i < 1000000; i++){
tDate2.setTime( tDate1 );
}
console.timeEnd("Date to Date");
/**Winner of updating time**/
console.time("Date time to Date");
for(var i=0; i < 1000000; i++){
tDate2.setTime( tDate1.getTime() );
}
console.timeEnd("Date time to Date");
console.time("Date parse to Date");
for(var i=0; i < 1000000; i++){
tDate2.setTime( Date.parse( tDate1 ) );
}
console.timeEnd("Date parse to Date");
console.time("Date math raw date");
for(var i=0; i < 1000000; i++){
var timeDiff = tDate1 - tDate2;
}
console.timeEnd("Date math raw date");
/**Winner of math**/
console.time("Date math getTime");
for(var i=0; i < 1000000; i++){
var timeDiff = tDate1.getTime() - tDate2.getTime();
}
console.timeEnd("Date math getTime");
//Random tidbits
//note getDate() gets day of month, not date object
console.log("Dates Equal?", tDate1 == tDate2, tDate1 === tDate2, tDate1.getDate() == tDate2.getDate() );