我正在研究一個嚴重需要性能調整的項目。執行TDD時的性能測試最佳實踐?
我怎樣寫一個測試,如果我的優化不會在提高程序的速度不成?
要詳細一點:
的問題是不是發現優化哪些部分。我可以使用各種分析和基準測試工具。
問題是使用自動化測試證明特定的優化確實具有預期的效果。如果我能夠使用測試套件發現後續的可能的性能迴歸,那也是非常理想的。
我想我可以只運行我的分析工具得到一些值,然後斷言,我的優化代碼產生更好的價值。但是,顯而易見的問題是基準價值並不是硬性價值。它們因當地環境而異。
那麼,答案始終使用同一臺機器做這種集成測試的?如果是這樣,您仍然必須考慮結果中的模糊性,因爲即使在相同的硬件上,基準測試結果也可能會有所不同。那麼如何考慮這一點呢?
或者,也許答案是保留舊版本的程序和前後對比效果?這將是我首選的方法,因爲它主要是環境不可知的。有沒有人有這種方法的經驗?我想如果所有測試都可以通過,如果最新版本的性能至少與前一版本一樣好,那麼只需要保留一個較舊的版本。
您是否將此斷言提交給修訂控制?你是否期望它被檢出在多種類型的機器上?如果是這樣(就像我想象的那樣),你如何提供任何合理的期望,你的斷言適用於更慢/更快的機器? – bukzor 2013-10-30 20:53:37