1. 程式人生 > >一般專案常用效能調優方法(二)

一般專案常用效能調優方法(二)

功能優化

從功能設計上,避免一次性載入大量資料。遇到一次性載入大量資料的,通過以下問題尋找功能優化方式:

1.       設定預設查詢條件,僅載入部分資料。如對於監測資料的查詢分析,可預設僅查詢當天或當月的資料;

2.       將資料展示使用類似TAB的元素分開,根據使用者操作,採用AJAX分步載入資料

3.       實時性要求不高的資料,不要實時查詢,可快取或者放到Session

程式碼調優

SQL優化

1.       儘量使用join,不要使用子查詢

2.       可能的情況下,儘量使用UNION ALL來代替UNION

小竅門:可使用PL/SQL 或者 SQLServer Management Studio檢視SQL的執行計劃,進而對SQL進行優化。

快取的使用

關於EhCache、Redis的使用,請自行百度。

耗時操作的處理

需求:對某事項進行審批,審批通過後發郵件給提交人。發郵件即為一個耗時操作,如果審批通過後,在當前執行緒中執行發郵件的操作,則會阻塞當前執行緒,直到郵件傳送結束。經驗分享:

耗時操作可以啟動一個新的執行緒執行,避免阻塞當前執行緒(request)

或者將耗時操作僅僅設定一個未執行的狀態,後臺跑一個QZ任務,定時批量執行。

程式碼邏輯調優

1.       避免for 多層巢狀

2.       避免對大陣列的迭代對比,考慮使用Arrays.binarySearch()