agent-ide 0.1.7 → 0.1.9

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.
Files changed (81) hide show
  1. package/dist/core/analysis/complexity-analyzer.d.ts.map +1 -1
  2. package/dist/core/analysis/complexity-analyzer.js +3 -2
  3. package/dist/core/analysis/complexity-analyzer.js.map +1 -1
  4. package/dist/core/analysis/dead-code-detector.d.ts +39 -10
  5. package/dist/core/analysis/dead-code-detector.d.ts.map +1 -1
  6. package/dist/core/analysis/dead-code-detector.js +160 -84
  7. package/dist/core/analysis/dead-code-detector.js.map +1 -1
  8. package/dist/core/analysis/index.d.ts +1 -1
  9. package/dist/core/analysis/index.d.ts.map +1 -1
  10. package/dist/core/dependency/dependency-analyzer.d.ts.map +1 -1
  11. package/dist/core/dependency/dependency-analyzer.js +11 -4
  12. package/dist/core/dependency/dependency-analyzer.js.map +1 -1
  13. package/dist/core/indexing/index-engine.d.ts +9 -0
  14. package/dist/core/indexing/index-engine.d.ts.map +1 -1
  15. package/dist/core/indexing/index-engine.js +60 -1
  16. package/dist/core/indexing/index-engine.js.map +1 -1
  17. package/dist/core/refactor/extract-function.d.ts +26 -4
  18. package/dist/core/refactor/extract-function.d.ts.map +1 -1
  19. package/dist/core/refactor/extract-function.js +300 -48
  20. package/dist/core/refactor/extract-function.js.map +1 -1
  21. package/dist/infrastructure/parser/base.d.ts +17 -0
  22. package/dist/infrastructure/parser/base.d.ts.map +1 -1
  23. package/dist/infrastructure/parser/base.js +58 -1
  24. package/dist/infrastructure/parser/base.js.map +1 -1
  25. package/dist/infrastructure/parser/interface.d.ts +20 -0
  26. package/dist/infrastructure/parser/interface.d.ts.map +1 -1
  27. package/dist/infrastructure/parser/interface.js +2 -0
  28. package/dist/infrastructure/parser/interface.js.map +1 -1
  29. package/dist/interfaces/cli/cli.d.ts +13 -1
  30. package/dist/interfaces/cli/cli.d.ts.map +1 -1
  31. package/dist/interfaces/cli/cli.js +155 -15
  32. package/dist/interfaces/cli/cli.js.map +1 -1
  33. package/dist/interfaces/cli/output-formatter.d.ts +55 -0
  34. package/dist/interfaces/cli/output-formatter.d.ts.map +1 -0
  35. package/dist/interfaces/cli/output-formatter.js +195 -0
  36. package/dist/interfaces/cli/output-formatter.js.map +1 -0
  37. package/dist/plugins/javascript/parser.d.ts +17 -0
  38. package/dist/plugins/javascript/parser.d.ts.map +1 -1
  39. package/dist/plugins/javascript/parser.js +71 -0
  40. package/dist/plugins/javascript/parser.js.map +1 -1
  41. package/dist/plugins/typescript/parser.d.ts +16 -0
  42. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  43. package/dist/plugins/typescript/parser.js +76 -0
  44. package/dist/plugins/typescript/parser.js.map +1 -1
  45. package/package.json +8 -14
  46. package/dist/core/performance/analyzer.d.ts +0 -62
  47. package/dist/core/performance/analyzer.d.ts.map +0 -1
  48. package/dist/core/performance/analyzer.js +0 -378
  49. package/dist/core/performance/analyzer.js.map +0 -1
  50. package/dist/core/performance/cache-manager.d.ts +0 -161
  51. package/dist/core/performance/cache-manager.d.ts.map +0 -1
  52. package/dist/core/performance/cache-manager.js +0 -375
  53. package/dist/core/performance/cache-manager.js.map +0 -1
  54. package/dist/core/performance/index.d.ts +0 -14
  55. package/dist/core/performance/index.d.ts.map +0 -1
  56. package/dist/core/performance/index.js +0 -17
  57. package/dist/core/performance/index.js.map +0 -1
  58. package/dist/core/performance/interfaces.d.ts +0 -188
  59. package/dist/core/performance/interfaces.d.ts.map +0 -1
  60. package/dist/core/performance/interfaces.js +0 -17
  61. package/dist/core/performance/interfaces.js.map +0 -1
  62. package/dist/core/performance/memory-manager.d.ts +0 -176
  63. package/dist/core/performance/memory-manager.d.ts.map +0 -1
  64. package/dist/core/performance/memory-manager.js +0 -364
  65. package/dist/core/performance/memory-manager.js.map +0 -1
  66. package/dist/core/performance/monitor.d.ts +0 -92
  67. package/dist/core/performance/monitor.d.ts.map +0 -1
  68. package/dist/core/performance/monitor.js +0 -228
  69. package/dist/core/performance/monitor.js.map +0 -1
  70. package/dist/plugins/swift/index.d.ts +0 -11
  71. package/dist/plugins/swift/index.d.ts.map +0 -1
  72. package/dist/plugins/swift/index.js +0 -15
  73. package/dist/plugins/swift/index.js.map +0 -1
  74. package/dist/plugins/swift/parser.d.ts +0 -98
  75. package/dist/plugins/swift/parser.d.ts.map +0 -1
  76. package/dist/plugins/swift/parser.js +0 -612
  77. package/dist/plugins/swift/parser.js.map +0 -1
  78. package/dist/plugins/swift/types.d.ts +0 -196
  79. package/dist/plugins/swift/types.d.ts.map +0 -1
  80. package/dist/plugins/swift/types.js +0 -268
  81. package/dist/plugins/swift/types.js.map +0 -1
