2.5 小结

性能测试包括各种权衡。面对诸多相互制约的选择,我们能否做出适当的决策,对于系统性能能否提升至关重要。

性能测试应该先测哪部分,与我们的经验和直觉息息相关。微基准测试在这方面的作用最小,它的用途仅限于为某些操作设立宽泛的指导。这为其他测试留下广泛的施展空间,从小模块的测试到大规模多层的应用环境。所有这些测试都有某方面的价值,如何选择就得依靠经验和直觉了。不过最终部署到生产环境中之后,除了全应用测试,就没什么可选了。只有到那时才能理解所有与性能相关的问题以及全部影响。

与此类似,哪些代码导致或没导致性能衰减,并不总是皂白分明的。程序时不时会表现出随机行为,而一旦引入了随机性,我们就再也无法 100% 确定这些数据意味着什么了。使用统计分析有助于使结果变得更客观,但即便如此,仍然免不了主观臆断。理解这些数据背后的概率及其意义,有助于降低主观性。