Sunday, July 25, 2021

垃圾回收算法

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位系统34M700M
64位系统64M1400M

但是最新版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

在标......

原文转载:http://www.shaoqun.com/a/893335.html

跨境电商:https://www.ikjzd.com/

aca:https://www.ikjzd.com/w/1371

拍怕:https://www.ikjzd.com/w/2205

new old stock:https://www.ikjzd.com/w/2341


v8的内存划分v8大体分为堆和栈,垃圾回收在堆里进行。堆内存分多个模块:Newspace大多数的对象开始都会被分配在这里,这个区域相对较小但是垃圾回收特别频繁,该区域被对半分为两半(分为SemispaceFrom和SemispaceTo)Oldspace新生代中的对象在存活一段时间后就会被转移到老生代内存区,相对于新生代该内存区域的垃圾回收频率较低。Largeobjectspace存放体积超越其他
外国人最心仪的中国景点 英国人爱长城:http://www.30bags.com/a/417730.html
外国小哥花九年时间,只为拍一朵雪花,网友:看到照片后美哭!:http://www.30bags.com/a/226253.html
外交部罗莫火山地区状态危险 :http://www.30bags.com/a/406716.html
外交部提醒公民和团组近期暂勿赴也门 :http://www.30bags.com/a/406831.html
黑人下面好大好爽 和黑人高潮了10次:http://lady.shaoqun.com/m/a/248391.html
老头粗大强行戳进 老头的下面又粗又大:http://lady.shaoqun.com/m/a/247915.html
口述实录:性体验:这妹子性高潮竟能喷七尺高 破了世界纪录:http://www.30bags.com/m/a/249953.html
女的下面张开照片 喜欢让人㖭我下面:http://www.30bags.com/m/a/249740.html
女性单身很久了。想男人了怎么办?这些单身女性说的是实话:http://lady.shaoqun.com/a/429484.html
一个29岁的女人告诉我:我出轨了,乐在其中,不想回头:http://lady.shaoqun.com/a/429485.html
怀孕后如何解决「恋爱」?准妈妈应该注意什么?:http://lady.shaoqun.com/a/429486.html
女人结婚后,很长一段时间都没有"性生活"。她有生理需求怎么办?那个女人说了实话:http://lady.shaoqun.com/a/429487.html

No comments:

Post a Comment