我的一個服務(wù)程序,從開始啟動的15M左右,內(nèi)存使用不斷的增加。
主要有以下幾個操作:
1. 實時掃描數(shù)據(jù)庫的兩張表,這個動作放在線程里面進(jìn)行處理的
while(true){Thread.Sleep(100);....}
2.從遠(yuǎn)程網(wǎng)站上通過webservice取數(shù)據(jù),經(jīng)試驗,這個會導(dǎo)致內(nèi)存每2s增加1M左右。
3.程序里面有幾個隊列,作為緩沖區(qū)用,也有線程實時掃描這個幾個隊列。
我的使用率非常高的類,沒有實例化IDisposable接口,感覺沒必要實現(xiàn)這個接口,因為里面成員全都是值類型的,屬于托管資源。
現(xiàn)在,我實在是找不到到底是什么原因?qū)е聝?nèi)存沒有釋放,請各位大牛提提意見,在此跪謝啦~~~
1 回答

汪汪一只貓
TA貢獻(xiàn)1898條經(jīng)驗 獲得超8個贊
是否是集合不斷的增加了內(nèi)容,或者循環(huán)內(nèi)使用,最好手動清空集合或?qū)ψ兞吭O(shè)置為null,Thread.Sleep(100);這么短的時間估計GC處理會有一定的問題
估計是GC壓力太大或其他的內(nèi)存泄露,關(guān)于GC參考CLR Via C#這本書對應(yīng)的章節(jié),理解了GC和內(nèi)存泄露可以解決你這個問題
- 1 回答
- 0 關(guān)注
- 528 瀏覽
添加回答
舉報
0/150
提交
取消