|
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存储箱的方式。 注意,如果任何文件相互链接,可能会出现轻微的争用情况,但只要处理错误,就可以了。 |
|
AstralHex · 矩阵乘法代码工作不正常 8 月前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 9 月前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 9 月前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 9 月前 |