内存泄漏检测器 memory-leak-detector

内存泄漏检测器是一款用于发现和诊断桌面应用程序内存泄漏问题的专业工具。它通过堆快照对比分析、对象分配追踪和内存增长模式识别等技术,帮助开发者定位内存泄漏源,生成详细报告并提供修复建议。适用于Electron、Native、Qt等框架的性能优化和调试工作。关键词:内存泄漏检测,堆快照分析,性能优化,桌面应用调试,内存管理,对象追踪,泄漏模式识别。

测试 0 次安装 0 次浏览 更新于 2/25/2026

名称: 内存泄漏检测器 描述: 通过堆分析和对象追踪检测桌面应用中的内存泄漏 允许工具: 读取, 写入, 编辑, 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`);
}

常见泄漏模式

  1. 未移除的事件监听器
  2. 闭包持有引用
  3. 全局变量累积
  4. 定时器/间隔未清除
  5. DOM节点分离

相关技能

  • electron-memory-profiler
  • startup-time-profiler