- 2024-03-13golang内存管理
解释定义:mheap:用于管理整个堆内存,mheap管理多个arena,arena管理多个span,一个span由多个page组成,一个arena有8192个page,page由内存块组成mspan:一个span对应一个mspanmcentral:mheap里有一个全局的mspan管理中心包含mcentral数组,0-135mcentral,一个mcentral(管理对应类型的spa
- 2024-02-24go堆内存分配
mutator申请内存是以应用视角来看问题,我需要的是某一个struct,某一个slice对应的内存,这与从操作系统中获取内存的接口(比如mmap)之间还有一个鸿沟。需要由allocator进行映射与转换,将以“块”来看待的内存与以“对象”来看待的内存进行映射。在现代CPU上,我们还要考虑内存分配
- 2023-12-27Golang基础(一)
粗略了解Golang的核心特性Go语言的特性一、并发编程不同于传统的多进程或多线程,golang的并发执行单元是一种称为goroutine的协程。其在语言级别提供关键字:go——用于启动协程。chan——golang中用于并发的通道,用于协程的通信。select——golang提供的多路复用机制。close
- 2023-12-03go 内存管理
协程栈go栈的位置1.Go协程栈位于Go-堆内存上2.Go堆内存位于操作系统虚拟内存上go栈的工作流程以main.main为出发点要记录runtime.main的栈基地址记录a和b的局部变量值开辟一个空间记录sum函数的返回值记录b和a的值,这里是为了方便sum在执行时候,