作者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