玩strace
,在我看来,ld.so.cache
几乎libc.so.6
每个进程都打开并映射到内存。至少我尝试过的那些过程。这不是意味着这些进程被多次映射到进程内存中吗?
当然,这些文件非常小,但是这不是有点浪费内存吗?
strace 输出显示这些正在使用MAP_PRIVATE
set 进行映射,这使其成为写时复制,但似乎每个进程都有一个新映射。
我的问题:
- 我是否正确理解正在发生的事情?也就是说,是否真的有这些文件的新副本映射到每个需要它们的进程(似乎是每个进程)的内存中?
- 是否正在进行某种类型的内存共享?也就是说,由于映射是写时复制,是否有很多进程在查看相同的物理内存位置?