台灣最大程式設計社群網站
線上人數
1243
 
會員總數:243311
討論主題:188091
歡迎您免費加入會員
討論區列表 >> C# >> 記憶體不斷增長
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
記憶體不斷增長
價值 : 30 QP  點閱數:360 回應數:7

樓主


門外漢
0 18
114 13
發送站內信

請問各位學長姐List該怎麼釋放

最近有個程式隨時間一值增長記憶體造成當機
我查詢其它的討論 當東西沒被使用後一段時間會自動回收 所以我有用完把它改為null 但記憶體仍持續增長




搜尋相關Tags的文章: [ list ] ,
本篇文章發表於2018-05-07 13:30
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

IGBT
檢舉此回應
麻煩將變數sendList移動到fuction之外,只new一次
看看問題是否會改善

class TT {
List<string> sendList = new List<string>();

private void sendList(Object text1) //每10分鐘開一Thread線程執行一次 (每次執行不到一秒就執行結束了)
{
sendList.Clear();
foreach(string s1 in (String)text1.split('&'))
{
sendList.Add(s1);
}
go(sendList); //自訂把資料發送出去
}
}
本篇文章回覆於2018-05-07 18:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

小魚
檢舉此回應
應該是要先Clear再null,之後要用再New,
GC就會找時間來你們家回收了。
你可以試試純粹Clear能不能釋放記憶體。
本篇文章回覆於2018-05-07 22:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應


檢舉此回應
收到
感謝學長姐的指導
我測試看看再報告結果
本篇文章回覆於2018-05-08 09:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應


檢舉此回應
>>IGBT

請問如果把new寫在外面
那如果任何情況造成發送延遲
會不會有資料蓋資料的問題(像List被A線程給值11111 還沒發送成功 被B線程覆蓋為22222 然後發了兩次22222)
還是不會影響
本篇文章回覆於2018-05-08 09:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

春天
檢舉此回應
試試這樣

本篇文章回覆於2018-05-08 10:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應


檢舉此回應
收到 我跑一段時間試一下
本篇文章回覆於2018-05-08 10:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應


檢舉此回應
方法可行 記憶體有下降了 也學到了lock 感謝學長姐們
本篇文章回覆於2018-05-08 13:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.