【博客178】为什么find命令进行根查找后再用find会变快

内容: 记录为什么使用find命令进行根目录查找后,再使用find命令查询其它会变快

原理:

1、linux操作系统对文件会有一个dentry目录项的缓存,用于组织和快速查找目录

2、这个dentry缓存结构是从slab缓存拿的

3、当多次访问目录,内存会缓存该目录的dentry结构组织,方便快速打开文件

实践:

刚开机时,slabtop查看dentry用量
在这里插入图片描述
执行一次find对根目录进行查找:find / -name “*.cpp”
在这里插入图片描述
再次执行slabtop查看:可以看到用量增大了很多,因为对根目录查找要缓存很多
在这里插入图片描述
再次执行find后再用slabtop查看dentry用量:结果跟上次差不多,没有再暴增
(注意再次执行find后会非常快的打印出来结果,因为已经有缓存了)
在这里插入图片描述
过5分钟再使用slabtop观察:反而降了一点,应该是一部分过于深层的目录项被换出了
在这里插入图片描述

总结:linux会将文件组织结构缓存在内存,find命令会促使linux提早加载目录结构到内存

大四学生一枚,如果文章有错误的地方,欢迎在下方提出,每条评论我都会去认真看并回复,同时感谢指正的前辈。有喜欢C/C++,linux的同学欢迎私信一起讨论学习。

发布了214 篇原创文章 · 获赞 41 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_43684922/article/details/104757608
今日推荐