gpt4 book ai didi

java - 测量无等待多线程 Java 程序中的争用

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:13:59 26 4
gpt4 key购买 nike

我有一个二叉搜索树的无等待实现,但我无法找出衡量线程争用的具体方法。这里所说的争用是指同时尝试访问同一 block 内存的线程数。

到目前为止,我已经搜索了 ThreadMXBean 和 ThreadInfo 类,但是由于不涉及锁,所以我还没有找到任何解决方案。

最佳答案

如果没有令人望而却步的性能成本,就无法衡量对“内存位置”的争用。直接测量(例如,正确同步计数器包装所有访问)将引入人为瓶颈,这将破坏测试可靠性。

“同一时间”在您要测量的尺度上松散定义,因为在给定时间内只有一个 CPU“拥有”内存中的特定位置。在这种情况下,您可以做的最好的事情是测量 CPU 处理内存冲突的速率,例如通过硬件计数器。这样做需要了解给定平台上的内存子系统。此外,机器(= CPU)状态的硬件计数器属性,而不是内存状态;换句话说,您可以估计特定指令经历了多少次冲突,而不是有多少 CPU 访问了给定的内存位置。

关于java - 测量无等待多线程 Java 程序中的争用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23630597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com