@@ -1,176 +0,0 @@
1
- /**
2
- * Performance Memory Manager
3
- * 提供記憶體監控、管理和優化功能
4
- */
5
- import { MemorySnapshot } from './interfaces.js';
6
- /**
7
- * 記憶體閾值配置
8
- */
9
- export interface MemoryThresholds {
10
- /** 警告閾值(位元組) */
11
- warning: number;
12
- /** 錯誤閾值(位元組) */
13
- error: number;
14
- /** 最大堆大小(位元組) */
15
- maxHeapSize?: number;
16
- /** GC 觸發閾值(位元組) */
17
- gcThreshold?: number;
18
- }
19
- /**
20
- * 記憶體使用統計
21
- */
22
- export interface MemoryUsageStats {
23
- /** 當前記憶體使用 */
24
- current: MemorySnapshot;
25
- /** 峰值記憶體使用 */
26
- peak: MemorySnapshot;
27
- /** 平均記憶體使用 */
28
- average: MemorySnapshot;
29
- /** GC 次數 */
30
- gcCount: number;
31
- /** 記憶體洩漏檢測結果 */
32
- leakDetection: {
33
- suspected: boolean;
34
- growthRate: number;
35
- stableTime: number;
36
- };
37
- }
38
- /**
39
- * 記憶體管理配置
40
- */
41
- export interface MemoryManagerConfig {
42
- /** 記憶體閾值 */
43
- thresholds: MemoryThresholds;
44
- /** 監控間隔(毫秒) */
45
- monitoringInterval: number;
46
- /** 快照保留數量 */
47
- maxSnapshots: number;
48
- /** 自動 GC */
49
- autoGc: boolean;
50
- /** 洩漏檢測 */
51
- leakDetection: boolean;
52
- /** 記憶體限制 */
53
- memoryLimit?: number;
54
- }
55
- /**
56
- * 預設記憶體管理配置
57
- */
58
- export declare const DEFAULT_MEMORY_CONFIG: MemoryManagerConfig;
59
- /**
60
- * 記憶體事件類型
61
- */
62
- export declare enum MemoryEventType {
63
- WARNING = "warning",
64
- ERROR = "error",
65
- GC_TRIGGERED = "gc_triggered",
66
- LEAK_DETECTED = "leak_detected",
67
- LIMIT_EXCEEDED = "limit_exceeded"
68
- }
69
- /**
70
- * 記憶體事件
71
- */
72
- export interface MemoryEvent {
73
- type: MemoryEventType;
74
- timestamp: Date;
75
- snapshot: MemorySnapshot;
76
- message: string;
77
- data?: any;
78
- }
79
- /**
80
- * 記憶體事件監聽器
81
- */
82
- export type MemoryEventListener = (event: MemoryEvent) => void;
83
- /**
84
- * 效能記憶體管理器
85
- */
86
- export declare class PerformanceMemoryManager {
87
- private config;
88
- private snapshots;
89
- private listeners;
90
- private monitoringTimer?;
91
- private isMonitoring;
92
- private gcCount;
93
- private peakSnapshot?;
94
- constructor(config?: Partial<MemoryManagerConfig>);
95
- /**
96
- * 開始記憶體監控
97
- */
98
- startMonitoring(): void;
99
- /**
100
- * 停止記憶體監控
101
- */
102
- stopMonitoring(): void;
103
- /**
104
- * 記錄記憶體快照
105
- */
106
- recordSnapshot(): MemorySnapshot;
107
- /**
108
- * 獲取當前記憶體快照
109
- */
110
- getCurrentSnapshot(): MemorySnapshot;
111
- /**
112
- * 獲取記憶體使用統計
113
- */
114
- getUsageStats(): MemoryUsageStats;
115
- /**
116
- * 檢查記憶體使用量
117
- */
118
- private checkMemoryUsage;
119
- /**
120
- * 觸發垃圾回收
121
- */
122
- triggerGarbageCollection(): boolean;
123
- /**
124
- * 檢測記憶體洩漏
125
- */
126
- private detectMemoryLeak;
127
- /**
128
- * 計算記憶體穩定時間
129
- */
130
- private calculateStableTime;
131
- /**
132
- * 計算變異數
133
- */
134
- private calculateVariance;
135
- /**
136
- * 計算平均記憶體快照
137
- */
138
- private calculateAverageSnapshot;
139
- /**
140
- * 註冊事件監聽器
141
- */
142
- on(eventType: MemoryEventType, listener: MemoryEventListener): void;
143
- /**
144
- * 移除事件監聽器
145
- */
146
- off(eventType: MemoryEventType, listener: MemoryEventListener): void;
147
- /**
148
- * 發送事件
149
- */
150
- private emitEvent;
151
- /**
152
- * 獲取記憶體快照歷史
153
- */
154
- getSnapshots(): MemorySnapshot[];
155
- /**
156
- * 清理快照歷史
157
- */
158
- clearSnapshots(): void;
159
- /**
160
- * 格式化位元組數
161
- */
162
- private formatBytes;
163
- /**
164
- * 獲取記憶體使用建議
165
- */
166
- getOptimizationSuggestions(): string[];
167
- /**
168
- * 清理資源
169
- */
170
- dispose(): void;
171
- }
172
- /**
173
- * 全域記憶體管理器實例
174
- */
175
- export declare const globalMemoryManager: PerformanceMemoryManager;
176
- //# sourceMappingURL=memory-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-manager.d.ts","sourceRoot":"","sources":["../../../src/core/performance/memory-manager.ts"],"names":[],"mappings":"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"}
@@ -1,364 +0,0 @@
1
- /**
2
- * Performance Memory Manager
3
- * 提供記憶體監控、管理和優化功能
4
- */
5
- /**
6
- * 預設記憶體管理配置
7
- */
8
- export const DEFAULT_MEMORY_CONFIG = {
9
- thresholds: {
10
- warning: 256 * 1024 * 1024, // 256MB
11
- error: 512 * 1024 * 1024, // 512MB
12
- gcThreshold: 128 * 1024 * 1024 // 128MB
13
- },
14
- monitoringInterval: 5000, // 5秒
15
- maxSnapshots: 100,
16
- autoGc: true,
17
- leakDetection: true
18
- };
19
- /**
20
- * 記憶體事件類型
21
- */
22
- export var MemoryEventType;
23
- (function (MemoryEventType) {
24
- MemoryEventType["WARNING"] = "warning";
25
- MemoryEventType["ERROR"] = "error";
26
- MemoryEventType["GC_TRIGGERED"] = "gc_triggered";
27
- MemoryEventType["LEAK_DETECTED"] = "leak_detected";
28
- MemoryEventType["LIMIT_EXCEEDED"] = "limit_exceeded";
29
- })(MemoryEventType || (MemoryEventType = {}));
30
- /**
31
- * 效能記憶體管理器
32
- */
33
- export class PerformanceMemoryManager {
34
- config;
35
- snapshots = [];
36
- listeners = new Map();
37
- monitoringTimer;
38
- isMonitoring = false;
39
- gcCount = 0;
40
- peakSnapshot;
41
- constructor(config = {}) {
42
- this.config = { ...DEFAULT_MEMORY_CONFIG, ...config };
43
- // 初始化事件監聽器映射
44
- Object.values(MemoryEventType).forEach(type => {
45
- this.listeners.set(type, []);
46
- });
47
- // 監聽 Node.js GC 事件(如果可用)
48
- if (global.gc) {
49
- const originalGc = global.gc;
50
- global.gc = async () => {
51
- this.gcCount++;
52
- this.emitEvent(MemoryEventType.GC_TRIGGERED, '手動觸發垃圾回收');
53
- return originalGc();
54
- };
55
- }
56
- }
57
- /**
58
- * 開始記憶體監控
59
- */
60
- startMonitoring() {
61
- if (this.isMonitoring) {
62
- return;
63
- }
64
- this.isMonitoring = true;
65
- this.recordSnapshot(); // 記錄初始快照
66
- this.monitoringTimer = setInterval(() => {
67
- this.checkMemoryUsage();
68
- }, this.config.monitoringInterval);
69
- }
70
- /**
71
- * 停止記憶體監控
72
- */
73
- stopMonitoring() {
74
- if (!this.isMonitoring) {
75
- return;
76
- }
77
- this.isMonitoring = false;
78
- if (this.monitoringTimer) {
79
- clearInterval(this.monitoringTimer);
80
- this.monitoringTimer = undefined;
81
- }
82
- }
83
- /**
84
- * 記錄記憶體快照
85
- */
86
- recordSnapshot() {
87
- const memory = process.memoryUsage();
88
- const snapshot = {
89
- timestamp: new Date(),
90
- heapUsed: memory.heapUsed,
91
- heapTotal: memory.heapTotal,
92
- rss: memory.rss,
93
- external: memory.external,
94
- arrayBuffers: memory.arrayBuffers
95
- };
96
- this.snapshots.push(snapshot);
97
- // 維護快照數量限制
98
- if (this.snapshots.length > this.config.maxSnapshots) {
99
- this.snapshots.shift();
100
- }
101
- // 更新峰值
102
- if (!this.peakSnapshot || snapshot.heapUsed > this.peakSnapshot.heapUsed) {
103
- this.peakSnapshot = { ...snapshot };
104
- }
105
- return snapshot;
106
- }
107
- /**
108
- * 獲取當前記憶體快照
109
- */
110
- getCurrentSnapshot() {
111
- return this.recordSnapshot();
112
- }
113
- /**
114
- * 獲取記憶體使用統計
115
- */
116
- getUsageStats() {
117
- if (this.snapshots.length === 0) {
118
- this.recordSnapshot();
119
- }
120
- const current = this.snapshots[this.snapshots.length - 1];
121
- const peak = this.peakSnapshot || current;
122
- const average = this.calculateAverageSnapshot();
123
- const leakDetection = this.detectMemoryLeak();
124
- return {
125
- current,
126
- peak,
127
- average,
128
- gcCount: this.gcCount,
129
- leakDetection
130
- };
131
- }
132
- /**
133
- * 檢查記憶體使用量
134
- */
135
- checkMemoryUsage() {
136
- const snapshot = this.recordSnapshot();
137
- const { thresholds } = this.config;
138
- // 檢查記憶體限制
139
- if (this.config.memoryLimit && snapshot.heapUsed > this.config.memoryLimit) {
140
- this.emitEvent(MemoryEventType.LIMIT_EXCEEDED, `記憶體使用超過限制: ${this.formatBytes(snapshot.heapUsed)}/${this.formatBytes(this.config.memoryLimit)}`);
141
- }
142
- // 檢查錯誤閾值
143
- if (snapshot.heapUsed > thresholds.error) {
144
- this.emitEvent(MemoryEventType.ERROR, `記憶體使用過高: ${this.formatBytes(snapshot.heapUsed)}`);
145
- if (this.config.autoGc) {
146
- this.triggerGarbageCollection();
147
- }
148
- }
149
- // 檢查警告閾值
150
- else if (snapshot.heapUsed > thresholds.warning) {
151
- this.emitEvent(MemoryEventType.WARNING, `記憶體使用警告: ${this.formatBytes(snapshot.heapUsed)}`);
152
- }
153
- // 檢查是否需要觸發 GC
154
- if (this.config.autoGc &&
155
- thresholds.gcThreshold &&
156
- snapshot.heapUsed > thresholds.gcThreshold) {
157
- this.triggerGarbageCollection();
158
- }
159
- // 記憶體洩漏檢測
160
- if (this.config.leakDetection) {
161
- const leakInfo = this.detectMemoryLeak();
162
- if (leakInfo.suspected) {
163
- this.emitEvent(MemoryEventType.LEAK_DETECTED, `疑似記憶體洩漏,增長率: ${this.formatBytes(leakInfo.growthRate)}/秒`, leakInfo);
164
- }
165
- }
166
- }
167
- /**
168
- * 觸發垃圾回收
169
- */
170
- triggerGarbageCollection() {
171
- if (!global.gc) {
172
- console.warn('垃圾回收不可用,請使用 --expose-gc 參數啟動 Node.js');
173
- return false;
174
- }
175
- try {
176
- global.gc();
177
- this.gcCount++;
178
- this.emitEvent(MemoryEventType.GC_TRIGGERED, '自動觸發垃圾回收');
179
- return true;
180
- }
181
- catch (error) {
182
- console.error('垃圾回收失敗:', error);
183
- return false;
184
- }
185
- }
186
- /**
187
- * 檢測記憶體洩漏
188
- */
189
- detectMemoryLeak() {
190
- if (this.snapshots.length < 10) {
191
- return { suspected: false, growthRate: 0, stableTime: 0 };
192
- }
193
- // 計算最近 10 個快照的記憶體增長率
194
- const recentSnapshots = this.snapshots.slice(-10);
195
- const timeSpan = recentSnapshots[recentSnapshots.length - 1].timestamp.getTime() -
196
- recentSnapshots[0].timestamp.getTime();
197
- const memoryGrowth = recentSnapshots[recentSnapshots.length - 1].heapUsed -
198
- recentSnapshots[0].heapUsed;
199
- const growthRate = timeSpan > 0 ? (memoryGrowth / timeSpan) * 1000 : 0; // 每秒位元組
200
- // 檢查記憶體是否持續增長(簡化的洩漏檢測)
201
- const isGrowing = growthRate > 1024 * 10; // 每秒增長超過 10KB
202
- const stableTime = this.calculateStableTime();
203
- return {
204
- suspected: isGrowing && stableTime < 30000, // 30秒內不穩定
205
- growthRate,
206
- stableTime
207
- };
208
- }
209
- /**
210
- * 計算記憶體穩定時間
211
- */
212
- calculateStableTime() {
213
- if (this.snapshots.length < 5) {
214
- return 0;
215
- }
216
- const recent = this.snapshots.slice(-5);
217
- const variance = this.calculateVariance(recent.map(s => s.heapUsed));
218
- const threshold = 1024 * 1024; // 1MB
219
- return variance < threshold ?
220
- recent[recent.length - 1].timestamp.getTime() - recent[0].timestamp.getTime() :
221
- 0;
222
- }
223
- /**
224
- * 計算變異數
225
- */
226
- calculateVariance(values) {
227
- const mean = values.reduce((sum, val) => sum + val, 0) / values.length;
228
- const variance = values.reduce((sum, val) => sum + Math.pow(val - mean, 2), 0) / values.length;
229
- return variance;
230
- }
231
- /**
232
- * 計算平均記憶體快照
233
- */
234
- calculateAverageSnapshot() {
235
- if (this.snapshots.length === 0) {
236
- return this.getCurrentSnapshot();
237
- }
238
- const sum = this.snapshots.reduce((acc, snapshot) => ({
239
- heapUsed: acc.heapUsed + snapshot.heapUsed,
240
- heapTotal: acc.heapTotal + snapshot.heapTotal,
241
- rss: acc.rss + snapshot.rss,
242
- external: acc.external + snapshot.external,
243
- arrayBuffers: acc.arrayBuffers + snapshot.arrayBuffers
244
- }), {
245
- heapUsed: 0,
246
- heapTotal: 0,
247
- rss: 0,
248
- external: 0,
249
- arrayBuffers: 0
250
- });
251
- const count = this.snapshots.length;
252
- return {
253
- timestamp: new Date(),
254
- heapUsed: Math.round(sum.heapUsed / count),
255
- heapTotal: Math.round(sum.heapTotal / count),
256
- rss: Math.round(sum.rss / count),
257
- external: Math.round(sum.external / count),
258
- arrayBuffers: Math.round(sum.arrayBuffers / count)
259
- };
260
- }
261
- /**
262
- * 註冊事件監聽器
263
- */
264
- on(eventType, listener) {
265
- const listeners = this.listeners.get(eventType);
266
- if (listeners) {
267
- listeners.push(listener);
268
- }
269
- }
270
- /**
271
- * 移除事件監聽器
272
- */
273
- off(eventType, listener) {
274
- const listeners = this.listeners.get(eventType);
275
- if (listeners) {
276
- const index = listeners.indexOf(listener);
277
- if (index !== -1) {
278
- listeners.splice(index, 1);
279
- }
280
- }
281
- }
282
- /**
283
- * 發送事件
284
- */
285
- emitEvent(type, message, data) {
286
- const event = {
287
- type,
288
- timestamp: new Date(),
289
- snapshot: this.getCurrentSnapshot(),
290
- message,
291
- data
292
- };
293
- const listeners = this.listeners.get(type);
294
- if (listeners) {
295
- listeners.forEach(listener => {
296
- try {
297
- listener(event);
298
- }
299
- catch (error) {
300
- console.error('記憶體事件監聽器錯誤:', error);
301
- }
302
- });
303
- }
304
- }
305
- /**
306
- * 獲取記憶體快照歷史
307
- */
308
- getSnapshots() {
309
- return [...this.snapshots];
310
- }
311
- /**
312
- * 清理快照歷史
313
- */
314
- clearSnapshots() {
315
- this.snapshots = [];
316
- this.peakSnapshot = undefined;
317
- }
318
- /**
319
- * 格式化位元組數
320
- */
321
- formatBytes(bytes) {
322
- const units = ['B', 'KB', 'MB', 'GB'];
323
- let size = bytes;
324
- let unitIndex = 0;
325
- while (size >= 1024 && unitIndex < units.length - 1) {
326
- size /= 1024;
327
- unitIndex++;
328
- }
329
- return `${size.toFixed(2)}${units[unitIndex]}`;
330
- }
331
- /**
332
- * 獲取記憶體使用建議
333
- */
334
- getOptimizationSuggestions() {
335
- const stats = this.getUsageStats();
336
- const suggestions = [];
337
- if (stats.current.heapUsed > this.config.thresholds.warning) {
338
- suggestions.push('記憶體使用量較高,建議檢查是否有未釋放的資源');
339
- }
340
- if (stats.leakDetection.suspected) {
341
- suggestions.push('檢測到疑似記憶體洩漏,建議檢查事件監聽器和定時器是否正確清理');
342
- }
343
- if (stats.gcCount > 100) {
344
- suggestions.push('垃圾回收頻繁,考慮優化物件創建和銷毀模式');
345
- }
346
- if (stats.current.heapUsed / stats.current.heapTotal > 0.9) {
347
- suggestions.push('堆使用率過高,考慮增加堆大小或優化記憶體使用');
348
- }
349
- return suggestions;
350
- }
351
- /**
352
- * 清理資源
353
- */
354
- dispose() {
355
- this.stopMonitoring();
356
- this.clearSnapshots();
357
- this.listeners.clear();
358
- }
359
- }
360
- /**
361
- * 全域記憶體管理器實例
362
- */
363
- export const globalMemoryManager = new PerformanceMemoryManager();
364
- //# sourceMappingURL=memory-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-manager.js","sourceRoot":"","sources":["../../../src/core/performance/memory-manager.ts"],"names":[],"mappings":"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"}
@@ -1,92 +0,0 @@
1
- /**
2
- * Performance Monitor 實作
3
- * 提供效能監控和指標收集功能
4
- */
5
- import { PerformanceMonitor, PerformanceMetrics, MemorySnapshot } from './interfaces.js';
6
- /**
7
- * 預設效能監控器實作
8
- */
9
- export declare class DefaultPerformanceMonitor implements PerformanceMonitor {
10
- private startTime;
11
- private startMemory;
12
- private isMonitoring;
13
- private memorySnapshots;
14
- /**
15
- * 開始監控
16
- */
17
- start(): void;
18
- /**
19
- * 停止監控
20
- */
21
- stop(): PerformanceMetrics;
22
- /**
23
- * 記錄記憶體快照
24
- */
25
- recordMemorySnapshot(): MemorySnapshot;
26
- /**
27
- * 獲取當前指標
28
- */
29
- getCurrentMetrics(): PerformanceMetrics;
30
- /**
31
- * 獲取記憶體快照歷史
32
- */
33
- getMemorySnapshots(): MemorySnapshot[];
34
- /**
35
- * 清理快照
36
- */
37
- clearSnapshots(): void;
38
- /**
39
- * 估算 CPU 使用率(簡化版本)
40
- */
41
- private estimateCpuUsage;
42
- }
43
- /**
44
- * 批量效能監控器
45
- * 用於監控多個並行操作
46
- */
47
- export declare class BatchPerformanceMonitor {
48
- private monitors;
49
- /**
50
- * 開始監控特定操作
51
- */
52
- startOperation(operationId: string): void;
53
- /**
54
- * 停止監控特定操作
55
- */
56
- stopOperation(operationId: string): PerformanceMetrics | null;
57
- /**
58
- * 獲取所有正在監控的操作
59
- */
60
- getActiveOperations(): string[];
61
- /**
62
- * 獲取操作的當前指標
63
- */
64
- getOperationMetrics(operationId: string): PerformanceMetrics | null;
65
- /**
66
- * 停止所有監控
67
- */
68
- stopAll(): Map<string, PerformanceMetrics>;
69
- /**
70
- * 清理資源
71
- */
72
- dispose(): void;
73
- }
74
- /**
75
- * 全域效能監控器實例
76
- */
77
- export declare const globalPerformanceMonitor: DefaultPerformanceMonitor;
78
- /**
79
- * 工具函式:測量函式執行時間
80
- */
81
- export declare function measureAsync<T>(operation: () => Promise<T>, operationName?: string): Promise<{
82
- result: T;
83
- metrics: PerformanceMetrics;
84
- }>;
85
- /**
86
- * 工具函式:測量同步函式執行時間
87
- */
88
- export declare function measureSync<T>(operation: () => T, operationName?: string): {
89
- result: T;
90
- metrics: PerformanceMetrics;
91
- };
92
- //# sourceMappingURL=monitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../../src/core/performance/monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,eAAe,CAAwB;IAE/C;;OAEG;IACH,KAAK,IAAI,IAAI;IAUb;;OAEG;IACH,IAAI,IAAI,kBAAkB;IA6B1B;;OAEG;IACH,oBAAoB,IAAI,cAAc;IAetC;;OAEG;IACH,iBAAiB,IAAI,kBAAkB;IAqBvC;;OAEG;IACH,kBAAkB,IAAI,cAAc,EAAE;IAItC;;OAEG;IACH,cAAc,IAAI,IAAI;IAItB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAgBzB;AAED;;;GAGG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAqD;IAErE;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAMzC;;OAEG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAW7D;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAKnE;;OAEG;IACH,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAe1C;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,2BAAkC,CAAC;AAExE;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAqBrD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,SAAS,EAAE,MAAM,CAAC,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,CAoB5C"}