PS,1880后程序員

          看不完的牙,寫不完的程序,跑不完的步。
          隨筆 - 97, 文章 - 34, 評論 - 10, 引用 - 0
          數據加載中……

          web應用中常出現的內存泄露

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

          posted on 2013-01-16 11:32 amenglai 閱讀(378) 評論(0)  編輯  收藏 所屬分類: 我愛內存泄露

          主站蜘蛛池模板: 静安区| 安福县| 土默特右旗| 新建县| 东乌珠穆沁旗| 尉犁县| 萝北县| 华宁县| 二连浩特市| 正安县| 灵寿县| 沽源县| 历史| 历史| 武邑县| 织金县| 义马市| 嘉黎县| 宁乡县| 垦利县| 镶黄旗| 台中市| 榕江县| 宁都县| 图片| 江门市| 朝阳市| 修文县| 开原市| 冷水江市| 得荣县| 金寨县| 巴东县| 山东| 婺源县| 江陵县| 洛扎县| 措勤县| 德令哈市| 乌海市| 瓦房店市|