按需加载/卸载ELF部分?
收藏

对于一个相当模糊的用例,我希望有一个(大的)静态链接的linux可执行文件,由一小块控制代码和大块静态(只读)数据组成。为了节省内存,是否可以让加载程序只加载控制代码的部分,然后根据需要手动加载ro数据的部分,并在处理完成后再次卸载它们?
这可能吗?
(我想可以使用数据流(在文件系统级别)来解决这个问题,但它们对我不可用(ext3),而且分发会很棘手,因为数据流很容易丢失。)


最佳答案:

这(很可能)已经帮你处理好了。
当然,真正的答案将取决于系统,但一般来说,现代操作系统(当然还有Linux)对可执行文件使用按需分页,因此不会为您没有引用的ELF文件部分实际分配RAM。

公众号