-
标记整理
-
标记增量 — 为了提高效率
=====================================================================
-
V8内存空间一分为二
-
小空间用于存储新生代对象(32MB || 16MB)
-
新生代指的是存活时间较短的对象
-
局部作用域内的变量就属于新生代
-
回收过程采用复制算法 + 标记整理
-
首先将左侧的小空间也一分为二,大小相同
-
使用空间为From,空闲空间为To
-
将所有的变量对象都分配在From空间
-
现在To是空闲状态,一旦我们的From空间应用到一定程度,去触发GC操作,这时会采用标记整理的操作将活动对象拷贝至To
-
拷贝完成就意味着我们之前的From空间的对象有了一个备份,这时就可以考虑做一些回收操作了
-
将From空间进行完全的释放,因为From里的对象在To里边有一个备份,From直接释放掉就不存在任何问题
-
这时新生代对象就完成了一个回收操作
-
拷贝过程中可能出现晋升
-
如果我们在拷贝时发现某一个变量对象所指定的空间呢,他在我们当前的老生代对象里边也会出现,这时我们就会出现一个所谓的 晋升 的操作
-
晋升就是将新生代对象移动至老生代
-
一轮GC还存活的新生代需要晋升
-
当前在拷贝的一个过程中发现To空间的使用率超过了25%,那么在这时我们也需要将这一次的活动对象移动至老生代
-
为什么是25%?
-
因为我们在将来进行回收操作的时候需要把Form空间和To空间进行一个交换,也就是说以前的To会变成From,以前的From会变为To,这也就意味着我们的To使用率如果达到了80%,那么最终他变成活动对象的存储空间后,新的对象就存不进来了
=====================================================================
-
老生代对象存放在右侧老生代区域
-
针对于老生代区域,在V8当中同样有一个内存大小的限制
-
64位操作系统1.4G,32位操作系统700MB
-
老生代对象其实指的就是当前存活时间较长的对象
-
例如:全局对象下的变量,闭包内的变量数据
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
自学几个月前端,为什么感觉什么都没学到??
这种现象在很多的初学者和自学前端的同学中是比较的常见的。
因为自学走的弯路是比较的多的,会踩很多的坑,学习的过程中是比较的迷茫的。
最重要的是,在学习的过程中,不知道每个部分该学哪些知识点,学到什么程度才算好,学了能做什么。
很多自学的朋友往往都是自己去找资料学习的,资料上有的或许就学到了,资料上没有的或许就没有学到。
这就会给人一个错误的信息就是,我把资料上的学完了,估计也-就差不多的了。
但是真的是这样的吗?非也,因为很多人找的资料就是很基础的。学完了也就是掌握一点基础的东西。分享给你一份前端分析路线,你可以参考。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。
mg.cn/img_convert/15be8206a9f6e5bd9e8e930303b613ee.png)
还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。
所以学习编程一定要注重实践操作,练习敲代码的时间一定要多余看视频的时间。