Re: [問題] list memory usage
※ 引述《cole945 (躂躂..)》之銘言:
: 似乎不太正常@.@a
: 你可以用 Memroy Profile 來檢查是什麼部份用了這麼大量的記憶體..
: 微軟自己有給免費的 CLR Profile (含source)
(恕刪)
Profiling 有點複雜..沒看 documentation 我看我是看不懂的了
不過我的程式還蠻簡單的..只是用 OpenFileDialog 選檔,之後讀檔案就這麼大了
除了一個 List<string> 存最上面一行的 header 之外,另外就是 List<object[]>
(我改了),其他都是 local variable 應該會被 garbage collect,
但還是差不多接近500MB真是不可思議!
整個檔案都是 ascii 所以似乎不需要用 utf-16,不過大部分的檔案內容都是數字,
而且大部分都是小數字。所以,我想說讀進來之後用 byte.TryParse() 轉成 byte,
如果裝不下 TryParse 會fail 再嘗試 ushort.TryParse(),最後再用
Int32.TryParse()。如果都 fail 應該就是字串就直接存 string。這些都把它存在
object[] 裡面然後存在 list裡頭。
不過好奇的是..我全部都用 Int32 或 String 裝跟我用 byte, ushort, int, string
分裝在記憶體大小上似乎沒有差異呢! 都是用掉約 460,xxx K。原檔案27,528行
如果把檔案砍剩 10,001 行記憶體就只會用掉 188,xxx K。感覺..真的就是開檔用掉的。
把程式 minimize 之後馬上記憶體用得變少,我猜是因為 swap out 了吧。(我是用
工作管理員看的)
請問為什麼我改用 byte 裝大部分數據資料沒有比全用 Int32 裝較省空間啊?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.129.77.13
推
06/10 04:16, , 1F
06/10 04:16, 1F
推
06/11 18:29, , 2F
06/11 18:29, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章