Files
2025-11-19 10:42:46 +01:00

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" );
}
}