| 534 | } |
| 535 | |
| 536 | export const measureSync = <T>(cb: () => T, measureName: string, outputLog: boolean = true) => { |
| 537 | const startMark = `${measureName}.start`; |
| 538 | const endMark = `${measureName}.end`; |
| 539 | |
| 540 | performance.mark(startMark); |
| 541 | const data = cb(); |
| 542 | performance.mark(endMark); |
| 543 | |
| 544 | const measure = performance.measure(measureName, startMark, endMark); |
| 545 | const durationMs = measure.duration; |
| 546 | if (outputLog) { |
| 547 | console.debug(`[${measureName}] took ${durationMs}ms`); |
| 548 | } |
| 549 | |
| 550 | return { |
| 551 | data, |
| 552 | durationMs |
| 553 | } |
| 554 | } |
| 555 | |
| 556 | export const measure = async <T>(cb: () => Promise<T>, measureName: string, outputLog: boolean = true) => { |
| 557 | const startMark = `${measureName}.start`; |