内存对齐(Memory Alignment)

内存对齐是一种微优化技术,影响CPU性能,锁争用场景中,内存对齐对Java性能影响深远。

CPU高速缓存行

从内存中一次取出32字节、64字节、128字节(通常64,32/128也有),若一个变量刚好占这么多内存是理想的。

若数据与缓存行大小不一致,将存储在两行间。

内存对齐的意义

并非单纯的读取/写入性能。

并发操作数据时,锁定指令是否会同时锁住两条记录。

Java内存对齐

基于内存对齐队列,每秒可发送135M(135 Million)消息[135 Million messages a second between processes in pure Java]。

测试工具

https://github.com/nitsanw/psy-lob-saw