![]() |
1
5
在某些情况下,这样的速度是正常的。首先,使用FindFirstFileA而不是FindFirstFileW将导致从UTF-16转换为ANSI的开销。第二,如果您正在浏览操作系统尚未访问的目录,则至少会发生一次seek惩罚(对于大多数消费类硬盘驱动器,大约为16ms),将枚举限制在每秒100次目录检查以下。如果给定驱动器上的主文件表碎片严重,情况会变得更糟。 关于文件数量,它更多地取决于每个目录的文件数量,而不是文件本身的数量。 |
![]() |
2
3
当您第一次执行递归目录爬网时,您可能应该首先枚举整个当前目录,并将完成后要访问的所有目录排队。这样,您就可以利用NTFS可能进行的任何即时预读优化。 在随后的递归目录爬网中,如果目录的元数据适合系统缓存,则不管您如何操作。
|
![]() |
3
2
可能驱动器是瓶颈。但你可以试试:
|
|
4
0
在递归潜水过程中,您保持DIR句柄打开。相反,保留一个您遇到的目录的本地列表,并在循环之外处理它们
|
![]() |
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
![]() |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
![]() |
Prince · 复制大型文件需要更多时间 2 年前 |
![]() |
Sagar · 为什么在循环之外声明变量会更快? 2 年前 |
![]() |
seco · 如何在不挂起页面的情况下加载JS 2 年前 |