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