中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-17 14:12
47,814 主题排行 / 349,906 发帖 / 今日 3 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » smartdrv为什么会加快删除文件的速度?
可打印版本  893 / 7
第1楼 Michael 发表于 2005-11-05 20:07
钻石会员 发帖 3,041 积分 10,056
smartdrv为什么会加快删除文件的速度?
del大文件或者deltree大量文件时效果非常明显.一直没想过这是什么原因.
第2楼 Michael 发表于 2005-11-05 20:27
钻石会员 发帖 3,041 积分 10,056
删除文件也需要预读大量数据吧.
第3楼 zybird 发表于 2005-11-05 23:39
中级用户 发帖 53 积分 240
不需要!!

它的工作量可能比修改文件名还小
第4楼 Michael 发表于 2005-11-06 02:25
钻石会员 发帖 3,041 积分 10,056
在不加载smartdrv的情况下,删除大文件或一次性删除大量文件时的硬盘灯长亮不熄又如何解释呢.大文件的fat链表清空也得费点事儿吧.
反正加载了udma或者smartdrv后的删除文件操作瞬间就可完成.
第5楼 不得不爱 发表于 2005-11-06 10:03
超级版主 发帖 2,044 积分 5,310 来自 四川南充
它的工作量可能比修改文件名大!文件越大删除文件使用的时间越多!
第6楼 JonePeng 发表于 2005-11-07 13:14
金牌会员 发帖 1,883 积分 4,562 来自 广东广州
可能是因为SmartDrv预读取硬盘的FAT表,存储在内存中,删除文件时从内存中的FAT表读取文件的实际分配地址,然后再回到硬盘上的FAT表,把要删除的文件名的首字符改写。由于从内存中读取数据比直接在硬盘上读取快得多,所以速度很快。在不装载SmartDrv情况下,每次删除一个文件时硬盘都要寻找FAT表,所以速度慢。
第7楼 willsort 发表于 2005-11-07 16:58
元老会员 发帖 1,512 积分 4,432
Re JonePeng:

确实是一篇有深度的讨论性主题,建议移动至“解答室”。

删除文件的工作量,可能会因为使用工具的不同而有所不同;在的我印象中,某些软件是只改名而不清FAT表的,大部分工具还会清文件的入口簇号,文件日期、时间、属性等也有软件会清除,也不排除有些软件会只清FAT1而不理会FAT2。就MSDOS自己提供的命令而言,del 和 deltree 的工作效率也可能会因为自身版本和所处环境的不同而出现较大差异。

至于 SmartDrv 的工作原理,我猜测可能所有硬盘读写都通过它来缓冲,所以清FAT和改名的首字符及其他操作可能都首先操作于内存中。另外,文件名并不在FAT表中,而在FDT(文件目录表,根目录文件名所在地)或者目录入口簇链表所指向的数据区(子目录文件名所在地),也因此删除大量目录比较深的文件比删除同样数量和大小的根目录文件可能会慢一些。

最后,请注意,以上言论仅止于猜测和推论,并无实据!

[ Last edited by willsort on 2005-11-7 at 18:19 ]
第8楼 不得不爱 发表于 2005-11-07 18:29
超级版主 发帖 2,044 积分 5,310 来自 四川南充
那好吧,我来移动一下!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023