1、回收原则
- 全局变量(挂载到window上的才是全局变量)永远不会回收,所以需要减少全局变量的使用
- 非得使用,及时释放,设置为 ‘’ 或者 null
- 局部变量,失去引用了被回收。
如果非得往全局变量数组里面不断放数据,程序容易崩溃,该怎么办?
- 设置上限,到达上限后,用先进先出规则,删除数据
2、查看js内存使用情况
2.1 利用node的api查看
node底层是c++写的,所以可以使用一些额外的c++内存
2.2 浏览器控制台查看当前内存使用情况
3、性能监控方案
① 利用window.performance监控内存使用情况,然后通过请求将数据发给后台,生成实时数据,生成可视化后台监控界面
② npm i -g lighthouse
- github地址: https://github.com/GoogleChrome/lighthouse
- 实际操作Lighthouse:
在命令窗口输入:lighthouse https://airhorner.com/
会在当前目录下生成一个html网页,打开网页可以看到相关性能数据,
对于相关建议是机器生成,可能误判,最好持半信半疑。
4、问题记录
vue 组件中的变量算什么?
- 一个vue组件本质是vue对象,没有挂载到window上,所以算局部变量。
大文件读取 大文件上传 input =》file,没有限制大小,如果文件很多,浏览器会很卡?
- h5有一个功能,把文件切片上传。
- node读取大文件,不要用readFile,用stream