原则一:测试真实应用
1.微基准测试
2.宏基准测试
3.介基准测试
好的基准测试既难写,价值又有限,如果必须使用它,那可以用它来快速了解性能,但不要依赖他们;
测试完整应用是了解它实际运行的唯一途径;
在模块或者操作级别隔离性能-介基准测试-相对于应用测试来说,是一种合理途径,而不是替代方法;
原则二:理解批处理流逝时间,吞吐量,响应时间
JAVA性能测试很少使用面向批处理的测试(或者任何热身期的测试),但是这种测试可以产生很有价值的结果。
替他可以测量吞吐量活响应时间的测试,则依赖负载是否以固定的速率加载(基于模拟的客户端思考时间)
原则三:用统计方法应对性能的变化
正确评定测试结果间的差异需要统计分析,通过统计分析才能确定这些差异是不是归因于随机因素;
可以用严谨的t检验来比较测试结果,实现上述目的;
t检验可以告知我们变动存在的概率,却无法告诉我们哪种变动该忽略,而哪种该追查。如何在两者之间找到平衡。
原则四:尽早频繁测试
虽然频繁的性能测试很重要,但并非毫无代价,在日常的开发周期中需要仔细斟酌
自动化测试系统可以收集所有机器和程序的全部统计数据,这可以为查找性能衰减问题提供必不可少的线索;