- 主题:能用 mmap 来省点内存吗?
或者你定时msync一下?
【 在 hgoldfish 的大作中提到: 】
: 标 题: Re: 能用 mmap 来省点内存吗?
: 发信站: 水木社区 (Fri Aug 19 18:24:34 2022), 站内
:
: 但是不会自动加载回来。略麻烦。
:
: 【 在 Knightmare 的大作中提到: 】
: : 有办法啊
: : mummap
:
: --
: 灭绝人性啊
:
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 117.24.95.*]
--
FROM 124.126.151.*
【 在 hgoldfish 的大作中提到: 】
: 我有个程序往内存里面加载了大量的数据 (8G+),以供外部服务器使用。
: 每一段数据都有差不多的概率被访问到。访问的频率中等,不是特别热的数据。既有读取与有写入,但写入相对比较少。
: 如果每次都从文件中加载的话,反序列化很占用 CPU 时间。放在内存里面又太占用 VPS 内存,云服务器的内存很贵。
: ...................
mmap 在内存不足的时候是会把内存里的数据 swap 到磁盘上的。即使机器开了 swapof
f -a。mmap 获得的页是有 backend 的内存(backend 是磁盘)。
--
FROM 222.129.55.*
【 在 Knightmare 的大作中提到: 】
: 操作系统不会自动把映射的页扔掉。
内存不足的时候会扔的,这是操作系统的基本素质。
下次再用的时候加载回来就是了。
: 你这个做法没有任何的优化啊,用过的内存超过物理+swap就会被oom kill
: 你还不如创建一个32GB的kv数据库呢,让数据库自己管缓存。
--
FROM 114.253.195.*
除非你是private映射还写脏了。
【 在 try 的大作中提到: 】
: mmap 在内存不足的时候是会把内存里的数据 swap 到磁盘上的。即使机器开了 swapof
: f -a。mmap 获得的页是有 backend 的内存(backend 是磁盘)。
--
FROM 114.253.195.*
感觉没啥效果,本质上mmap快一点点,都是不会有明显提高,我自己觉得用mmap是方便用指针你,以内存的方式来访问文件
【 在 hgoldfish 的大作中提到: 】
: 我有个程序往内存里面加载了大量的数据 (8G+),以供外部服务器使用。
:
: 每一段数据都有差不多的概率被访问到。访问的频率中等,不是特别热的数据。既有读取与有写入,但写入相对比较少。
:
: 如果每次都从文件中加载的话,反序列化很占用 CPU 时间。放在内存里面又太占用 VPS
: ..................
发自「今日水木 on iPhone XR」
--
FROM 61.158.147.*