【发布时间】:2015-01-09 06:51:38
【问题描述】:
办公室里的其他一些人正在讨论通过将内部库的非必要部分切割成单独的库并按需加载来减少内存占用和加载时间。
今晚我在谷歌上搜索了一下,得知ld.so 使用延迟绑定加载库,ld.so 和dlopen 都使用mmap 加载库。这似乎意味着库的那些非必要部分已经按需加载,即只要不使用函数/不读取库中的数据页,
不占用空间
加载和分配这些页面不需要时间。
所以我认为他们只需要确保他们不会主动接触所有非必要的组件。
这是真的?这对所有posix 系统都是真的(实际上)吗?
【问题讨论】:
-
您要解决的真正问题是什么?这个应用程序适用于小型系统吗?如果没有,您可以购买更多内存吗?您现在使用了多少内存,您的最终目标是什么?
-
“内存占用”是指驻留集大小吗?还是虚拟内存使用?还是什么?
-
这是一个嵌入式系统。我完全同意你的看法,如果我们谈论的是 PC,这个问题完全无关紧要。
-
@DavidSchwartz,我关心虚拟内存的使用,虽然更重要的是加载时间。
-
您有多少可用内存?现在用了多少?您的目标用途是什么?
标签: linux memory embedded posix dlopen