4

jcstress:Java并发压力测试工具

 7 months ago
source link: https://www.jdon.com/72371.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

jcstress:Java并发压力测试工具 - 极道

Java 并发压力 (jcstress) 是实验性工具和一套测试,用于帮助研究 JVM、类库和硬件中并发支持的正确性。

为了理解 jcstress 测试并编写自己的测试,完成 jcstress-sample可能会很有用。这个样本源码分为三组:

  • APISample:解释 jcstress API;
  • JMMSample:解释 Java 内存模型的基础知识;
  • ConcurrencySample:展示了标准库有趣的并发行为。
  • 有关运行说明,请参阅测试注释。大多数测试可以这样运行:
 $ mvn clean verify -pl jcstress-samples -am
 $ java -jar jcstress-samples/target/jcstress.jar -t <test-name>

原理解释
测试安排为几个线程同时执行测试,有时会在共享状态上交会。每次运行都会生成多个状态对象。然后,线程会更改或观察该状态对象。测试线束收集观察到的状态的统计数据。在很多情况下,这足以捕捉到并发代码的重排序或违反契约的情况。

控制台输出可用于跟踪进度和调试。普通用户应使用生成的 HTML 报告,其中包含对结果的完整解释。

大多数测试都是概率测试,需要大量时间才能捕获所有情况。强烈建议延长测试运行时间,以获得可靠的结果。由于测试是有时间限制的,机器的 CPU 速度越快,jcstress 收集的样本就越多。在 harness 收集的样本数量和套件运行时间之间需要权衡。有几种预设模式可以设置合理的测试持续时间,请参见 -m。许多 CI 使用 -m quick 运行 jcstress,以加快周转。

测试失败并不立即意味着执行错误。通常的疑点是测试基础设施的错误、测试分级错误、硬件错误或其他问题。请分享您的结果并进行讨论,我们会找出问题所在。请先在相关邮件列表中讨论结果。

详细点击标题


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK