前端内存泄漏应该怎样定位?
通过增长曲线、堆快照、分离 DOM 和事件监听排查长期页面中的内存泄漏,避免把一次性占用当成泄漏。
参考答案
泄漏表现为执行相同操作后,内存基线持续上升且垃圾回收后也不回落。常见原因包括未清理的事件监听、定时器、Observer、订阅、闭包引用、缓存无限增长和仍被 JavaScript 引用的 DOM。
定位时先重复同一流程并观察内存时间线,再对比堆快照,查看对象保留路径和 detached DOM。快照大小本身不是结论;浏览器缓存、JIT 和一次性资源都可能造成短期波动。
修复要围绕生命周期:组件卸载时取消监听和请求、断开观察器、清理定时器,缓存设置上限和失效策略。修复后要用同一流程复测,确认基线稳定,而不是只看某一次强制回收后的数字。