49 lines
833 B
JavaScript
49 lines
833 B
JavaScript
export default class Measure {
|
|
|
|
startTimes = {};
|
|
|
|
endTimes = {};
|
|
|
|
writeToPage = false;
|
|
|
|
element = false;
|
|
|
|
start ( label ) {
|
|
|
|
this.startTimes[ label ] = performance.now();
|
|
}
|
|
|
|
end ( label ) {
|
|
|
|
this.endTimes[ label ] = performance.now();
|
|
|
|
this.log( label );
|
|
}
|
|
|
|
getElapsed ( label ) {
|
|
|
|
if ( this.startTimes[ label ] === undefined || this.endTimes[ label ] === undefined ) {
|
|
|
|
throw new Error( "Start or end time missing for label: " + label );
|
|
}
|
|
|
|
return this.endTimes[ label ] - this.startTimes[ label ];
|
|
}
|
|
|
|
log ( label ) {
|
|
|
|
const elapsed = this.getElapsed( label );
|
|
|
|
if( this.writeToPage ) {
|
|
|
|
var p = document.createElement("p")
|
|
|
|
p.innerText = label + " took " + elapsed.toFixed(3) + " ms";
|
|
|
|
this.element.appendChild( p );
|
|
|
|
}
|
|
|
|
console.log( label + " took " + elapsed.toFixed(3) + " ms" );
|
|
}
|
|
} |