免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3770 | 回复: 8
打印 上一主题 下一主题

删除一个文件与清空一个文件哪个快? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-22 10:12 |只看该作者 |倒序浏览
在LINUX中 使用 UNLINK 删除文件 和使用OPEN 清空一个文件,哪个更快更高效?

论坛徽章:
0
2 [报告]
发表于 2008-02-22 10:14 |只看该作者
清空文件是什么概念?全都填充0吗?如果是,那当然是unlink快了。

论坛徽章:
0
3 [报告]
发表于 2008-02-22 10:18 |只看该作者
原帖由 cugb_cat 于 2008-2-22 10:14 发表
清空文件是什么概念?全都填充0吗?如果是,那当然是unlink快了。

清空文件应该是指把文件的大小置为0

论坛徽章:
0
4 [报告]
发表于 2008-02-22 10:22 |只看该作者
原帖由 cugb_cat 于 2008-2-22 10:14 发表
清空文件是什么概念?全都填充0吗?如果是,那当然是unlink快了。


我想LZ所谓清空文件是truncate吧,但是这种比较有什么用呢?都不是达到同一个效果的,
难道open能删除文件?不可能吧?

论坛徽章:
0
5 [报告]
发表于 2008-02-22 12:00 |只看该作者
如果该文件有多个节点来索引它,应该是unlink快。尤其是一个大文件,如果unlink一个节点(还有其他节点索引它,那么不会释放数据块,这样就比truncate明显的快了很多)。
以下我们考虑只有一个节点索引的情况。我认为应该是truncate快。
1, truncate不会检查是否还有其他的link,而unlink显然会。
2, truncate不会导致目录文件数据块的重构,而unlink会。

但是基本上不用考虑以上的区别,如果文件很大,主要的时间都是耗在数据块的释放上。truncate和unlink就基本没有什么区别。
如果文件小,truncate和unlink速度差异基本上感觉不到。

[ 本帖最后由 ivhb 于 2008-2-22 12:02 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-02-22 14:09 |只看该作者
同意IVHB

论坛徽章:
0
7 [报告]
发表于 2008-02-22 14:26 |只看该作者
过分了,删除就删除,用什么open啊。。

论坛徽章:
0
8 [报告]
发表于 2008-02-22 15:52 |只看该作者
原帖由 ivhb 于 2008-2-22 12:00 发表
如果该文件有多个节点来索引它,应该是unlink快。尤其是一个大文件,如果unlink一个节点(还有其他节点索引它,那么不会释放数据块,这样就比truncate明显的快了很多)。
以下我们考虑只有一个节点索引的情况。 ...


注意:不是还有其他i-node,而是还有其他硬连接

论坛徽章:
0
9 [报告]
发表于 2008-02-23 11:32 |只看该作者
大家是仁者见仁,智者见智,实际情况可能稍有不同.
,用不同状态的多文件测试一下,不同的平台下和不同情况下有区别.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP