在 Java 中生成 CPU 负载
2022-09-03 17:56:38
我正在进行一些吞吐量测试。我的申请必须
- 从 JMS 读取
- 做一些处理
- 写入 JMS
我在这里的目标是模拟#2,“一些处理”。也就是说,在转发事件之前,引入延迟并占用CPU一个给定的时间(例如500ms)。
幼稚的方法是.这将在执行中引入正确的延迟,但不会执行 CPU。Thread.sleep(500)
计算斐波那契数列是一种选择。有没有人使用任何有趣的技术来让CPU在给定的时间内保持忙碌?
理想的特征是:
- 执行各种指令,而不是(例如)只是在循环中旋转
- HotSpot VM 不会优化到什么都没有的东西
- 具有向上或向下调整处理周期的简单方法(完成时间会因硬件而异)