前端内存管理
减少浏览器的负担
内存过大会让浏览器压力过大,导致浏览器卡顿
Node端
内存如果不够,服务就会中断,而nodejs开启的服务,如果不管理内存,就会中断
V8到底有多大
1,64位下是1.4G
一手资源:666java.com
2,32位下700MB
3,但是根据浏览器不同,有些许扩容。Node情况下会有一些C++内存扩容
新生代
短时间存活的新变量会存在新生代种中,新生代的内存量极小,64位
下大概是32MB
新生代的回收算法,可以检署为复制-清空,
把存活者的变量复制到to空间,然后把from
空间清空,然后对调from和to。这样可以提
升回收速度,典型的牺牲空间换时间
老生代
生存时间比较长的变量,会转存到老生代,老生代占据了几乎所有内存。64位下大概是1400MB
老生代回收分为三步:
1,标记已死变量
2,清楚已死变量3,整理磁盘
新生代和老生代怎么转换
1,新生代发现本次复制后,会占用超过百分之25的to空间。
2,这个对象已经经历过一次回收
如何查看浏览器内存使用情况
浏览器端
window.perforrance.memory
Node端
process.memoryUsage()
优化的建议
1,尽量不要定义全局,定义了及时手动释放
2,注意闭包