[問題] DataTable與記憶體的管理的方式

看板C_Sharp作者 (Racerlution)時間15年前 (2010/12/08 15:23), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
各位好 現在的情況是這樣子 我要拉歷史資料出來跑, 大概兩個禮拜的份 每天大約六組別,每組大約2000筆(但是跑到500筆就break換下一組) 我每拉一個組別出來跑完,都會將datatable clear, dispose, 再來GC.Collect 至於每筆會用到4~5個reader, 但是是宣告成全域變數 問題來了~ 一開始沒有datatable dispose, GC.Collect,reader有12個且為區域變數時 我幾乎只跑完歷史資料的一天,記憶體吃掉將近800MB 而虛擬記憶體更扯,吃掉1.6GB 但是加入dispose, GC.Collect,並且將reader改成全域變數後 記憶體能維持在70~200MB間,但是虛擬記憶體仍然往上成長中 這個虛擬記憶體有辦法跟著釋放掉嗎~? 還是說這是OS控制的,不受程式管控? 很難想像這樣跑下去兩個禮拜的歷史資料,虛擬記憶體會變成多大@@ 敬請指教,謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.149.87
文章代碼(AID): #1C_p9oMo (C_Sharp)