我有个程序往内存里面加载了大量的数据 (8G+),以供外部服务器使用。每一段数据都有差不多的概率被访问到。访问的频率中等,不是特别热的数据。既有读取与有写入,但写入相对比较少。
如果每次都从文件中加载的话,反序列化很占用 CPU 时间。放在内存里面又太占用虚机内存,云服务器的内存很贵。
是不是可以用 mmap 优化一下?我创建一个 32G 大小的文件,然后用 mmap() 映射到内存里面。这样做的话,操作系统会在物理内存不足的时候自动地把映射的页扔掉吧?等需要读取到的时候再重新从磁盘加载?减少 OOM 的机会?
--
FROM 117.24.95.*