前端我的项目里呈现了内存透露,如何找到透露点是一个难题。
网络上大部分文章只会夸夸其谈,用一写简略的demo通知你什么样的代码会导致内存不会被js引擎回收。
然而问题是:理论我的项目中导致内存透露中央,暗藏在浩如烟海的代码山当中,拿着demo里的代码去翻看我的项目里的文件,希图找到问题代码,简直是不可能的事件。
或者通知你如何应用Chrome开发者工具去记录和比照内存堆栈。于是看着内存变量列表里几十万个变量,犹如海底捞针。
那么咱们该怎么办?
代码多,文件多,找导致内存透露的问题代码必须要有调节。
按如下步骤来就行啦!

  1. 首先确定导致内存透露的模块和什么样的操作会导致内存透露。
  2. 确定呈现了内存透露的文件范畴。并找到这一块文件的总入口。为了行文不便,假如这个文件是 memory-leak.js
  3. 整顿memory-leak.js的依赖树。把这个文件利用过的所有文件列成表记下来。
  4. 顺次正文掉表中的文件,并测试内存透露是否还在。
  5. 如果在,则该文件是无辜的。如果不在,则找到了呈现了内存透露的文件。由此放大了问题文件的范畴。
  6. 反复1~5的步骤,直到问题文件范畴尽可能的小。
  7. 当问题文件范畴小到剩下一个文件时,则把1~5的步骤的远离用在此文件的每一行代码中。
  8. 顺次正文问题文件中的代码,并测试内存透露是否还在。
  9. 直到找到出问题的那一行或一部分代码。
  10. 找到问题之后去解决问题就行啦!

以上是解决内存透露问题的一个卓有成效的方法。