aeron
core
- MediaDriver
- Archive
- Raft Consensus
- Agrona/SBE serde
- Pub/Sub RPC
instructions
run aeron example with jdk17
|
|
run cookbook code
- remove jvm vendor configuration
references
disruptor
- 使用 cas 的方式实现线程安全,无锁所以减少了加锁释放锁带来的资源消耗
- 通过 padding 的方式减少伪共享,减少缓存失效以及重新加载带来的性能损失
- 预分配队列中的对象,对象可以重复利用只是重新赋值属性值,减少新建回收对象带来的性能损失
- 用数组来实现 ringbuffer,数组在内存中是一块连续的内存,并且访问也是顺序访问的,可以利用缓存优化提高性能
- 缓存的大小必须是 2 的 n 次方,方便位运算