论文部分内容阅读
JavaScript 作为一种主流的前端脚本语言,广泛运用于 Web 应用中。虽然 JavaScript 语言具有垃圾回收机制动态管理内存,但用于各类程序库的的运用,仍然存在内存泄漏的问题。论文分析和归纳了十一种内存泄漏的模式,并提出静态和动态的检测方法的结合,实现对十一种内存泄漏的检测。在静态检测中,基于 JavaScript 程序的抽象语法树,分析和抽象类和事件之间的关系,跟踪对象执行轨迹,发现疑似泄漏的对象。在动态检测阶段,依据静态检测结果,生成测试用例并运行,获取动态堆信息,构建类型指向图,通过分析内存占用率上升的趋势判断内存泄漏。实验验证本内存泄漏检测方法是可行性的,并有较好的检测能力,比较静态方法减少了误报率,比较动态方法,检测的覆盖率有所增加。