Re: [問題] 如何得知各個type可儲存大小的極限?

看板C_Sharp (C#)作者 (Bicycle)時間20年前 (2005/01/13 07:21), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
在任何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
文章代碼(AID): #11vR3abM (C_Sharp)
文章代碼(AID): #11vR3abM (C_Sharp)