自己写的程序,通过 mmap 将一个大文件映射到内存,随机读取部分数据。
测试环境:虚拟机,ubuntu 22.04 ,机械盘。
第一运行时间大概在 20s 左右。
第二次运行前,运行“echo 3 > /proc/sys/vm/drop_caches ”,清除缓存。再次运行,运行时间 1s 左右。清了缓存,为什么仍然会快很多?
![]() |
1
seers 16 天前 via Android
mmap 内存不会清理,显示 munmap 才行
|
![]() |
3
iBugOne 16 天前
既然你说了是虚拟机,那么有没有一种可能,你的宿主机把虚拟磁盘文件对应的块*也*给缓存起来了(狗头
|
4
timewarp 15 天前
看下/proc/meminfo 里 file active/inactive 就知道缓存在不在了
|