1
8
如果要释放所需的位置,最快的方法是将目录移动(或重命名)到同一分区上的另一个位置。然后,您的程序可以继续使用所需的位置,并在另一个线程(后台)中递归删除以前移动的目录。这个线程甚至可以以较低的优先级工作,因此删除特定目录看起来就像是一个即时的文件系统操作。 |
2
3
是 啊
同时,我建议您使用
https://ned14.github.io/afio/
这是P1031的参考实现
我会针对您的特定归档系统对所有六种方法进行基准测试,并选择最快的方法。有些使用基于inode编号的B+树,有些使用基于leafname的B+树,这会有所不同。但基本上,您希望避免过度的树重新平衡,并避免对leafname进行深入的O(log N)查找,从而避免有序的取消链接。 |
3
1
您链接到的文章讨论了shell透视图。这一点至关重要:shell为许多任务启动程序。虽然启动一个程序非常便宜,但当你需要启动一百万个程序时,它可能会很贵。这就是为什么
这同样适用于您的程序。您只启动一次程序;成本只是您正在进行的所有系统调用。 我检查了系统调用列表;没有允许您使用一个系统调用进行批量删除的系统调用,因此每个要删除的文件只能有一个系统调用。 |
4
-1
根据存储体系结构的不同,您可以通过并行删除文件来提高速度。因此,将工作分配给
这就是我管理约200 TB存储箱的方式。 注意,如果任何文件相互链接,可能会出现轻微的争用情况,但只要处理错误,就可以了。 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |