@skillsmith/core 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/analysis/CodebaseAnalyzer.d.ts +4 -134
- package/dist/src/analysis/CodebaseAnalyzer.d.ts.map +1 -1
- package/dist/src/analysis/CodebaseAnalyzer.js +7 -315
- package/dist/src/analysis/CodebaseAnalyzer.js.map +1 -1
- package/dist/src/analysis/framework-detector.d.ts +47 -0
- package/dist/src/analysis/framework-detector.d.ts.map +1 -0
- package/dist/src/analysis/framework-detector.js +151 -0
- package/dist/src/analysis/framework-detector.js.map +1 -0
- package/dist/src/analysis/index.d.ts +6 -1
- package/dist/src/analysis/index.d.ts.map +1 -1
- package/dist/src/analysis/index.js +10 -1
- package/dist/src/analysis/index.js.map +1 -1
- package/dist/src/analysis/parsers.d.ts +43 -0
- package/dist/src/analysis/parsers.d.ts.map +1 -0
- package/dist/src/analysis/parsers.js +219 -0
- package/dist/src/analysis/parsers.js.map +1 -0
- package/dist/src/analysis/types.d.ts +138 -0
- package/dist/src/analysis/types.d.ts.map +1 -0
- package/dist/src/analysis/types.js +25 -0
- package/dist/src/analysis/types.js.map +1 -0
- package/dist/src/analytics/AnalyticsRepository.d.ts.map +1 -1
- package/dist/src/analytics/AnalyticsRepository.js +4 -4
- package/dist/src/analytics/AnalyticsRepository.js.map +1 -1
- package/dist/src/api/cache.d.ts +108 -0
- package/dist/src/api/cache.d.ts.map +1 -0
- package/dist/src/api/cache.js +216 -0
- package/dist/src/api/cache.js.map +1 -0
- package/dist/src/api/client.d.ts +152 -0
- package/dist/src/api/client.d.ts.map +1 -0
- package/dist/src/api/client.js +221 -0
- package/dist/src/api/client.js.map +1 -0
- package/dist/src/api/index.d.ts +10 -0
- package/dist/src/api/index.d.ts.map +1 -0
- package/dist/src/api/index.js +10 -0
- package/dist/src/api/index.js.map +1 -0
- package/dist/src/benchmarks/BenchmarkRunner.d.ts +6 -175
- package/dist/src/benchmarks/BenchmarkRunner.d.ts.map +1 -1
- package/dist/src/benchmarks/BenchmarkRunner.js +6 -123
- package/dist/src/benchmarks/BenchmarkRunner.js.map +1 -1
- package/dist/src/benchmarks/MemoryProfiler.d.ts +4 -262
- package/dist/src/benchmarks/MemoryProfiler.d.ts.map +1 -1
- package/dist/src/benchmarks/MemoryProfiler.js +4 -400
- package/dist/src/benchmarks/MemoryProfiler.js.map +1 -1
- package/dist/src/benchmarks/comparator.d.ts +38 -0
- package/dist/src/benchmarks/comparator.d.ts.map +1 -0
- package/dist/src/benchmarks/comparator.js +81 -0
- package/dist/src/benchmarks/comparator.js.map +1 -0
- package/dist/src/benchmarks/formatters.d.ts +30 -0
- package/dist/src/benchmarks/formatters.d.ts.map +1 -0
- package/dist/src/benchmarks/formatters.js +88 -0
- package/dist/src/benchmarks/formatters.js.map +1 -0
- package/dist/src/benchmarks/index.d.ts +5 -1
- package/dist/src/benchmarks/index.d.ts.map +1 -1
- package/dist/src/benchmarks/index.js +9 -2
- package/dist/src/benchmarks/index.js.map +1 -1
- package/dist/src/benchmarks/memory/MemoryProfiler.d.ts +165 -0
- package/dist/src/benchmarks/memory/MemoryProfiler.d.ts.map +1 -0
- package/dist/src/benchmarks/memory/MemoryProfiler.js +312 -0
- package/dist/src/benchmarks/memory/MemoryProfiler.js.map +1 -0
- package/dist/src/benchmarks/memory/baseline-manager.d.ts +64 -0
- package/dist/src/benchmarks/memory/baseline-manager.d.ts.map +1 -0
- package/dist/src/benchmarks/memory/baseline-manager.js +95 -0
- package/dist/src/benchmarks/memory/baseline-manager.js.map +1 -0
- package/dist/src/benchmarks/memory/index.d.ts +12 -0
- package/dist/src/benchmarks/memory/index.d.ts.map +1 -0
- package/dist/src/benchmarks/memory/index.js +12 -0
- package/dist/src/benchmarks/memory/index.js.map +1 -0
- package/dist/src/benchmarks/memory/leak-detector.d.ts +23 -0
- package/dist/src/benchmarks/memory/leak-detector.d.ts.map +1 -0
- package/dist/src/benchmarks/memory/leak-detector.js +46 -0
- package/dist/src/benchmarks/memory/leak-detector.js.map +1 -0
- package/dist/src/benchmarks/memory/regression-detector.d.ts +17 -0
- package/dist/src/benchmarks/memory/regression-detector.d.ts.map +1 -0
- package/dist/src/benchmarks/memory/regression-detector.js +56 -0
- package/dist/src/benchmarks/memory/regression-detector.js.map +1 -0
- package/dist/src/benchmarks/memory/types.d.ts +111 -0
- package/dist/src/benchmarks/memory/types.d.ts.map +1 -0
- package/dist/src/benchmarks/memory/types.js +7 -0
- package/dist/src/benchmarks/memory/types.js.map +1 -0
- package/dist/src/benchmarks/memory/utils.d.ts +17 -0
- package/dist/src/benchmarks/memory/utils.d.ts.map +1 -0
- package/dist/src/benchmarks/memory/utils.js +29 -0
- package/dist/src/benchmarks/memory/utils.js.map +1 -0
- package/dist/src/benchmarks/types.d.ts +175 -0
- package/dist/src/benchmarks/types.d.ts.map +1 -0
- package/dist/src/benchmarks/types.js +20 -0
- package/dist/src/benchmarks/types.js.map +1 -0
- package/dist/src/index.d.ts +4 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/repositories/QuarantineRepository.d.ts +4 -251
- package/dist/src/repositories/QuarantineRepository.d.ts.map +1 -1
- package/dist/src/repositories/QuarantineRepository.js +4 -441
- package/dist/src/repositories/QuarantineRepository.js.map +1 -1
- package/dist/src/repositories/quarantine/QuarantineRepository.d.ts +168 -0
- package/dist/src/repositories/quarantine/QuarantineRepository.d.ts.map +1 -0
- package/dist/src/repositories/quarantine/QuarantineRepository.js +341 -0
- package/dist/src/repositories/quarantine/QuarantineRepository.js.map +1 -0
- package/dist/src/repositories/quarantine/index.d.ts +10 -0
- package/dist/src/repositories/quarantine/index.d.ts.map +1 -0
- package/dist/src/repositories/quarantine/index.js +10 -0
- package/dist/src/repositories/quarantine/index.js.map +1 -0
- package/dist/src/repositories/quarantine/queries.d.ts +58 -0
- package/dist/src/repositories/quarantine/queries.d.ts.map +1 -0
- package/dist/src/repositories/quarantine/queries.js +88 -0
- package/dist/src/repositories/quarantine/queries.js.map +1 -0
- package/dist/src/repositories/quarantine/query-builder.d.ts +44 -0
- package/dist/src/repositories/quarantine/query-builder.d.ts.map +1 -0
- package/dist/src/repositories/quarantine/query-builder.js +87 -0
- package/dist/src/repositories/quarantine/query-builder.js.map +1 -0
- package/dist/src/repositories/quarantine/types.d.ts +155 -0
- package/dist/src/repositories/quarantine/types.d.ts.map +1 -0
- package/dist/src/repositories/quarantine/types.js +13 -0
- package/dist/src/repositories/quarantine/types.js.map +1 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.d.ts +1 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.d.ts.map +1 -1
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js +7 -43
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
- package/dist/src/scripts/github-import/checkpoint.d.ts +21 -0
- package/dist/src/scripts/github-import/checkpoint.d.ts.map +1 -0
- package/dist/src/scripts/github-import/checkpoint.js +52 -0
- package/dist/src/scripts/github-import/checkpoint.js.map +1 -0
- package/dist/src/scripts/github-import/deduplication.d.ts +15 -0
- package/dist/src/scripts/github-import/deduplication.d.ts.map +1 -0
- package/dist/src/scripts/github-import/deduplication.js +33 -0
- package/dist/src/scripts/github-import/deduplication.js.map +1 -0
- package/dist/src/scripts/github-import/github-client.d.ts +29 -0
- package/dist/src/scripts/github-import/github-client.d.ts.map +1 -0
- package/dist/src/scripts/github-import/github-client.js +184 -0
- package/dist/src/scripts/github-import/github-client.js.map +1 -0
- package/dist/src/scripts/github-import/index.d.ts +29 -0
- package/dist/src/scripts/github-import/index.d.ts.map +1 -0
- package/dist/src/scripts/github-import/index.js +198 -0
- package/dist/src/scripts/github-import/index.js.map +1 -0
- package/dist/src/scripts/github-import/output.d.ts +12 -0
- package/dist/src/scripts/github-import/output.d.ts.map +1 -0
- package/dist/src/scripts/github-import/output.js +34 -0
- package/dist/src/scripts/github-import/output.js.map +1 -0
- package/dist/src/scripts/github-import/types.d.ts +108 -0
- package/dist/src/scripts/github-import/types.d.ts.map +1 -0
- package/dist/src/scripts/github-import/types.js +44 -0
- package/dist/src/scripts/github-import/types.js.map +1 -0
- package/dist/src/scripts/github-import/utils.d.ts +13 -0
- package/dist/src/scripts/github-import/utils.d.ts.map +1 -0
- package/dist/src/scripts/github-import/utils.js +28 -0
- package/dist/src/scripts/github-import/utils.js.map +1 -0
- package/dist/src/scripts/import-github-skills.d.ts +3 -12
- package/dist/src/scripts/import-github-skills.d.ts.map +1 -1
- package/dist/src/scripts/import-github-skills.js +18 -398
- package/dist/src/scripts/import-github-skills.js.map +1 -1
- package/dist/src/scripts/scan-imported-skills.d.ts +7 -7
- package/dist/src/scripts/scan-imported-skills.d.ts.map +1 -1
- package/dist/src/scripts/scan-imported-skills.js +8 -397
- package/dist/src/scripts/scan-imported-skills.js.map +1 -1
- package/dist/src/scripts/skill-scanner/categorizer.d.ts +43 -0
- package/dist/src/scripts/skill-scanner/categorizer.d.ts.map +1 -0
- package/dist/src/scripts/skill-scanner/categorizer.js +61 -0
- package/dist/src/scripts/skill-scanner/categorizer.js.map +1 -0
- package/dist/src/scripts/skill-scanner/file-scanner.d.ts +43 -0
- package/dist/src/scripts/skill-scanner/file-scanner.d.ts.map +1 -0
- package/dist/src/scripts/skill-scanner/file-scanner.js +90 -0
- package/dist/src/scripts/skill-scanner/file-scanner.js.map +1 -0
- package/dist/src/scripts/skill-scanner/index.d.ts +22 -0
- package/dist/src/scripts/skill-scanner/index.d.ts.map +1 -0
- package/dist/src/scripts/skill-scanner/index.js +43 -0
- package/dist/src/scripts/skill-scanner/index.js.map +1 -0
- package/dist/src/scripts/skill-scanner/logger.d.ts +59 -0
- package/dist/src/scripts/skill-scanner/logger.d.ts.map +1 -0
- package/dist/src/scripts/skill-scanner/logger.js +104 -0
- package/dist/src/scripts/skill-scanner/logger.js.map +1 -0
- package/dist/src/scripts/skill-scanner/reporter.d.ts +56 -0
- package/dist/src/scripts/skill-scanner/reporter.d.ts.map +1 -0
- package/dist/src/scripts/skill-scanner/reporter.js +166 -0
- package/dist/src/scripts/skill-scanner/reporter.js.map +1 -0
- package/dist/src/scripts/skill-scanner/scanner.d.ts +44 -0
- package/dist/src/scripts/skill-scanner/scanner.d.ts.map +1 -0
- package/dist/src/scripts/skill-scanner/scanner.js +140 -0
- package/dist/src/scripts/skill-scanner/scanner.js.map +1 -0
- package/dist/src/scripts/skill-scanner/trust-scorer.d.ts +59 -0
- package/dist/src/scripts/skill-scanner/trust-scorer.d.ts.map +1 -0
- package/dist/src/scripts/skill-scanner/trust-scorer.js +62 -0
- package/dist/src/scripts/skill-scanner/trust-scorer.js.map +1 -0
- package/dist/src/scripts/skill-scanner/types.d.ts +98 -0
- package/dist/src/scripts/skill-scanner/types.d.ts.map +1 -0
- package/dist/src/scripts/skill-scanner/types.js +7 -0
- package/dist/src/scripts/skill-scanner/types.js.map +1 -0
- package/dist/src/scripts/validate-skills.d.ts +3 -172
- package/dist/src/scripts/validate-skills.d.ts.map +1 -1
- package/dist/src/scripts/validate-skills.js +6 -519
- package/dist/src/scripts/validate-skills.js.map +1 -1
- package/dist/src/scripts/validation/deduplication.d.ts +23 -0
- package/dist/src/scripts/validation/deduplication.d.ts.map +1 -0
- package/dist/src/scripts/validation/deduplication.js +127 -0
- package/dist/src/scripts/validation/deduplication.js.map +1 -0
- package/dist/src/scripts/validation/field-validators.d.ts +9 -0
- package/dist/src/scripts/validation/field-validators.d.ts.map +1 -0
- package/dist/src/scripts/validation/field-validators.js +135 -0
- package/dist/src/scripts/validation/field-validators.js.map +1 -0
- package/dist/src/scripts/validation/index.d.ts +29 -0
- package/dist/src/scripts/validation/index.d.ts.map +1 -0
- package/dist/src/scripts/validation/index.js +84 -0
- package/dist/src/scripts/validation/index.js.map +1 -0
- package/dist/src/scripts/validation/normalizers.d.ts +29 -0
- package/dist/src/scripts/validation/normalizers.d.ts.map +1 -0
- package/dist/src/scripts/validation/normalizers.js +79 -0
- package/dist/src/scripts/validation/normalizers.js.map +1 -0
- package/dist/src/scripts/validation/pipeline.d.ts +13 -0
- package/dist/src/scripts/validation/pipeline.d.ts.map +1 -0
- package/dist/src/scripts/validation/pipeline.js +126 -0
- package/dist/src/scripts/validation/pipeline.js.map +1 -0
- package/dist/src/scripts/validation/types.d.ts +128 -0
- package/dist/src/scripts/validation/types.d.ts.map +1 -0
- package/dist/src/scripts/validation/types.js +43 -0
- package/dist/src/scripts/validation/types.js.map +1 -0
- package/dist/src/security/index.d.ts +5 -4
- package/dist/src/security/index.d.ts.map +1 -1
- package/dist/src/security/index.js +8 -2
- package/dist/src/security/index.js.map +1 -1
- package/dist/src/security/rate-limiter/RateLimiter.d.ts +86 -0
- package/dist/src/security/rate-limiter/RateLimiter.d.ts.map +1 -0
- package/dist/src/security/rate-limiter/RateLimiter.js +260 -0
- package/dist/src/security/rate-limiter/RateLimiter.js.map +1 -0
- package/dist/src/security/rate-limiter/constants.d.ts +15 -0
- package/dist/src/security/rate-limiter/constants.d.ts.map +1 -0
- package/dist/src/security/rate-limiter/constants.js +15 -0
- package/dist/src/security/rate-limiter/constants.js.map +1 -0
- package/dist/src/security/rate-limiter/errors.d.ts +22 -0
- package/dist/src/security/rate-limiter/errors.d.ts.map +1 -0
- package/dist/src/security/rate-limiter/errors.js +32 -0
- package/dist/src/security/rate-limiter/errors.js.map +1 -0
- package/dist/src/security/rate-limiter/index.d.ts +12 -0
- package/dist/src/security/rate-limiter/index.d.ts.map +1 -0
- package/dist/src/security/rate-limiter/index.js +16 -0
- package/dist/src/security/rate-limiter/index.js.map +1 -0
- package/dist/src/security/rate-limiter/metrics-manager.d.ts +55 -0
- package/dist/src/security/rate-limiter/metrics-manager.d.ts.map +1 -0
- package/dist/src/security/rate-limiter/metrics-manager.js +144 -0
- package/dist/src/security/rate-limiter/metrics-manager.js.map +1 -0
- package/dist/src/security/rate-limiter/presets.d.ts +52 -0
- package/dist/src/security/rate-limiter/presets.d.ts.map +1 -0
- package/dist/src/security/rate-limiter/presets.js +53 -0
- package/dist/src/security/rate-limiter/presets.js.map +1 -0
- package/dist/src/security/rate-limiter/queue-manager.d.ts +59 -0
- package/dist/src/security/rate-limiter/queue-manager.d.ts.map +1 -0
- package/dist/src/security/rate-limiter/queue-manager.js +189 -0
- package/dist/src/security/rate-limiter/queue-manager.js.map +1 -0
- package/dist/src/security/rate-limiter/storage.d.ts +34 -0
- package/dist/src/security/rate-limiter/storage.d.ts.map +1 -0
- package/dist/src/security/rate-limiter/storage.js +80 -0
- package/dist/src/security/rate-limiter/storage.js.map +1 -0
- package/dist/src/security/rate-limiter/token-bucket.d.ts +44 -0
- package/dist/src/security/rate-limiter/token-bucket.d.ts.map +1 -0
- package/dist/src/security/rate-limiter/token-bucket.js +99 -0
- package/dist/src/security/rate-limiter/token-bucket.js.map +1 -0
- package/dist/src/security/rate-limiter/types.d.ts +104 -0
- package/dist/src/security/rate-limiter/types.d.ts.map +1 -0
- package/dist/src/security/rate-limiter/types.js +7 -0
- package/dist/src/security/rate-limiter/types.js.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.d.ts +94 -0
- package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.js +403 -0
- package/dist/src/security/scanner/SecurityScanner.js.map +1 -0
- package/dist/src/security/scanner/index.d.ts +11 -0
- package/dist/src/security/scanner/index.d.ts.map +1 -0
- package/dist/src/security/scanner/index.js +14 -0
- package/dist/src/security/scanner/index.js.map +1 -0
- package/dist/src/security/scanner/patterns.d.ts +14 -0
- package/dist/src/security/scanner/patterns.d.ts.map +1 -0
- package/dist/src/security/scanner/patterns.js +147 -0
- package/dist/src/security/scanner/patterns.js.map +1 -0
- package/dist/src/security/scanner/regex-utils.d.ts +33 -0
- package/dist/src/security/scanner/regex-utils.d.ts.map +1 -0
- package/dist/src/security/scanner/regex-utils.js +41 -0
- package/dist/src/security/scanner/regex-utils.js.map +1 -0
- package/dist/src/security/scanner/types.d.ts +63 -0
- package/dist/src/security/scanner/types.d.ts.map +1 -0
- package/dist/src/security/scanner/types.js +7 -0
- package/dist/src/security/scanner/types.js.map +1 -0
- package/dist/src/security/scanner/weights.d.ts +15 -0
- package/dist/src/security/scanner/weights.d.ts.map +1 -0
- package/dist/src/security/scanner/weights.js +28 -0
- package/dist/src/security/scanner/weights.js.map +1 -0
- package/dist/src/session/SessionHealthMonitor.d.ts +5 -168
- package/dist/src/session/SessionHealthMonitor.d.ts.map +1 -1
- package/dist/src/session/SessionHealthMonitor.js +22 -91
- package/dist/src/session/SessionHealthMonitor.js.map +1 -1
- package/dist/src/session/health-checks.d.ts +37 -0
- package/dist/src/session/health-checks.d.ts.map +1 -0
- package/dist/src/session/health-checks.js +64 -0
- package/dist/src/session/health-checks.js.map +1 -0
- package/dist/src/session/health-types.d.ts +78 -0
- package/dist/src/session/health-types.d.ts.map +1 -0
- package/dist/src/session/health-types.js +16 -0
- package/dist/src/session/health-types.js.map +1 -0
- package/dist/src/session/index.d.ts +5 -1
- package/dist/src/session/index.d.ts.map +1 -1
- package/dist/src/session/index.js +9 -0
- package/dist/src/session/index.js.map +1 -1
- package/dist/src/session/metrics-collector.d.ts +23 -0
- package/dist/src/session/metrics-collector.d.ts.map +1 -0
- package/dist/src/session/metrics-collector.js +44 -0
- package/dist/src/session/metrics-collector.js.map +1 -0
- package/dist/src/session/typed-event-emitter.d.ts +70 -0
- package/dist/src/session/typed-event-emitter.d.ts.map +1 -0
- package/dist/src/session/typed-event-emitter.js +79 -0
- package/dist/src/session/typed-event-emitter.js.map +1 -0
- package/dist/src/sources/BaseSourceAdapter.d.ts +1 -1
- package/dist/src/sources/BaseSourceAdapter.d.ts.map +1 -1
- package/dist/src/sources/BaseSourceAdapter.js +2 -2
- package/dist/src/sources/BaseSourceAdapter.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +1 -0
- package/dist/src/telemetry/index.d.ts.map +1 -1
- package/dist/src/telemetry/index.js +2 -0
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/posthog.d.ts +125 -0
- package/dist/src/telemetry/posthog.d.ts.map +1 -0
- package/dist/src/telemetry/posthog.js +198 -0
- package/dist/src/telemetry/posthog.js.map +1 -0
- package/dist/tests/RateLimiter.test.js +4 -4
- package/dist/tests/RateLimiter.test.js.map +1 -1
- package/dist/tests/e2e/security/security.e2e.test.js +3 -3
- package/dist/tests/e2e/security/security.e2e.test.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryProfiler.js","sourceRoot":"","sources":["../../../../src/benchmarks/memory/MemoryProfiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-689: Memory Baseline Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages memory baselines for regression comparison.
|
|
5
|
+
*/
|
|
6
|
+
import type { MemoryStats, MemoryBaseline } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Manages baseline storage and comparison for memory profiling.
|
|
9
|
+
*/
|
|
10
|
+
export declare class BaselineManager {
|
|
11
|
+
private baselines;
|
|
12
|
+
/**
|
|
13
|
+
* Save a baseline from completed stats
|
|
14
|
+
*
|
|
15
|
+
* @param label - Label to save as baseline
|
|
16
|
+
* @param stats - Memory stats to create baseline from
|
|
17
|
+
* @returns Created baseline
|
|
18
|
+
*/
|
|
19
|
+
saveBaseline(label: string, stats: MemoryStats): MemoryBaseline;
|
|
20
|
+
/**
|
|
21
|
+
* Load baselines from a JSON object
|
|
22
|
+
*
|
|
23
|
+
* @param baselines - Object mapping labels to baselines
|
|
24
|
+
*/
|
|
25
|
+
loadBaselines(baselines: Record<string, MemoryBaseline>): void;
|
|
26
|
+
/**
|
|
27
|
+
* Get a baseline by label
|
|
28
|
+
*
|
|
29
|
+
* @param label - Label to look up
|
|
30
|
+
* @returns Baseline or undefined
|
|
31
|
+
*/
|
|
32
|
+
getBaseline(label: string): MemoryBaseline | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Get all baselines
|
|
35
|
+
*
|
|
36
|
+
* @returns Map of label to MemoryBaseline
|
|
37
|
+
*/
|
|
38
|
+
getBaselines(): Map<string, MemoryBaseline>;
|
|
39
|
+
/**
|
|
40
|
+
* Export baselines as JSON-serializable object
|
|
41
|
+
*
|
|
42
|
+
* @returns Object mapping labels to baselines
|
|
43
|
+
*/
|
|
44
|
+
exportBaselines(): Record<string, MemoryBaseline>;
|
|
45
|
+
/**
|
|
46
|
+
* Clear all baselines
|
|
47
|
+
*/
|
|
48
|
+
clear(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Check if a baseline exists
|
|
51
|
+
*
|
|
52
|
+
* @param label - Label to check
|
|
53
|
+
* @returns True if baseline exists
|
|
54
|
+
*/
|
|
55
|
+
hasBaseline(label: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Delete a specific baseline
|
|
58
|
+
*
|
|
59
|
+
* @param label - Label to delete
|
|
60
|
+
* @returns True if baseline was deleted
|
|
61
|
+
*/
|
|
62
|
+
deleteBaseline(label: string): boolean;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=baseline-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline-manager.d.ts","sourceRoot":"","sources":["../../../../src/benchmarks/memory/baseline-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE7D;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAyC;IAE1D;;;;;;OAMG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,cAAc;IAgB/D;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI;IAM9D;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAItD;;;;OAIG;IACH,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAI3C;;;;OAIG;IACH,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAQjD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAInC;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-689: Memory Baseline Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages memory baselines for regression comparison.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Manages baseline storage and comparison for memory profiling.
|
|
8
|
+
*/
|
|
9
|
+
export class BaselineManager {
|
|
10
|
+
baselines = new Map();
|
|
11
|
+
/**
|
|
12
|
+
* Save a baseline from completed stats
|
|
13
|
+
*
|
|
14
|
+
* @param label - Label to save as baseline
|
|
15
|
+
* @param stats - Memory stats to create baseline from
|
|
16
|
+
* @returns Created baseline
|
|
17
|
+
*/
|
|
18
|
+
saveBaseline(label, stats) {
|
|
19
|
+
const baseline = {
|
|
20
|
+
label,
|
|
21
|
+
timestamp: new Date().toISOString(),
|
|
22
|
+
avgHeapUsed: (stats.startSnapshot.usedHeapSize +
|
|
23
|
+
(stats.endSnapshot?.usedHeapSize ?? stats.startSnapshot.usedHeapSize)) /
|
|
24
|
+
2,
|
|
25
|
+
peakHeapUsed: stats.peakHeapUsed,
|
|
26
|
+
sampleCount: stats.sampleCount,
|
|
27
|
+
};
|
|
28
|
+
this.baselines.set(label, baseline);
|
|
29
|
+
return baseline;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Load baselines from a JSON object
|
|
33
|
+
*
|
|
34
|
+
* @param baselines - Object mapping labels to baselines
|
|
35
|
+
*/
|
|
36
|
+
loadBaselines(baselines) {
|
|
37
|
+
for (const [label, baseline] of Object.entries(baselines)) {
|
|
38
|
+
this.baselines.set(label, baseline);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get a baseline by label
|
|
43
|
+
*
|
|
44
|
+
* @param label - Label to look up
|
|
45
|
+
* @returns Baseline or undefined
|
|
46
|
+
*/
|
|
47
|
+
getBaseline(label) {
|
|
48
|
+
return this.baselines.get(label);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get all baselines
|
|
52
|
+
*
|
|
53
|
+
* @returns Map of label to MemoryBaseline
|
|
54
|
+
*/
|
|
55
|
+
getBaselines() {
|
|
56
|
+
return new Map(this.baselines);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Export baselines as JSON-serializable object
|
|
60
|
+
*
|
|
61
|
+
* @returns Object mapping labels to baselines
|
|
62
|
+
*/
|
|
63
|
+
exportBaselines() {
|
|
64
|
+
const result = {};
|
|
65
|
+
for (const [label, baseline] of this.baselines) {
|
|
66
|
+
result[label] = baseline;
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Clear all baselines
|
|
72
|
+
*/
|
|
73
|
+
clear() {
|
|
74
|
+
this.baselines.clear();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Check if a baseline exists
|
|
78
|
+
*
|
|
79
|
+
* @param label - Label to check
|
|
80
|
+
* @returns True if baseline exists
|
|
81
|
+
*/
|
|
82
|
+
hasBaseline(label) {
|
|
83
|
+
return this.baselines.has(label);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Delete a specific baseline
|
|
87
|
+
*
|
|
88
|
+
* @param label - Label to delete
|
|
89
|
+
* @returns True if baseline was deleted
|
|
90
|
+
*/
|
|
91
|
+
deleteBaseline(label) {
|
|
92
|
+
return this.baselines.delete(label);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=baseline-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline-manager.js","sourceRoot":"","sources":["../../../../src/benchmarks/memory/baseline-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,SAAS,GAAgC,IAAI,GAAG,EAAE,CAAA;IAE1D;;;;;;OAMG;IACH,YAAY,CAAC,KAAa,EAAE,KAAkB;QAC5C,MAAM,QAAQ,GAAmB;YAC/B,KAAK;YACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,WAAW,EACT,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY;gBAC/B,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,IAAI,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACxE,CAAC;YACH,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAA;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACnC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,SAAyC;QACrD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACH,eAAe;QACb,MAAM,MAAM,GAAmC,EAAE,CAAA;QACjD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAA;QAC1B,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-689: Memory Profiler Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all memory profiling types and functionality.
|
|
5
|
+
*/
|
|
6
|
+
export * from './types.js';
|
|
7
|
+
export * from './utils.js';
|
|
8
|
+
export * from './baseline-manager.js';
|
|
9
|
+
export * from './leak-detector.js';
|
|
10
|
+
export * from './regression-detector.js';
|
|
11
|
+
export { MemoryProfiler, defaultMemoryProfiler } from './MemoryProfiler.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/benchmarks/memory/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-689: Memory Profiler Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all memory profiling types and functionality.
|
|
5
|
+
*/
|
|
6
|
+
export * from './types.js';
|
|
7
|
+
export * from './utils.js';
|
|
8
|
+
export * from './baseline-manager.js';
|
|
9
|
+
export * from './leak-detector.js';
|
|
10
|
+
export * from './regression-detector.js';
|
|
11
|
+
export { MemoryProfiler, defaultMemoryProfiler } from './MemoryProfiler.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/benchmarks/memory/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-689: Memory Leak Detector
|
|
3
|
+
*
|
|
4
|
+
* Detects potential memory leaks from completed tracking sessions.
|
|
5
|
+
*/
|
|
6
|
+
import type { MemoryStats, LeakDetectionResult } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Detect potential memory leaks across completed tracking sessions
|
|
9
|
+
*
|
|
10
|
+
* @param completedStats - Map of label to completed MemoryStats
|
|
11
|
+
* @param threshold - Heap growth percentage threshold to consider a leak (default: 10%)
|
|
12
|
+
* @returns Leak detection result
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const result = detectLeaks(completedStats, 15); // 15% threshold
|
|
17
|
+
* if (result.hasLeaks) {
|
|
18
|
+
* console.error(`Potential leak detected: ${result.message}`);
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare function detectLeaks(completedStats: Map<string, MemoryStats>, threshold?: number): LeakDetectionResult;
|
|
23
|
+
//# sourceMappingURL=leak-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leak-detector.d.ts","sourceRoot":"","sources":["../../../../src/benchmarks/memory/leak-detector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGlE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CACzB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACxC,SAAS,GAAE,MAAW,GACrB,mBAAmB,CA0BrB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-689: Memory Leak Detector
|
|
3
|
+
*
|
|
4
|
+
* Detects potential memory leaks from completed tracking sessions.
|
|
5
|
+
*/
|
|
6
|
+
import { formatBytes } from './utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* Detect potential memory leaks across completed tracking sessions
|
|
9
|
+
*
|
|
10
|
+
* @param completedStats - Map of label to completed MemoryStats
|
|
11
|
+
* @param threshold - Heap growth percentage threshold to consider a leak (default: 10%)
|
|
12
|
+
* @returns Leak detection result
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const result = detectLeaks(completedStats, 15); // 15% threshold
|
|
17
|
+
* if (result.hasLeaks) {
|
|
18
|
+
* console.error(`Potential leak detected: ${result.message}`);
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export function detectLeaks(completedStats, threshold = 10) {
|
|
23
|
+
const suspectedLabels = [];
|
|
24
|
+
let totalLeakedBytes = 0;
|
|
25
|
+
let maxGrowthPercent = 0;
|
|
26
|
+
for (const [label, stats] of completedStats) {
|
|
27
|
+
if (stats.heapGrowthPercent > threshold) {
|
|
28
|
+
suspectedLabels.push(label);
|
|
29
|
+
totalLeakedBytes += stats.heapGrowth;
|
|
30
|
+
maxGrowthPercent = Math.max(maxGrowthPercent, stats.heapGrowthPercent);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const hasLeaks = suspectedLabels.length > 0;
|
|
34
|
+
return {
|
|
35
|
+
hasLeaks,
|
|
36
|
+
threshold,
|
|
37
|
+
heapGrowthPercent: Math.round(maxGrowthPercent * 100) / 100,
|
|
38
|
+
leakedBytes: totalLeakedBytes,
|
|
39
|
+
suspectedLabels,
|
|
40
|
+
message: hasLeaks
|
|
41
|
+
? `Potential memory leak detected in ${suspectedLabels.length} operation(s): ${suspectedLabels.join(', ')}. ` +
|
|
42
|
+
`Total leaked: ${formatBytes(totalLeakedBytes)}, max growth: ${maxGrowthPercent.toFixed(2)}%`
|
|
43
|
+
: `No memory leaks detected (threshold: ${threshold}%)`,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=leak-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leak-detector.js","sourceRoot":"","sources":["../../../../src/benchmarks/memory/leak-detector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CACzB,cAAwC,EACxC,YAAoB,EAAE;IAEtB,MAAM,eAAe,GAAa,EAAE,CAAA;IACpC,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,gBAAgB,GAAG,CAAC,CAAA;IAExB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,iBAAiB,GAAG,SAAS,EAAE,CAAC;YACxC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC3B,gBAAgB,IAAI,KAAK,CAAC,UAAU,CAAA;YACpC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;IAE3C,OAAO;QACL,QAAQ;QACR,SAAS;QACT,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,GAAG;QAC3D,WAAW,EAAE,gBAAgB;QAC7B,eAAe;QACf,OAAO,EAAE,QAAQ;YACf,CAAC,CAAC,qCAAqC,eAAe,CAAC,MAAM,kBAAkB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC3G,iBAAiB,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;YAC/F,CAAC,CAAC,wCAAwC,SAAS,IAAI;KAC1D,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-689: Memory Regression Detector
|
|
3
|
+
*
|
|
4
|
+
* Detects memory regressions by comparing current stats to baselines.
|
|
5
|
+
*/
|
|
6
|
+
import type { MemoryStats, MemoryBaseline, MemoryRegressionResult } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Check for memory regression against a baseline
|
|
9
|
+
*
|
|
10
|
+
* @param label - Label to check
|
|
11
|
+
* @param baseline - Baseline to compare against (optional)
|
|
12
|
+
* @param currentStats - Current memory stats (optional)
|
|
13
|
+
* @param threshold - Regression threshold percentage (default: 10%)
|
|
14
|
+
* @returns Regression result
|
|
15
|
+
*/
|
|
16
|
+
export declare function checkRegression(label: string, baseline: MemoryBaseline | undefined, currentStats: MemoryStats | undefined, threshold?: number): MemoryRegressionResult;
|
|
17
|
+
//# sourceMappingURL=regression-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regression-detector.d.ts","sourceRoot":"","sources":["../../../../src/benchmarks/memory/regression-detector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAGrF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,GAAG,SAAS,EACpC,YAAY,EAAE,WAAW,GAAG,SAAS,EACrC,SAAS,GAAE,MAAW,GACrB,sBAAsB,CA4CxB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-689: Memory Regression Detector
|
|
3
|
+
*
|
|
4
|
+
* Detects memory regressions by comparing current stats to baselines.
|
|
5
|
+
*/
|
|
6
|
+
import { formatBytes } from './utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* Check for memory regression against a baseline
|
|
9
|
+
*
|
|
10
|
+
* @param label - Label to check
|
|
11
|
+
* @param baseline - Baseline to compare against (optional)
|
|
12
|
+
* @param currentStats - Current memory stats (optional)
|
|
13
|
+
* @param threshold - Regression threshold percentage (default: 10%)
|
|
14
|
+
* @returns Regression result
|
|
15
|
+
*/
|
|
16
|
+
export function checkRegression(label, baseline, currentStats, threshold = 10) {
|
|
17
|
+
if (!baseline) {
|
|
18
|
+
return {
|
|
19
|
+
hasRegression: false,
|
|
20
|
+
threshold,
|
|
21
|
+
label,
|
|
22
|
+
baselineHeap: 0,
|
|
23
|
+
currentHeap: currentStats?.peakHeapUsed ?? 0,
|
|
24
|
+
changePercent: 0,
|
|
25
|
+
message: `No baseline exists for label: ${label}`,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (!currentStats) {
|
|
29
|
+
return {
|
|
30
|
+
hasRegression: false,
|
|
31
|
+
threshold,
|
|
32
|
+
label,
|
|
33
|
+
baselineHeap: baseline.peakHeapUsed,
|
|
34
|
+
currentHeap: 0,
|
|
35
|
+
changePercent: 0,
|
|
36
|
+
message: `No current stats exist for label: ${label}`,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
const changePercent = baseline.peakHeapUsed > 0
|
|
40
|
+
? ((currentStats.peakHeapUsed - baseline.peakHeapUsed) / baseline.peakHeapUsed) * 100
|
|
41
|
+
: 0;
|
|
42
|
+
const hasRegression = changePercent > threshold;
|
|
43
|
+
return {
|
|
44
|
+
hasRegression,
|
|
45
|
+
threshold,
|
|
46
|
+
label,
|
|
47
|
+
baselineHeap: baseline.peakHeapUsed,
|
|
48
|
+
currentHeap: currentStats.peakHeapUsed,
|
|
49
|
+
changePercent: Math.round(changePercent * 100) / 100,
|
|
50
|
+
message: hasRegression
|
|
51
|
+
? `Memory regression detected for ${label}: heap grew by ${changePercent.toFixed(2)}% ` +
|
|
52
|
+
`(${formatBytes(baseline.peakHeapUsed)} -> ${formatBytes(currentStats.peakHeapUsed)})`
|
|
53
|
+
: `No memory regression for ${label} (change: ${changePercent.toFixed(2)}%)`,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=regression-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regression-detector.js","sourceRoot":"","sources":["../../../../src/benchmarks/memory/regression-detector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,QAAoC,EACpC,YAAqC,EACrC,YAAoB,EAAE;IAEtB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,aAAa,EAAE,KAAK;YACpB,SAAS;YACT,KAAK;YACL,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,YAAY,EAAE,YAAY,IAAI,CAAC;YAC5C,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,iCAAiC,KAAK,EAAE;SAClD,CAAA;IACH,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;YACL,aAAa,EAAE,KAAK;YACpB,SAAS;YACT,KAAK;YACL,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,qCAAqC,KAAK,EAAE;SACtD,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GACjB,QAAQ,CAAC,YAAY,GAAG,CAAC;QACvB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,GAAG;QACrF,CAAC,CAAC,CAAC,CAAA;IAEP,MAAM,aAAa,GAAG,aAAa,GAAG,SAAS,CAAA;IAE/C,OAAO;QACL,aAAa;QACb,SAAS;QACT,KAAK;QACL,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,WAAW,EAAE,YAAY,CAAC,YAAY;QACtC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,GAAG;QACpD,OAAO,EAAE,aAAa;YACpB,CAAC,CAAC,kCAAkC,KAAK,kBAAkB,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBACrF,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG;YACxF,CAAC,CAAC,4BAA4B,KAAK,aAAa,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KAC/E,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-689: Memory Profiler Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for memory profiling and leak detection.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Memory snapshot at a point in time
|
|
8
|
+
*/
|
|
9
|
+
export interface MemorySnapshot {
|
|
10
|
+
/** Timestamp when snapshot was taken */
|
|
11
|
+
timestamp: number;
|
|
12
|
+
/** Total heap size in bytes */
|
|
13
|
+
totalHeapSize: number;
|
|
14
|
+
/** Used heap size in bytes */
|
|
15
|
+
usedHeapSize: number;
|
|
16
|
+
/** External memory in bytes (ArrayBuffers, etc.) */
|
|
17
|
+
externalMemory: number;
|
|
18
|
+
/** Heap size limit in bytes */
|
|
19
|
+
heapSizeLimit: number;
|
|
20
|
+
/** Total physical memory allocated in bytes */
|
|
21
|
+
totalPhysicalSize: number;
|
|
22
|
+
/** Total available memory in bytes */
|
|
23
|
+
totalAvailableSize: number;
|
|
24
|
+
/** Malloced memory in bytes */
|
|
25
|
+
mallocedMemory: number;
|
|
26
|
+
/** Peak malloced memory in bytes */
|
|
27
|
+
peakMallocedMemory: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Statistics for a tracked memory operation
|
|
31
|
+
*/
|
|
32
|
+
export interface MemoryStats {
|
|
33
|
+
/** Label for the tracked operation */
|
|
34
|
+
label: string;
|
|
35
|
+
/** Start snapshot */
|
|
36
|
+
startSnapshot: MemorySnapshot;
|
|
37
|
+
/** End snapshot (undefined if still tracking) */
|
|
38
|
+
endSnapshot?: MemorySnapshot;
|
|
39
|
+
/** Duration in milliseconds */
|
|
40
|
+
duration: number;
|
|
41
|
+
/** Heap growth in bytes */
|
|
42
|
+
heapGrowth: number;
|
|
43
|
+
/** Heap growth as percentage */
|
|
44
|
+
heapGrowthPercent: number;
|
|
45
|
+
/** Peak heap usage during tracking */
|
|
46
|
+
peakHeapUsed: number;
|
|
47
|
+
/** Number of samples taken */
|
|
48
|
+
sampleCount: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Memory baseline for regression comparison
|
|
52
|
+
*/
|
|
53
|
+
export interface MemoryBaseline {
|
|
54
|
+
/** Label for the baseline */
|
|
55
|
+
label: string;
|
|
56
|
+
/** Timestamp when baseline was created */
|
|
57
|
+
timestamp: string;
|
|
58
|
+
/** Average heap usage in bytes */
|
|
59
|
+
avgHeapUsed: number;
|
|
60
|
+
/** Peak heap usage in bytes */
|
|
61
|
+
peakHeapUsed: number;
|
|
62
|
+
/** Number of samples in baseline */
|
|
63
|
+
sampleCount: number;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Result of leak detection
|
|
67
|
+
*/
|
|
68
|
+
export interface LeakDetectionResult {
|
|
69
|
+
/** Whether potential leaks were detected */
|
|
70
|
+
hasLeaks: boolean;
|
|
71
|
+
/** Threshold used for detection (percentage) */
|
|
72
|
+
threshold: number;
|
|
73
|
+
/** Actual heap growth percentage */
|
|
74
|
+
heapGrowthPercent: number;
|
|
75
|
+
/** Bytes of suspected leak */
|
|
76
|
+
leakedBytes: number;
|
|
77
|
+
/** Labels of operations with suspected leaks */
|
|
78
|
+
suspectedLabels: string[];
|
|
79
|
+
/** Detailed message */
|
|
80
|
+
message: string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Memory regression result
|
|
84
|
+
*/
|
|
85
|
+
export interface MemoryRegressionResult {
|
|
86
|
+
/** Whether regression was detected */
|
|
87
|
+
hasRegression: boolean;
|
|
88
|
+
/** Threshold used (percentage) */
|
|
89
|
+
threshold: number;
|
|
90
|
+
/** Label of the operation */
|
|
91
|
+
label: string;
|
|
92
|
+
/** Baseline heap usage */
|
|
93
|
+
baselineHeap: number;
|
|
94
|
+
/** Current heap usage */
|
|
95
|
+
currentHeap: number;
|
|
96
|
+
/** Change percentage */
|
|
97
|
+
changePercent: number;
|
|
98
|
+
/** Detailed message */
|
|
99
|
+
message: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Tracking entry for an operation
|
|
103
|
+
*/
|
|
104
|
+
export interface TrackingEntry {
|
|
105
|
+
label: string;
|
|
106
|
+
startSnapshot: MemorySnapshot;
|
|
107
|
+
startTime: number;
|
|
108
|
+
samples: MemorySnapshot[];
|
|
109
|
+
samplingInterval?: NodeJS.Timeout;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/benchmarks/memory/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAA;IACtB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,+CAA+C;IAC/C,iBAAiB,EAAE,MAAM,CAAA;IACzB,sCAAsC;IACtC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,oCAAoC;IACpC,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,aAAa,EAAE,cAAc,CAAA;IAC7B,iDAAiD;IACjD,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,gCAAgC;IAChC,iBAAiB,EAAE,MAAM,CAAA;IACzB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAA;IACpB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,QAAQ,EAAE,OAAO,CAAA;IACjB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAA;IACjB,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,CAAA;IACzB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,gDAAgD;IAChD,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,sCAAsC;IACtC,aAAa,EAAE,OAAO,CAAA;IACtB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,wBAAwB;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,cAAc,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/benchmarks/memory/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-689: Memory Profiler Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utility functions for memory profiling.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Format bytes to human-readable string
|
|
8
|
+
*
|
|
9
|
+
* @param bytes - Number of bytes to format
|
|
10
|
+
* @returns Human-readable string (e.g., "1.5 MB")
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatBytes(bytes: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* Force garbage collection if available
|
|
15
|
+
*/
|
|
16
|
+
export declare function forceGC(): void;
|
|
17
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/benchmarks/memory/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAI9B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-689: Memory Profiler Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utility functions for memory profiling.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Format bytes to human-readable string
|
|
8
|
+
*
|
|
9
|
+
* @param bytes - Number of bytes to format
|
|
10
|
+
* @returns Human-readable string (e.g., "1.5 MB")
|
|
11
|
+
*/
|
|
12
|
+
export function formatBytes(bytes) {
|
|
13
|
+
if (bytes === 0)
|
|
14
|
+
return '0 B';
|
|
15
|
+
const k = 1024;
|
|
16
|
+
const sizes = ['B', 'KB', 'MB', 'GB'];
|
|
17
|
+
const i = Math.floor(Math.log(Math.abs(bytes)) / Math.log(k));
|
|
18
|
+
const value = bytes / Math.pow(k, i);
|
|
19
|
+
return `${value.toFixed(1)} ${sizes[i]}`;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Force garbage collection if available
|
|
23
|
+
*/
|
|
24
|
+
export function forceGC() {
|
|
25
|
+
if (typeof global.gc === 'function') {
|
|
26
|
+
global.gc();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/benchmarks/memory/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7B,MAAM,CAAC,GAAG,IAAI,CAAA;IACd,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACpC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO;IACrB,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QACpC,MAAM,CAAC,EAAE,EAAE,CAAA;IACb,CAAC;AACH,CAAC"}
|