gpt4 book ai didi

java - 如何进行良好的性能比较测试?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:41 24 4
gpt4 key购买 nike

要编写好的比较测试,您必须运行它数千(百万)次。它将(在大多数情况下)平衡其他程序的影响。

但是如果 JVM 可以影响结果。例如:

第一个解决方案是:

    final StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(getStrOne());
stringBuilder.append(getStrTwo());
final String result1 = stringBuilder.toString();

第二个是:

    final String result2 = getStrOne() + getStrTwo();

我不知道哪个更好,因为 JVM 会影响结果。如何知道哪个更好?

更新:我的意思不完全是那个附加的组合测试。我问的是这样一个难以测试的情况

最佳答案

我最近执行了一些基准测试,这些测试依赖于此处找到的优秀 IBM 文章:http://www.ibm.com/developerworks/java/library/j-benchmark1/index.html .

文章描述了许多可能影响结果准确性的陷阱,例如:

  • 运行时优化/重新编译您的代码。
  • 消除死代码(即未使用的结果会导致您的测试代码被删除)
  • 垃圾收集
  • 缓存
  • ...

最后,文章链接到一个框架可以是downloaded的网站.该框架在假脱机测试方法、寻找重新编译的证据以及等待执行时间稳定下来方面做得非常好。

关于java - 如何进行良好的性能比较测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15294426/

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