1.一级缓存&二级缓存
缓存存在的目的是为了缓解cpu高速运算速率与读取内存低速率之间的矛盾,提高cpu读取的命中率,cpu读取数据的时候,首先在缓存中查找,然后再去内存中查找,因为读取缓存速度比读取内存速度快得多。
缓存分为一级缓存,二级缓存,甚至于三级缓存,读取速度依次降低,容量也依次增大,一级缓存中的数据是二级缓存中部分数据的镜像,二级缓存中的数据是三级缓存中部分数据的镜像,三级缓存中的数据是内存中部分数据的镜像。其中的部分数据是cpu最近需要访问的数据。
– | 一级缓存 | 二级缓存 |
---|---|---|
位置 | cpu内部 | cpu和内存之间的地址 |
读取速度 | 快,仅次于cpu内部的寄存器 | 比一级缓存慢,但是比读内存快 |
容量 | 比较小 | 大 |
2.堆栈
– | 堆 | 栈 |
---|---|---|
分配方式 | 由程序员分配释放(或垃圾回收机制) | 由操作系统分配释放 |
缓存方式 | 二级缓存 | 一级缓存 |
方便性 | 自己分配,方便 | 系统分配,不方便 |
存储内容 | 程序员决定,例如指针中的内容 | 函数调用时的形参,局部变量 |