ZGC 与 Shenandoah 是两款面向低延迟场景的并发垃圾回收器,均致力于将停顿时间控制在毫秒级。 一、核心机制对比 | 维度 | ZGC | Shenandoah | |||| | 并发标记 | 染色指针 | Brooks 转发指针 | | 并发转移 | 读屏障自愈 | 读写屏障 | | 最大堆支持 | TB
分类:后端开发
共 12 篇文章后端开发相关技术文章
Go 1.18 引入泛型,通过类型参数与类型约束实现代码复用,同时保持编译期类型安全。 一、类型约束定义 表示底层类型匹配,允许自定义类型(如 type MyInt int)也满足约束。 二、泛型数据结构 泛型适合容器、算法与工具函数,但不应滥用;接口仍是对行为抽象的首选。
CPython 解释器的核心痛点始终围绕着全局解释器锁(Global Interpreter Lock, GIL)。GIL 是一把互斥锁,其根本目的在于保护 CPython 的内存管理免受多线程竞争破坏。由于 CPython 依赖引用计数(Reference Counting)实现垃圾回收,若无 GIL 保护,并发对对
Go 运行时内存分配器借鉴 TCMalloc 设计,通过多级缓存减少锁竞争,而逃逸分析决定对象分配在栈还是堆上。 一、三级分配结构 mcache:每个 P 私有的小对象缓存,无锁分配 mcentral:全局中心缓存,管理特定 size class 的 span mheap:堆内存管理,向操作系统申请页 二、逃逸分析 编
Python 的协程能力脱胎于生成器,yield 关键字从单纯的值产出逐步演化为双向通信与异步调度的基础。 一、生成器的双向通信 send() 将值传入生成器,yield 既产出值又接收值,这构成了协程的雏形。 二、从 yield from 到 async/await yield from 简化了生成器委托,PEP 3