2
我目前正在實現一個基於嵌入式Linux的系統。持久數據從NAND閃存加載。 userland中的第一個應用程序之一是使用libglib的一些功能。對於該系統,低啓動時間非常重要。因爲glib很大,而且NAND速度很慢,所以很多人認爲啓動速度減慢了,因爲整個glib必須加載到RAM中!我不相信這個「都市傳奇」。 我的要點是:整個共享對象加載到RAM或只使用符號?
- gcc的鏈接器支持遲緩裝載
- 甲共享庫等的存儲器映射的文件來處理。因此,整個庫不會被加載到內存中,而只會被訪問時包含這些符號的部分。
我的假設是否正確,並且有人提到描述加載共享對象的文本(不是使用GOT進行符號解析,而是將「加載」到RAM中)?
非常感謝提前!
最好的問候 讓 - 皮埃爾·