v8的内存划分
v8大体分为
堆
和栈
,垃圾回收在堆里进行。堆内存分多个模块:
New space
大多数的对象开始都会被分配在这里,这个区域相对较小但是垃圾回收特别频繁,该区域被对半分为两半(分为Semi space From 和 Semi space To )
Old space
新生代中的对象在存活一段时间后就会被转移到老生代内存区,相对于新生代该内存区域的垃圾回收频率较低。
Large object space
存放体积超越其他区域大小的对象,每个对象都会有自己的内存,垃圾回收不会移动大对象区。
Code space
代码对象会被分配在这里,唯一拥有执行权限的内存区域。
Cells pace
Property cell space
Map space
垃圾回收发生在新生代(New space)和老生代(Old space)中。
新生代和老生代的内存大小
根据操作系统不同:32位为0.7G,64位为1.4G
新生代 | 老生代 | |
---|---|---|
32位系统 | 34M | 700M |
64位系统 | 64M | 1400M |
最新版V14内存为2G
垃圾回收的算法
新生代使用的是Scavenge(新生代互换算法)
。
老生代现在使用的是Mark-Compact(标记整理算法)
,以前使用Mark-Sweep(标记清除算法)
,最古老的是引用计数算法
。
Scavenge
过程:
每次新加入的变量都会放入from,当from中内存占满时会开始执行垃圾回收:对from中不用的内存回收,还存在引用的内存会被复制到to中,当这次垃圾回收结束的时候会出现from中为空,to中留下还存在引用的内存,这时会将from和to交换,最后就是from中留下有引用的内存,to中保持为空。
因为From和To中各占一半,并且To始终不会存放,所以会浪费一半的空间。该算法是使用空间换取时间,而老生代比新生代大很多,所以用该算法不合理。
引用计数法
过程:
查看是否有其它的对象在引用该对象,如果没有则把它清除。
该方法无法处理对象间的循环引用,容易造成内存泄漏。
在 IE 时代就被抛弃了。
Mark-Sweep
该算法是早先使用的算法,现在已经不被使用
过程:
垃圾回收会在内部构件一个根节点(可以看作是浏览器中的window,node中的gelobal)。首先对老生代中的所有对象进行一次广度扫描,查找到有对根节点引用的对象时会把它标记,最后将没有标记的对象垃圾回收。
该算法没有进行内存的碎片整理,所以以后再需要非陪一个大的对象时会提前触发垃圾回收,为解决这个问题就产生了Mark-Compact(标记整理算法)
Mark-Compact
在标记清除法的基础上进行了优化:
它在执行垃圾回收的开始把所有被标记内存移动到一起,然后清除未被标记的内存,这样就解决了大对象存入时连续空间不足的问题。
原先的Mark-Sweep算法会在执行垃圾回收时进行一次广度扫描,将所有有引用节点标记,这叫做全停顿标记,因为JS是单线程的,所以一次垃圾回收的时间内全......
原文转载:http://www.shaoqun.com/a/892312.html
跨境电商:https://www.ikjzd.com/
美森:https://www.ikjzd.com/w/1693
灯塔计划:https://www.ikjzd.com/w/1281
友家速递:https://www.ikjzd.com/w/1341
v8的内存划分v8大体分为堆和栈,垃圾回收在堆里进行。堆内存分多个模块:Newspace大多数的对象开始都会被分配在这里,这个区域相对较小但是垃圾回收特别频繁,该区域被对半分为两半(分为SemispaceFrom和SemispaceTo)Oldspace新生代中的对象在存活一段时间后就会被转移到老生代内存区,相对于新生代该内存区域的垃圾回收频率较低。Largeobjectspace存放体积超越其他
数魔跨境:https://www.ikjzd.com/w/1425.html
四川有座桥,简陋至极却闻名世界,游客宁可哭着走完也不让它修缮_泸定:http://www.30bags.com/a/220262.html
四川又错付了?丁真又说"我们都想去拉萨",还说努力学汉语带爸妈看世界:http://www.30bags.com/a/224233.html
四川雨水减弱北方华南有分散性降水 南方高温持续北方变凉爽:http://www.30bags.com/a/433353.html
四川元素绚丽亮相_西安世界园艺博会开园 :http://www.30bags.com/a/410430.html
我在做饭他在下添私密 我配合的张开双腿好深:http://lady.shaoqun.com/a/248130.html
强壮的公么在厨房征服我 公么的粗大让我满足:http://lady.shaoqun.com/m/a/247541.html
男朋友在车里㖭比过程 放在里面一整天:http://www.30bags.com/m/a/249824.html
深圳宝安科技馆8月展览汇总(持续更新):http://www.30bags.com/a/517601.html
2021时尚深圳展蝶讯馆展览好看吗:http://www.30bags.com/a/517602.html
2021时尚深圳蝶讯馆观展攻略:http://www.30bags.com/a/517603.html
深圳欢乐谷夏浪音乐节有朱星杰吗:http://www.30bags.com/a/517604.html
No comments:
Post a Comment