linux 写文件会不断消耗内存 删除时又恢复

largedong 2008-09-06 07:43:19
内核2.6.9-22 2.6.9-34均试过。

用初级IO、标准IO以及QFile都有这种现象。

随着文件的写入,KDE内存守护显示可用内存在不断减少,但当前进程占用的内存并没有增加;
可用内存会一直降到几十K,此时仍能继续不停的写文件,系统会变慢,socket的传输效率会明显降低。

手动或其他方式删除所写的文件,可用内存会恢复到初始状态。

一直没搞明白这是怎么回事,有什么解决方案?

各位大侠不吝赐教
...全文
445 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
largedong 2008-09-07
  • 打赏
  • 举报
回复
确实已经写到硬盘上了
我文件都已经关闭并重命名过了

我降文件删除内存就又恢复了
alaiyeshi 2008-09-07
  • 打赏
  • 举报
回复
明白为什么出现这种现象了

os为了提高写文件的效率,竟然牺牲其他所有的性能,
有点愕然

关键是文件已经写到磁盘里面了,怎么占用的内存还是没有释放掉
===============
fwrite以后,未必把内容转移到磁盘上了,除非你fflush或者fsync
因为有缓冲,,,,
alaiyeshi 2008-09-07
  • 打赏
  • 举报
回复
你应该在写完后fflush一下
largedong 2008-09-07
  • 打赏
  • 举报
回复
明白为什么出现这种现象了

os为了提高写文件的效率,竟然牺牲其他所有的性能,
有点愕然

关键是文件已经写到磁盘里面了,怎么占用的内存还是没有释放掉
unilgr 2008-09-06
  • 打赏
  • 举报
回复

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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