gpt4 book ai didi

java - 如何在 Java 中对主机多线程 CPU 性能进行基准测试?

转载 作者:行者123 更新时间:2023-11-30 10:04:52 24 4
gpt4 key购买 nike

我需要创建一个只返回一个数字的简单 Java 应用程序:估计的 CPU 性能。例如,当我在具有 4 个内核的机器上运行它时,我得到的数字大约是使用 2 个内核运行时的两倍。这个应用程序应该使用 100% CPU 几秒钟来测量它。我真的不担心准确性。

我真的很惊讶我找不到任何已经这样做的 Java 库。当然也有其他语言的工具,但在我的环境中只批准了 Java。

我目前的想法是使用来自 SciMark 2.0 的类在我的代码中并从多个线程运行它,但是这个工具看起来非常困惑(例如,类名以小写字母开头),我需要编写自定义代码来运行这些线程并合并结果。

我可以做更好的事情来解决这个问题吗?

最佳答案

这是一段最简单的代码,可以满足我的要求。它尝试通过计算后续整数的平方根和来估计多线程的 CPU 性能。可以调整变量 iterations 以增加/减少基准测试的长度。在我的机器上使用默认值大约需要 7 秒。

import static java.util.stream.IntStream.rangeClosed;

class Benchmark {
public static void main(String[] args) {
final int iterations = 100_000_000;
long start = System.currentTimeMillis();
rangeClosed(1, 50).parallel()
.forEach(i -> rangeClosed(1, iterations).mapToDouble(Math::sqrt).sum());
System.out.println(System.currentTimeMillis() - start);
}
}

关于java - 如何在 Java 中对主机多线程 CPU 性能进行基准测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55615689/

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