added PerformanceLog class

This commit is contained in:
SrGooglo 2023-08-02 20:34:21 +00:00
parent 0f3c749849
commit a5d6a38a66

View File

@ -0,0 +1,53 @@
export default class PerformanceLog {
constructor(
id,
params = {
disabled: false
}
) {
this.id = id
this.params = params
this.table = {}
return this
}
start(event) {
if (this.params.disabled) {
return false
}
if (!this.table[event]) {
this.table[event] = {}
}
return this.table[event]["start"] = performance.now()
}
end(event) {
if (this.params.disabled) {
return false
}
if (!this.table[event]) {
return
}
return this.table[event]["end"] = performance.now()
}
finally() {
if (this.params.disabled) {
return false
}
console.group(this.id)
Object.entries(this.table).forEach(([entry, value]) => {
console.log(entry, `${(value.end - value.start).toFixed(0)}ms`)
})
console.groupEnd()
}
}