JAVA性能調優之基本調優策略和手段

性能優化的一般步驟
對系統軟件進行優化,首先需要有明確的性能目標,清楚地指出優化的對象和最終目的.其次,需要在目標平臺上對軟件進行測試,通過各種性能 監控和統計工具,觀測和確認當前的系統是否已經達到相關目標,若已經達到,則沒有必要再進行優化;若當前系統性能尚未達到優化目標.則需要查找當前的性能瓶頸.
可能成爲性能瓶頸的因素有很多,比如:磁盤I/O,網絡I/O和CPU.當找到性能瓶頸後,首先需要定位到相關代碼,確認是否在軟件實現上存在問題或者優化空間.若有,則進行代碼優化;若已經沒有代碼優化空間,則需要考慮進行JVM層,數據庫層或者操作系統的優化.甚至,可以考慮修改原有設計, 或則提升硬件性能.
當優化完成之後,需要在目標平臺上進行確認測試.若達到性能目標,則優化過程結束,若沒有,則需要再次查找系統瓶頸,以此反覆程序優化流程圖
軟件性能優化雖然能提升軟件的性能,但是優化過程往往伴隨着一些風險和弊端.比如,爲了優化某一段代碼的實現,就需要重寫原來的算法,而這個過程往往就會爲程序帶來bug,重新實現新的功能模塊也同時以爲着需要重新對其進行完整的功能測試,使優化前所有做的測試工作變得毫無意義.而且,優化後的代碼與優化前的代碼相比,可能會比較晦澀難懂,從一定程度上影響了系統的可維護性.因此,軟件優化需要在軟件功能,正確性和可維護性間取得平衡,而不應該過分地追求軟件的性能.
在進行優化前,必須要明確的已知問題和性能目標,決不可以爲了”優化”而”優化”,在動手之前,必須知道自己要幹什麼? 任何優化都是爲了解決具體的軟件問題,如果軟件以及正常工作,在性能問題沒有暴露前,只是憑着主觀臆斷對某個模塊進行性能改善,從軟件規範化開發的角度上來說,是非常冒險的.因爲修改後的 新代碼沒有經過完整的測試,軟件質量上沒有保障.而且,優化收的性能提升幅度可能也不足以讓開發者費盡心機.因此,在進行軟件優化的時候,必須要進行慎重的評估.
性能優化必須有明確的目標,不要爲了優化而優化,如果當前程序沒有明顯的性能問題,盲目地進行調整,其風險可能遠遠大於收益.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章