DK *_*ose 5 command-line bash find
当我time find ~第一次运行时,即我第一次find在会话中运行时,它比第二次运行时需要更长的时间。这是为什么?
第一次运行:
real 0m12.410s
user 0m0.424s
sys 0m1.287s
Run Code Online (Sandbox Code Playgroud)
第二次运行:
real 0m0.988s
user 0m0.214s
sys 0m0.405s
Run Code Online (Sandbox Code Playgroud)
Rinzwind 提供的链接标题为“如果运行两次,为什么 [find] 运行速度令人难以置信?” top 命令中的 \xe2\x80\x9ccached\xe2\x80\x9d 是什么?涵盖同一问题。
\n\n本质上,如果有空闲 RAM,内核可以使用其中的一部分来缓存信息。以这种方式使用的内存可以按需提供给应用程序。
\n\nLinux ate my RAM解释了可用、缓冲区、空闲和已用等术语 。它还提供以下命令来清除“大部分磁盘缓存”:
\n\necho 3 | sudo tee /proc/sys/vm/drop_caches\nRun Code Online (Sandbox Code Playgroud)\n\n为了确认第二次查找速度time find ~更快,我第一次运行:
real 0m10.765s\nuser 0m0.395s\nsys 0m1.169s\nRun Code Online (Sandbox Code Playgroud)\n\n第二次看看内存缓存的有益效果:
\n\nreal 0m1.119s\nuser 0m0.196s\nsys 0m0.476s\nRun Code Online (Sandbox Code Playgroud)\n\n然后我清除缓存并再次echo 3 | sudo tee /proc/sys/vm/drop_caches运行time find ~。果然,时间又到了:
real 0m19.198s\nuser 0m0.457s\nsys 0m1.425s\nRun Code Online (Sandbox Code Playgroud)\n\n但是,由于新的缓存,随后按预期运行的查找显示出改进的时间:
\n\nreal 0m1.100s\nuser 0m0.199s\nsys 0m0.484s\nRun Code Online (Sandbox Code Playgroud)\n\n在阅读有关缓存的内容时,我遇到了在 Linux 上缓存/预加载文件到 RAM 中的问题,并且有几个答案建议使用vmtouch - 虚拟内存触摸器:它被描述为“便携式文件系统缓存诊断和控制”,并且位于Bionic 的存储库中然后。
\n