@re-shell/cli
Version:
Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja
140 lines (139 loc) • 3.59 kB
TypeScript
interface BenchmarkResult {
name: string;
duration: number;
memoryBefore: NodeJS.MemoryUsage;
memoryAfter: NodeJS.MemoryUsage;
memoryPeak: number;
memoryDelta: number;
cpuBefore: NodeJS.CpuUsage;
cpuAfter: NodeJS.CpuUsage;
cpuUsage: number;
startTime: number;
endTime: number;
iterations: number;
success: boolean;
error?: string;
metadata?: Record<string, any>;
}
interface BenchmarkSuite {
name: string;
results: BenchmarkResult[];
summary: {
totalDuration: number;
averageDuration: number;
memoryEfficiency: number;
cpuEfficiency: number;
successRate: number;
};
}
interface LoadTestConfig {
concurrent: number;
duration: number;
rampUp: number;
operations: Array<{
name: string;
weight: number;
operation: () => Promise<any>;
}>;
}
interface LoadTestResult {
config: LoadTestConfig;
results: {
totalOperations: number;
successfulOperations: number;
failedOperations: number;
operationsPerSecond: number;
averageResponseTime: number;
percentiles: {
p50: number;
p95: number;
p99: number;
};
memoryUsage: {
initial: number;
peak: number;
final: number;
};
errors: string[];
};
}
export declare class ResourceBenchmarks {
private static instance;
private benchmarkHistory;
private monitoring;
private memoryPeak;
private constructor();
static getInstance(): ResourceBenchmarks;
/**
* Run a single benchmark
*/
benchmark<T>(name: string, operation: () => Promise<T>, iterations?: number, metadata?: Record<string, any>): Promise<BenchmarkResult>;
/**
* Run a benchmark suite
*/
benchmarkSuite(suiteName: string, benchmarks: Array<{
name: string;
operation: () => Promise<any>;
iterations?: number;
metadata?: Record<string, any>;
}>): Promise<BenchmarkSuite>;
/**
* Run CLI startup benchmark
*/
benchmarkStartup(cliPath: string, args?: string[], iterations?: number): Promise<BenchmarkResult>;
/**
* Run memory stress test
*/
memoryStressTest(allocations?: number, allocationSize?: number): Promise<BenchmarkResult>;
/**
* Run CPU stress test
*/
cpuStressTest(duration?: number, // milliseconds
complexity?: number): Promise<BenchmarkResult>;
/**
* Run concurrent operations test
*/
concurrencyTest(concurrency?: number, operationDuration?: number): Promise<BenchmarkResult>;
/**
* Run load test
*/
loadTest(config: LoadTestConfig): Promise<LoadTestResult>;
/**
* Get benchmark history
*/
getHistory(): BenchmarkResult[];
/**
* Get performance baseline
*/
getBaseline(): {
startupTime: number;
memoryUsage: number;
cpuEfficiency: number;
};
/**
* Clear benchmark history
*/
clearHistory(): void;
/**
* Export benchmark results
*/
exportResults(format?: 'json' | 'csv'): string;
/**
* Start memory monitoring
*/
private startMemoryMonitoring;
/**
* Stop memory monitoring
*/
private stopMemoryMonitoring;
/**
* Calculate suite summary
*/
private calculateSuiteSummary;
/**
* Create load test worker
*/
private createLoadTestWorker;
}
export declare const resourceBenchmarks: ResourceBenchmarks;
export {};