我正在做一个非常需要一些性能调整的项目。
如果我的优化没有提高程序的速度,我该如何编写失败的测试?
详细说明一下:
问题不在于发现要优化哪些部分。我可以为此使用各种分析和基准测试工具。
问题在于使用自动化测试来证明特定优化确实具有预期的效果。如果我以后可以使用测试套件来发现可能的性能回归,那也是非常可取的。
我想我可以运行我的分析工具来获取一些值,然后断言我的优化代码会产生更好的值。然而,明显的问题是基准值不是硬值。它们因当地环境而异。
那么,总是使用同一台机器进行这种集成测试的答案是什么?如果是这样,您仍然必须考虑结果中的一些模糊性,因为即使在相同的硬件上,基准测试结果也可能会有所不同。那么如何考虑到这一点呢?
或者答案可能是保留旧版本的程序并比较前后的结果?这将是我的首选方法,因为它主要与环境无关。有没有人有这种方法的经验?我想只有在最新版本的性能至少与前一个版本一样好的情况下,如果所有测试都可以通过,则只需要保留一个旧版本。