captcha-canvas
Version:
A captcha generator by using skia-canvas module.
62 lines (61 loc) • 1.67 kB
JavaScript
/**
* Performance monitoring utilities
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.MetricsCollector = void 0;
class MetricsCollector {
constructor() {
this.metrics = [];
this.enabled = false;
}
static getInstance() {
if (!MetricsCollector.instance) {
MetricsCollector.instance = new MetricsCollector();
}
return MetricsCollector.instance;
}
enable() {
this.enabled = true;
}
disable() {
this.enabled = false;
}
startGeneration() {
if (!this.enabled)
return 0;
return performance.now();
}
endGeneration(startTime, dimensions, features) {
if (!this.enabled || startTime === 0)
return null;
const endTime = performance.now();
const metrics = {
startTime,
endTime,
duration: endTime - startTime,
memoryUsage: process.memoryUsage(),
dimensions,
features,
};
this.metrics.push(metrics);
// Keep only last 100 metrics to prevent memory leaks
if (this.metrics.length > 100) {
this.metrics = this.metrics.slice(-100);
}
return metrics;
}
getAverageGenerationTime() {
if (this.metrics.length === 0)
return 0;
const total = this.metrics.reduce((sum, m) => sum + m.duration, 0);
return total / this.metrics.length;
}
getMetrics() {
return [...this.metrics];
}
clearMetrics() {
this.metrics = [];
}
}
exports.MetricsCollector = MetricsCollector;
;