作者Whistler (Bicycle)
看板C_Sharp
標題Re: [問題] 如何得知各個type可儲存大小的極限?
時間Thu Jan 13 07:25:59 2005
在任何platform你要一次allocate一個這麼大的區塊 尤其是連續的
都很有可能會碰到這種memory fragmentation的問題
所以這是一個不好的習慣
如果你硬要這樣寫 那或許你換到64bit的機器比較容易成功
※ 引述《virdust2003 (替機殼洗個熱水澡)》之銘言:
: 改這樣可以嗎?
: StringBuilder sb = new StringBuilder(400mb);
: ※ 引述《phe (hmmm)》之銘言:
: : 請問各位....我有一個大約400MB的檔案, 想把他一次讀進來
: : StreamReader sr = new StreamReader("file");
: : StringBuilder sb = new StringBuilder();
: : string buffer;
: : while((buffer = sr.ReadLine() != null)
: : {
: : sb.Append(buffer);
: : }
: : 因為我的記憶體有1.25G, 所以依據我的想法這樣應該是可以讀完才對
: : 但是程式會在執行到一半時就丟出OutOfMemoryException,
: : 可是我檢查windows工作管理員發現可用的實體記憶體還有400多
: : 請問這是為什麼?
: : (當然我也沒一定非要用這方法寫, 只是純粹很好奇位啥記憶體沒用完就會exception產生)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 131.107.71.93