关于堆和栈、一级缓存和二级缓存的理解
数据结构的堆和栈
堆:先进先出的
栈:先进后出的、自顶向下
内存分布上的堆和栈
堆:也称为动态内存分配,是由我们自己在程序中分配内存和释放的,就是生存期是由我们自己决定的如malloc函数(注意避免内存泄漏)
栈:局部变量的内存,函数结束后内存自动被释放,栈内存分配运算内置于处理器的指令集中,它的运行效率一般很高,但是分配的内存容量有限。
静态存储区:全局变量、static变量;它是由编译器自动分配和释放的,即内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,直到整个程序运行结束时才被释放。
动态储存区:堆和栈
一级缓存和二级缓存
为什么需要缓存?
cpu运行速率很快,内存的读写速度就很慢,所以就需要缓存,缓存分为一级二级三级,越往下优先级越低,成本越低,容量越大
CPU读写速率:
寄存器>一级缓存>二级缓存
栈是在一级缓存里面的,堆是属于二级缓存,所以栈的效率比堆的高
本文深入探讨了数据结构中的堆和栈概念,及其在内存分配中的应用,同时讲解了一级缓存和二级缓存的工作原理,分析了它们在提高CPU读写速率中的作用。
771

被折叠的 条评论
为什么被折叠?



