如何使用多线程加快文件查找速度!
2019-03-09
很多文件类的工具需要遍历目录获得整个目录中文件的信息再进行后续的操作,如果目标文件夹内文件数较多或目录层次较深时,遍历的过程将会很长,严重降低用户体验。
以Windows系统为例,一般使用FindFirstFile和FindNextFile这两个API对单层目录进行遍历,当发现子目录时再次调用这两个函数遍历,直到找不到新的文件夹。在目前的多核CPU环境下,可以使用多线程的方式加速这个过程。这里使用Linux内核源码并复制两次,整个文件夹包含195681个文件和13383个文件夹,因为系统对最近读取过的文件有缓存,在虚拟机中测试时使用虚拟机的快照功能,每次测试前先还原快照,确保不受系统缓存的影响。
在使用单线程时,遍历整个目录平均需要大约7.1秒,在使用8线程(虚拟机配置8核)同时对目录进行遍历时则只需要4.2秒,速度提升约40%。
上一篇:关于高速数据传输的介绍!
热搜关键词
udp传输大数据|服务器数据迁移|高速文件传输速盈注册|FTP传输|aspera替代方案|ftp传输替代方案|跨境传输|传输系统|网盘|传输数据|远程传输|数据迁移|大文件传输速盈注册|大数据传输|跨国文件传输|远程大文件传输|高速传输|加速传输|文件共享传输|文件数据|文件共享|传输大文件|数据传输软件|TLS|媒体行业|传输文件|跨境数据传输|文件传输|远距离传输|影视传输|文件传输系统|数据同步|同步传输|小文件传输|安全文件传输|发送大文件|共享文件|mft|sftp|ftps|文件分享|aes|数据管理|文件直传|快速文件传输|电子邮件文件传输|传输速盈注册|超大文件传输|文件传输软件|文件同步|文件同步软件|大数据传输|文件传输工具|文件传输协议|安全文件同步|高速文件传输|高速传输软件|传输软件|SD-WAN|极速传输|远程办公|数据交换|外贸行业|文件管理|云计算|运营工具|企业网盘|云存储|安全传输|网络|高速缓存|SOCKS5|断点续传|aspera|高速传输协议|传输加密|高可用|跨国传输|文件同步传输|高速数据传输|企业级文件传输软件|大文件传输软件|tcp传输|传输协议|AD域|LDAP|数据传输|速盈娱乐传输|速盈娱乐云传|文件传输|大文件传输|文件管理平台|速盈娱乐软件|速盈娱乐|速盈娱乐云|文件传输速盈注册|跨境文件传输|点对点传输