企業級管理軟件的web應用和普通的web站點,B2C等有很大的不同。內存泄露的檢查點也會不同。
檢查點一:什么信息需要緩存在session中在各種管理軟件中,最常見的是把當前用戶的權限等信息緩存在session中。好啦,問題來了,如果系統的權限很復雜:操作權限,管理權限,數據權限,字段權限,巴拉巴拉一大堆的話,那么把這大堆信息放到session中,一個用戶就要占掉20M+的內存。訪問用戶一多,系統就掛了。而且管理軟件一般都會把session的timeout設置的很多,除非用戶手動的注銷,否則即使木有操作也會吊在系統上很久。因此要評估此部分的設計,把不必要的或者訪問不頻繁的數據拖出session,放過session TA老人家吧。
檢查點二:session數據傳遞
管理系統很多都會采用幀結構,常見的上幀查詢條件,下幀顯示結果。問題來了,采用幀結構如果傳遞數據到頁面,就要通過session。開發的時候,一般都是后臺開發負責業務邏輯,前臺開發負責數據展示。前后開發一脫節,后臺向前臺傳遞了一個集合對象,前臺木有用,也不管清除。這堆垃圾數據全部都駐留內存,所以系統跑著跑著就宕機了。
檢查點三:不要試圖通過頁面來實現分頁
管理系統由于業務復雜性等要求,大家都把注意力首先放在實現業務功能上,有時對數據的量級不是很關注。有的系統剛開始好好的,用著用著不不爽了,原因就是數據量一增加,很多相關的問題都會暴露出來。最常見的是分頁處理,先把數據都取過來,在前臺分頁顯示。千萬不要這樣,100條數據木有問題,1000條,10000條呢,結果就是前臺很忙,然后就掛掉了。