共享动态库代码,避免重复加载可以减少内存占用,其主要原理是:
1. 动态库中的代码是可共享的,内存中只需要加载一份。
2. 不同的进程可以通过共享内存映射使用同一份动态库代码。
3. 操作系统负责库代码的内存映射,多个进程指向同一物理页。
4. 当第一个进程加载动态库时,其代码段就会映射到内存。
5. 当其他进程也加载此库时,会关联到已映射的内存地址,而不会真正加载。
6. 这样即使加载了多次,但实际上只占用了一份内存。
7. 当最后一个进程卸载库时,相关代码页才会被操作系统回收。
8. 静态库代码不能共享,每个进程都包含独立拷贝。
9. 所以使用动态库可以显著减少相同库代码的重复内存占用。
10. 从而减少GUI程序的总体内存压力。
综上,共享动态库是减少内存占用的重要手段,避免重复加载同一代码。但需要考虑版本兼容性等问题。、