c# 文件保存 内存一直增加!!

wwwsyz 2007-03-29 01:58:53
一个简单爬虫
采用异步非阻塞方式对已知url列表进行采集(10w+)
采集过程中,出现一个问题
文件保存过程中 内存一直增加!

定位在文件保存,是因为我在关闭了文件保存(其他代码一样,仅将保存的操作进行了屏蔽)
内存基本上维持在相对稳定的区间波动.

保存代码就一句:
System.IO.File.AppendAllText(filename,source,encoding)

分不够继续加!
...全文
329 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwsyz 2007-03-29
  • 打赏
  • 举报
回复
也用不着Collect()
记得以前写个播放器,开始内存占100k,播着就一直上升直彪到30M,然后自己回收突然下降到100k 如此循环...

是这样,内存上升到一定程度有回落,但不明显.
担心机器内存快被这个进程吃完了.(^_^)
添加上手工回收后会上升,基本上能接受!!

多谢!!!

最近写爬虫相关程序!有做类似的朋友多交流!!
Red_angelX 2007-03-29
  • 打赏
  • 举报
回复
也用不着Collect()
记得以前写个播放器,开始内存占100k,播着就一直上升直彪到30M,然后自己回收突然下降到100k 如此循环...
wwwsyz 2007-03-29
  • 打赏
  • 举报
回复
谢谢楼上的热心回复! 先谢了!!

System.IO.File.AppendAllText(filename,source,encoding)
这么写试试
StreamWriter sw = new StreamWriter(filename,false,encoding);
sw.Write(source);
sw.Close();

两种方法进行测试,差别不大!

试下GC.Collect()看下效果!!
ufoteam 2007-03-29
  • 打赏
  • 举报
回复
关闭以后,将变量设置为null,然后GC.Collect(),强制回收
tgl10 2007-03-29
  • 打赏
  • 举报
回复
同意ls的,应该是还没释放,直接操作流试下
hertcloud 2007-03-29
  • 打赏
  • 举报
回复
这个 可能 不是程序 问题
而是你频繁的操作造成 framework来不及释放刚才的内容
要知道 .net的内存释放并不是及时的.
Red_angelX 2007-03-29
  • 打赏
  • 举报
回复
System.IO.File.AppendAllText(filename,source,encoding)
这么写试试
StreamWriter sw = new StreamWriter(filename,false,encoding);
sw.Write(source);
sw.Close();
Red_angelX 2007-03-29
  • 打赏
  • 举报
回复
保存完后关掉文件流没有?
wwwsyz 2007-03-29
  • 打赏
  • 举报
回复
忘说明一点(^_^):
保存文件速度大概在60个以上/s

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