【发布时间】:2015-12-17 13:26:05
【问题描述】:
我想澄清一下我对共享库的困惑。当我在网上搜索时,我在对静态链接的解释中发现,由于库包含在可执行文件本身中,它会导致更大的可执行文件,从而增加程序的内存占用。
而在动态库/共享库的情况下,库是在运行时链接的。但是在动态链接中(如果我错了,请纠正我),如果库在运行时加载到要链接的进程中,是否会以任何方式节省内存?
【问题讨论】:
-
你现在有答案了吗?我今天也提出了这个问题。
我想澄清一下我对共享库的困惑。当我在网上搜索时,我在对静态链接的解释中发现,由于库包含在可执行文件本身中,它会导致更大的可执行文件,从而增加程序的内存占用。
而在动态库/共享库的情况下,库是在运行时链接的。但是在动态链接中(如果我错了,请纠正我),如果库在运行时加载到要链接的进程中,是否会以任何方式节省内存?
【问题讨论】:
库由操作系统加载到内存中,并通过将其内存位置映射到进程虚拟地址空间来链接到正在运行的进程。从进程的角度来看,每个都有自己的库副本,但实际上只有一个副本在内存中。
【讨论】: