gpt4 book ai didi

java - 秒表基准测试是否可以接受?

转载 作者:IT老高 更新时间:2023-10-28 11:53:58 25 4
gpt4 key购买 nike

是否有人使用过秒表基准测试,或者是否应该始终使用性能工具?是否有任何适用于 Java 的好的免费工具?你用什么工具?

为了澄清我的担忧,秒表基准测试会因操作系统调度而出错。在您的程序的给定运行中,操作系统可能会在您正在计时的功能中间安排另一个(或多个)进程。在 Java 中,如果您尝试为线程应用程序计时,情况会更糟,因为 JVM 调度程序会在其中加入更多随机性。

基准测试时如何解决操作系统调度问题?

最佳答案

秒表基准测试很好,只要您测量足够次迭代是有意义的。通常,我需要一些个位数秒的总耗时。否则,您的结果很容易因调度和流程的其他 O/S 中断而严重偏离。

为此,我使用了一些我很久以前构建的静态方法,它们基于 System.currentTimeMillis()

对于我使用的分析工作 jProfiler多年来,发现它非常好。我最近查看了YourKit ,从网站上看起来很棒,但我个人根本没有使用过。

为了回答有关调度中断的问题,我发现重复运行直到达到/观察到一致性在实践中可以清除进程调度的异常结果。我还发现线程调度对于 5 到 30 秒的运行没有实际影响。最后,根据我的经验,在您通过几秒阈值后,调度对结果的影响可以忽略不计 - 我发现 5 秒的运行始终与 5 分钟的时间/迭代运行相同。

您可能还需要考虑预运行测试代码大约 10,000 次以“预热” JIT,具体取决于您期望测试代码在现实生活中随着时间推移运行的次数。

关于java - 秒表基准测试是否可以接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/410437/

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