APP下载

深度科技的anything快速检索技术研究

2018-02-07张木梁

信息安全研究 2018年1期
关键词:程序

张木梁 张 磊 秦 娣

1(武汉深之度科技有限公司技术部 北京 100080) 2(武汉深之度科技有限公司研发中心 北京 100080) 3(武汉深之度科技有限公司市场部 北京 100080) (zhangmuliang@deepin.com)

为了能够向用户提供一个高速的、基于文件名搜索的离线文件搜索功能,我们引入了“anything快速检索”技术.对于“anything”的定义是Something like everything, but nothing is really like anything….

而anything之所以叫anything,是受到了Windows下everything软件的启发[1].原来在Linux中有一个类似的rlocate程序[2],但是那个程序有点太老了,效率低下,效率方面的设计与当前时代不相称.主要是出于与Linux传统桌面结合得比较紧密,优化起来对系统其他组件影响都很大,很多发行版就不会在这方面进行优化.

1 基础索引设计

1.1 简要分析

在Linux下,最常用的文件搜索软件是find,它会递归遍历每个目录,针对每个目录与文件按照用户给出的参数过滤出符合条件的目录与文件,并打印出来.

在命令行模式下,find使用很广,功能强大,不仅可以根据文件名查找文件,还可以根据文件类型、权限、修改时间、大小,甚至与其他软件配合对文件进行过滤.但是在图形界面下,用户最常用的仍是根据文件名对文件进行查找,这是anything面向的核心问题.

使用find搜索时,如果已经搜索过,则对应的文件与目录信息将会被缓存在内存中,可以大大加速搜索.当然,root用户可以运行sysctl -w vm.drop_caches=3来清除这些缓存.但是,即使使用了缓存,在仅使用文件名搜索的前提下,find的搜索速度仍然是不理想的.

find搜索会通过系统调用遍历每个目录的内容,读取其中的文件列表,再根据文件列表中……

登录APP查看全文

猜你喜欢

程序
给Windows添加程序快速切换栏
试论我国未决羁押程序的立法完善
失能的信仰——走向衰亡的民事诉讼程序
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
基于VMM的程序行为异常检测
侦查实验批准程序初探
我国刑事速裁程序的构建
创卫暗访程序有待改进
恐怖犯罪刑事诉讼程序的完善