摘要: 1、架构图 2、基本概念 G:gorutine协程,由go关键字创建。主要作用是执行逻辑代码。 P:Processor处理器,最多有 GOMAXPROCS个。主要作用是维护调度G。 M: 操作系统线程的抽象结构,维护着内核线程信息,代码的实际执行者。 3、调度概述 go程序启动时,会根据GOMAXP 阅读全文
posted @ 2022-03-07 22:57 hugeQAQ 阅读(69) 评论(0) 推荐(0) 编辑
摘要: go语言的内存分配不是每次都触发系统调用,go程序运行开始,先向操作系统申请一块较大的内存空间,然后由go在运行时分配 go内存分配的基本单元的mspan,为了减少内存碎片,go有67种大小的mspan,给对象分配最接近的mspan GPM模型中,每个P有一块本地内存mcache,小对象直接从mca 阅读全文
posted @ 2022-03-07 22:55 hugeQAQ 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1、什么是GC? 字面意思:垃圾回收,对于已经分配且不再有用的内存进行回收的管理机制或程序 2、为什么要GC? 防止内存溢出(OOM) 3、怎么GC? GO的GC基于标记法,将对象分为三种颜色:黑色(有用对象)、灰色(被引用对象,不知道还有没有其他依赖对象)、白色(不被引用对象,需要被回收)。 GC 阅读全文
posted @ 2022-03-07 22:42 hugeQAQ 阅读(188) 评论(0) 推荐(0) 编辑