名称: 内存泄漏检测器 描述: 通过堆分析和对象追踪检测桌面应用中的内存泄漏 允许工具: 读取, 写入, 编辑, Bash, Glob, Grep 标签: [性能, 内存, 泄漏, 调试, 性能分析]
内存泄漏检测器
通过堆快照分析、对象追踪和增长模式检测,发现桌面应用中的内存泄漏问题。
功能
- 捕获并比较堆快照
- 追踪对象分配增长
- 识别被保留的对象
- 检测常见泄漏模式
- 生成泄漏报告
- 提供修复建议
输入模式
{
"type": "object",
"properties": {
"projectPath": { "type": "string" },
"framework": { "enum": ["electron", "native", "qt"] },
"duration": { "type": "number", "default": 60 }
},
"required": ["projectPath"]
}
检测方法
// 堆快照比较
const v8 = require('v8');
function detectLeaks(iterations = 3, intervalMs = 10000) {
const snapshots = [];
const interval = setInterval(() => {
global.gc(); // 需要 --expose-gc 参数
const snapshot = v8.getHeapStatistics();
snapshots.push(snapshot);
if (snapshots.length >= iterations) {
clearInterval(interval);
analyzeGrowth(snapshots);
}
}, intervalMs);
}
function analyzeGrowth(snapshots) {
const growth = snapshots[snapshots.length - 1].used_heap_size -
snapshots[0].used_heap_size;
console.log(`堆增长: ${growth / 1024 / 1024} MB`);
}
常见泄漏模式
- 未移除的事件监听器
- 闭包持有引用
- 全局变量累积
- 定时器/间隔未清除
- DOM节点分离
相关技能
electron-memory-profilerstartup-time-profiler