就像我每次使用 linux 时都会使用 google chrome(很可能),但我不希望它在我打开它时自动启动。我可以手动打开它,但是我有HDD,所以第一次加载很痛苦,所以我想知道是否有一种方法可以将chrome从HDD加载到RAM而不真正运行它,只需加载并在RAM中缓存。
答案1
我用vmtouch
。
vmtouch
打开命令行上提供的每个文件并将其映射到虚拟内存中mmap(2)
。映射以只读方式打开。它递归地爬行任何目录并对在其中找到的所有文件执行相同的操作。[…]
-t
触摸虚拟内存页面。从文件的每一页读取一个字节。如果该页面未驻留在内存中,则会生成页面错误,并且该页面将从磁盘读取到文件系统的内存缓存中。注意:虽然保证每个页面都已放入内存,但在命令
vmtouch
完成时该页面可能会从内存中逐出。
为了克服上述注释所述的问题,我使用vmtouch -l
(作为 root):
-l
将页面锁定到物理内存中。此选项的工作原理与此相同,-t
只是它调用mlock(2)
所有内存映射并且完成后不关闭描述符。抓取结束时,如果成功,vmtouch
将无限期阻塞。文件将被锁定在物理内存中,直到vmtouch
进程被终止。
我的使用案例是通过相对较慢的网络连接从相对较慢的 NFS 服务器抢先缓存相对较大的媒体文件。它运作得很好。它应该适合你。您只需要识别要加载的文件即可。这个问题可能有用:如何找出运行时加载的动态库可执行文件?