在长时间运行的 Bash 脚本中,我调用自定义可执行文件(getIdle
) 返回系统的空闲时间。
由于我必须定期调用这个可执行文件,我想从长远来看它会给我的硬盘带来巨大的读取负担。
作为解决方案,我首先将 exe 复制到/dev/shm/
然后从那里运行它。但是,我不确定这是一个便携式解决方案,所以我的问题是:
如何在 RAM 中缓存可执行文件,以便定期调用不会成为问题?
答案1
我想从长远来看,这会对我的硬盘造成巨大的读取负担。
不,除非您从磁盘读取或向磁盘写入大量数据,否则不会。 Linux 对所有读/写操作使用缓存,因此一旦(已经)运行,您的二进制文件将被缓存,随后内核将使用缓存中的映像,并且不会从磁盘读取文件。
答案2
您可以创建临时文件系统并将您的可执行文件复制到其中
$ sudo mount -t tmpfs -o size=10M tmpfs /mnt/mytmpfs