[問題] DataTable與記憶體的管理的方式
各位好
現在的情況是這樣子
我要拉歷史資料出來跑, 大概兩個禮拜的份
每天大約六組別,每組大約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