Some checks failed
CI / go (push) Waiting to run
CI / docker (push) Waiting to run
CI / lint-go (push) Waiting to run
CI / lint-docs (push) Waiting to run
CI / check-paperclip (push) Waiting to run
Deploy static site / Deploy to GitHub Pages (push) Has been cancelled
Deploy static site / Deploy via Docker to hatch.surf (push) Has been cancelled
Resolved conflicts by taking GitHub versions for: - .dockerignore, .gitignore, Dockerfile, README.md, docker-compose.yml Kept deploy.sh updated to: - Pull from GitHub (primary source) - Push to Gitea (push-mirror) - Build from site/ directory (GitHub structure) Co-Authored-By: Paperclip <noreply@paperclip.ing>
34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
import { PerformanceObserver } from 'perf_hooks';
|
|
import { warn } from '../../build/output/log';
|
|
import { bold } from '../picocolors';
|
|
const LONG_RUNNING_GC_THRESHOLD_MS = 15;
|
|
const gcEvents = [];
|
|
const obs = new PerformanceObserver((list)=>{
|
|
const entry = list.getEntries()[0];
|
|
gcEvents.push(entry);
|
|
if (entry.duration > LONG_RUNNING_GC_THRESHOLD_MS) {
|
|
warn(bold(`Long running GC detected: ${entry.duration.toFixed(2)}ms`));
|
|
}
|
|
});
|
|
/**
|
|
* Starts recording garbage collection events in the process and warn on long
|
|
* running GCs. To disable, call `stopObservingGc`.
|
|
*/ export function startObservingGc() {
|
|
obs.observe({
|
|
entryTypes: [
|
|
'gc'
|
|
]
|
|
});
|
|
}
|
|
export function stopObservingGc() {
|
|
obs.disconnect();
|
|
}
|
|
/**
|
|
* Returns all recorded garbage collection events. This function will only
|
|
* return information from when `startObservingGc` was enabled and before
|
|
* `stopObservingGc` was called.
|
|
*/ export function getGcEvents() {
|
|
return gcEvents;
|
|
}
|
|
|
|
//# sourceMappingURL=gc-observer.js.map
|