共7条回复
楼长
·
ventus
回复于 2016年01月29日
不是大神,想到两点。一是释放缓存,如果不关闭流会造成内存泄露。二是,如果存在写操作,有些是在缓存中还没真正写道磁盘文件中,关闭流的时候回刷新缓存,真正将数据写到磁盘文件中
3楼
·
tinyfool
回复于 2016年01月29日
不要拘泥于流这个说法,流只是一种抽象,方便组合和理解,如果理解不了,暂时不用去管他
文件一般都是在硬盘的,硬盘比内存慢1000倍左右(SSD缓解了这种速度差异,但是仍旧有)。另外,硬盘的随机读取是比较慢的(硬盘是一个盘子,连续读取可以在一次旋转中完成,读多个不同位置,而且顺序不规律的话,就必须走多次旋转,当然硬盘也有缓存,姑且理解为它没有缓存,简化理解),内存随机读取和连续读取性能差不多。
所以,对文件的读写都是带缓存的,理论上缓存不满,是不把读写加之到实际硬盘的(也有反例,也可以强制写)。而关闭文件则是释放缓存所占内存,同时,保证缓存的内容写回到硬盘。
4楼
·
人在江天
回复于 2016年01月29日
常见的操作系统,对于文件的读写接口都是通过描述符或者句柄来间接提供SDK,真正的读写是在内核。而这些描述符或者句柄,设计的时候都是有数量上限的,不释放的后果就是到最后系统无法分配资源,只能重启。
5楼
·
ouyangbo100
回复于 2016年01月29日
因为不自动回收
相关帖子
相关新闻
- 为什么人类数据是人工智能的关键:来自 Scale AI - Andreessen Horowitz 的 Alex Wang
- 为什么畅销小说作家詹姆斯·帕特森喜欢Substack——却讨厌人工智能
- 将人工智能纳入事先授权流程 - TechTarget
- Indeed 首席执行官表示,人工智能将在明年彻底改变所有工作 - 财富
- 人工智能(AI)投资者准备迎接新的首次公开募股 | 东方财富网注意:原文中"The Motley Fool"是一个特定的网站名称或专栏名,未提供具体中文译名,因此保留了英文原名。如果需要进一步翻译或解释,请告知。但是根据指示只输出翻译结果且没有实际内容需翻译的情况下,则直接给出原文:人工智能(AI)投资者准备迎接新的首次公开募股 | The Motley Fool