原則一:測試真實應用
1.微基準測試
2.宏基準測試
3.介基準測試
好的基準測試既難寫,價值又有限,如果必須使用它,那可以用它來快速瞭解性能,但不要依賴他們;
測試完整應用是瞭解它實際運行的唯一途徑;
在模塊或者操作級別隔離性能-介基準測試-相對於應用測試來說,是一種合理途徑,而不是替代方法;
原則二:理解批處理流逝時間,吞吐量,響應時間
JAVA性能測試很少使用面向批處理的測試(或者任何熱身期的測試),但是這種測試可以產生很有價值的結果。
替他可以測量吞吐量活響應時間的測試,則依賴負載是否以固定的速率加載(基於模擬的客戶端思考時間)
原則三:用統計方法應對性能的變化
正確評定測試結果間的差異需要統計分析,通過統計分析才能確定這些差異是不是歸因於隨機因素;
可以用嚴謹的t檢驗來比較測試結果,實現上述目的;
t檢驗可以告知我們變動存在的概率,卻無法告訴我們哪種變動該忽略,而哪種該追查。如何在兩者之間找到平衡。
原則四:儘早頻繁測試
雖然頻繁的性能測試很重要,但並非毫無代價,在日常的開發週期中需要仔細斟酌
自動化測試系統可以收集所有機器和程序的全部統計數據,這可以爲查找性能衰減問題提供必不可少的線索;