作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
要编写好的比较测试,您必须运行它数千(百万)次。它将(在大多数情况下)平衡其他程序的影响。
但是如果 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/
我是一名优秀的程序员,十分优秀!