AQS有没有伪共享【yetdone 重要】

image

 

tail与state离得很近:

image

 

很大可能会存在于同一个64字节缓存行

但通过加入117-119行代码做BC/AC测试,并未发现显著性能差异,猜测为业务代码本身耗时已经远大于cache miss的影响

如果需要进一步论证:

1)perf查看一级缓存miss,但是这并不是有力证据

2)以fake.AbstractQueuedSynchronizer#compareAndSetState为靶点,查看字节码的本地调用,然后再用perf火焰图对比BC/AC

 

CPU时间都去哪了:一步步定位数据库代码中的性能瓶颈

https://zhuanlan.zhihu.com/p/58881925?share_code=15Mswm560dwnw&utm_psn=1936193526137353961

 

 

jvm为什么不把成员变量打散,彻底打断伪共享可能?

意味着程序员将没可能依据cpu缓存空间局限性优化代码?

posted on 2025-08-05 22:27  silyvin  阅读(16)  评论(0)    收藏  举报