💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## 思考 编程时有很多死去很快 die young)的对象——经常创建一个对象马上就销毁了。基于mark- sweep的算法,会产生大量的碎片。而且大量的对象,如果是 die young的话,遍历 root se就不划算。 ![](https://img.kancloud.cn/99/1f/991fff7ff9deed2c14f61216262ac741_400x52.png) ## 基于复制的算法 ![](https://img.kancloud.cn/d3/3d/d33d7f1d82bfff86000fa22b2c0a24d9_400x323.png) 因为一般而言,活的越久的对象,还能活更久的可能性会更大 ## 拆分生代 ![](https://img.kancloud.cn/88/ae/88aea40602a1c83c8f53eeed78087564_400x172.png) 新生代基于复制算法,老生代基于Mark Swep 算法 ### java 的内存 ![](https://img.kancloud.cn/24/f7/24f7d44ba7bb1e38a6365a2e0c181e1a_400x112.png) - Eden 快速创建销毁的区间 - s0 标识 survive(存活区)0,s1的对象比s0活下去的可能性更大 - s0,s1等区域块慢了的时候在进行回收 - Tenured 老生代的用 Mark-Sweep 算法 - Permanent 永久存货的区域 ### V8(node.js) ![](https://img.kancloud.cn/a2/c1/a2c138fe5cf23954ab693af241fd830e_400x219.png)