1. 类生产环境
让性能测试环境尽可能的接近生产环境,这样才能保证测试的准确性。如机器的配置、操作系统、应用软件版本、软件的部署方式,数据量等都要尽可能的接近生产环境。
2. 基准测试
每次性能测试,只改变其中一个参数,并将此性能测试结果同之前的性能测试结果进行比较。如果测试过程会产生一定的数据,则每次测试前需要将数据保持在初始状态,否则就可能会因为数据量的不同对结果造成影响,造成性能测试结果失真。
3. 预热
系统运行阶段分为预热阶段和稳定阶段,性能测试要采集稳定阶段的数据。比如对于JIT编译器 client模式下运行1500次,会编译为本地机器码,提高运行效率;比如Java运行初期会加载类;性能测试达到稳定阶段后再进行结果统计。
4. 日志级别
由于IO速度较慢,IO通常会成为系统的瓶颈,生产环境上一般将日志级别调整到ERROR级别,以减少对磁盘IO的消耗。所以性能测试应该也将日志级别调整到ERROR级别。
参考资料:
葛一鸣:《Java性能优化》
《Java性能优化权威指南》
《淘宝性能测试白皮书2012最新版本》
让性能测试环境尽可能的接近生产环境,这样才能保证测试的准确性。如机器的配置、操作系统、应用软件版本、软件的部署方式,数据量等都要尽可能的接近生产环境。
2. 基准测试
每次性能测试,只改变其中一个参数,并将此性能测试结果同之前的性能测试结果进行比较。如果测试过程会产生一定的数据,则每次测试前需要将数据保持在初始状态,否则就可能会因为数据量的不同对结果造成影响,造成性能测试结果失真。
3. 预热
系统运行阶段分为预热阶段和稳定阶段,性能测试要采集稳定阶段的数据。比如对于JIT编译器 client模式下运行1500次,会编译为本地机器码,提高运行效率;比如Java运行初期会加载类;性能测试达到稳定阶段后再进行结果统计。
4. 日志级别
由于IO速度较慢,IO通常会成为系统的瓶颈,生产环境上一般将日志级别调整到ERROR级别,以减少对磁盘IO的消耗。所以性能测试应该也将日志级别调整到ERROR级别。
参考资料:
葛一鸣:《Java性能优化》
《Java性能优化权威指南》
《淘宝性能测试白皮书2012最新版本》