CPU/内存/缓存行/Disruptor
来源:互联网 发布:java常用api详解 编辑:程序博客网 时间:2024/06/03 21:00
CPU/内存/缓存行/Disruptor:缓存分为多级缓存(L1/L2/L3...多级缓存)+主存mainMemory,内存中存储的是运行程序和所需数据,
不同级别的缓存大小分配不一样,而且反应速度不一样,一般反应速度越快的缓存所分配的大小越小;
每一级别的缓存又包括很多级别的缓存行,不同计算机分配的缓存行大小不同,eg:32字节、64字节、128字节等;
(备注:因为数组是连续地址存储的,所以一个缓存行上存放多个数组元素,剩余的元素也存放在相邻的缓存行上,所以访问数据时速度要比访问链式数据的速度要快)
加载缓存行上的数据时,程序会加载缓存行上所有的数据(如果一个缓存行上存储的多个数据是不相关的,互不影响的数据,这样就出现过度过多加载,浪费CUP等,
更危险的是一个缓存行上2个不同的数据同时被加载到2个线程中处理,因为处理速度不同,第二个线程处理完成时重写缓存中的数据可能会覆盖掉第一个线程处理写入的结果,
解决方式--伪共享、缓存行填充)
参考:http://blog.csdn.net/kobejayandy/article/details/41025391
0 0
- CPU/内存/缓存行/Disruptor
- disruptor --神奇的缓存行填充1
- disruptor --神奇的缓存行填充2
- 寄存器、CPU缓存内存的关系
- cpu缓存与程序内存分布
- CPU缓存
- CPU缓存
- CPU缓存
- CPU缓存
- CPU缓存
- 剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
- 剖析Disruptor为什么会这么快?神奇的缓存行填充
- 从缓存行出发理解volatile变量、伪共享False sharing、disruptor
- 从缓存行出发理解volatile变量、伪共享False sharing、disruptor
- 剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
- 剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
- 剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
- 剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
- 类加载过程代码实例
- Impala源代码学习序
- How to Generate a Good Word Embedding(学习笔记)
- Java:String和Date、Timestamp之间的转换
- javascript流程控制、循环控制
- CPU/内存/缓存行/Disruptor
- servlet_05 servlet使用表单的GET方法实例
- java多线程总结
- Leetcode 257. Binary Tree Paths
- Light OJ 1024(高精度乘)
- Eclipse4.3 swt 插件在线安装
- 小程序-编辑器插件
- C语言再学习-- readelf、objdump、nm使用详解
- HMC(Hamiltonian Monte Carlo抽样算法详细介绍)