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

tail与state离得很近:

很大可能会存在于同一个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缓存空间局限性优化代码?
浙公网安备 33010602011771号