企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
># 栈和堆 - 在计算机科学中,堆(Heap)和栈(Stack)是两种用于存储和管理内存的数据结构,它们在内存分配和释放方面具有不同的特点和用途。 - Go 语言有两部分内存空间:栈内存和堆内存。 >### 栈 - 栈是一种线性数据结构,遵循后进先出的原则 - 栈上的数据生命周期短,出栈后销毁 , - 用于存放函数的调用的参数值、局部变量等,用完释放不需要gc >### 堆 - 堆是一树数据结构,通常是一个大的内存区域 - 全局、持久化、动态分配数据分配在这 - 频繁的内存申请容易产生内存碎片 - 堆的申请和释放工作由程序员控制,需要gc进行垃圾回收,容易产生内存泄漏 - 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序