数据结构与算法:Ring Buffer
剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
这篇文章主要讨论了计算机底层硬件运作和编程方式。作者介绍了缓存行的概念,指出数据在缓存中以缓存行为单位存储,一个缓存行通常是64字节,并可以存储多个变量。作者提到,在访问一个数组时,加载一个值到缓存中会额外加载与之相邻的值,因此可以快速遍历数组或连续内存块中的数据结构。这个概念在之前关于环形缓冲区的文章中也提到过。这篇文章对于学过这些知识的人来说是一次复习,对于未学过的人来说是一个简单的介绍。
从Disruptor说起,聊聊锁的缺点以及优化方案
1、不使用锁,使用CAS。锁涉及到操作系统,而CAS是CPU级别,更快。
2、RingBuffer只需要一个序列号来保存下一个可用的空间,减小竞争。
3、Cache Line Padding。
- «
- 1
- »