chr*_*mue 1 linux startup shared-libraries
在我正在研究的嵌入式设备上,启动时间是一个重要问题.整个应用程序由几个使用一组库的可执行文件组成.由于FLASH内存空间有限,我们希望使用共享库.
当编译并与共享库链接时,应用程序照常工作,并且FLASH内存量按预期减少.与静态库链接的版本的不同之处在于应用程序的启动时间大约长20秒,我不知道为什么.
该应用程序在ARM9 CPU上以180 MHz运行,具有Linux 2.6.17 OS,16 MB FLASH(JFFS文件系统)和32 MB RAM.
因为共享库必须在运行时链接,通常是通过dlopen()或类似的东西.静态库没有这样的步骤.
编辑:更多细节.dlopen必须执行以下任务.
这需要完成很多IO操作.
在静态链接程序中,上述所有操作都是在编译时完成的,而不是运行时.因此加载静态链接程序要快得多.
在您的情况下,您的代码必须运行相对较慢的硬件会夸大差异.