首页 > 代码库 > 利用chrome的profiler查找js的memory leak
利用chrome的profiler查找js的memory leak
1. 首先要固定一个测试环境。具体来说,选择某一个可以重复的操作,作为标准的测试动作。
2. 刷新浏览器后用profiler抓下heap snapshot。
3. 进行操作,再一次抓下snapshot,重复多次进行比较。
在比较的页面里面看到, 在多个snapshot之间,这些对象都是不断增长的。深入调查这个对象
发现了一个很奇怪的方法调用。
找到了我们的代码
var domSelectionSelectRangesMethod = CKEDITOR.dom.selection.selectRanges;CKEDITOR.dom.selection.selectRanges = function (ranges) { try { domSelectionSelectRangesMethod.call(this, ranges); } catch (e) { }};
再查看了CKEditor的源码,发现在CKEditor里,selection只是个构造函数,selectRanges是原型上的方法。
该问题代码无法修改原型上的方法,只是徒劳地在构造函数上包装了一遍又一遍。这些方法的context造成了内存泄露。
利用chrome的profiler查找js的memory leak
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。