编程 程序员 Ubuntu linux Firefox wordpress nginx java 微软 Android mysql centos apache Python Windows 开源 google php 云计算 shell

动态库的作用

 Linux系統有兩種程序庫,一種被稱做靜態庫,在程序鏈接的時候,把庫函數的目標代碼和程序連接在一起,還有一種就是前面提到的動態庫,從英文字面翻譯,動態庫可以翻譯為共享庫。

 動態庫是Linux系統最廣泛的一種程序使用方式,他的工作原理是相同功能的代碼可以被多個程序共同使用,在程序加載的時候,內核會檢查程序使用到的動態庫是否已經加載到內存,如果沒有加載到內存,則從系統庫路徑搜索並且加載相關的動態庫,如果動態庫已經被加載到內存,程序可以只i金額使用而無須加載。

 從動態庫的工作原理可以看出,任何一個動態庫僅會被系統加載一次,使用程序動態庫還有一個好處,就是可以減小應用程序占用的空間和加載時間。下面對靜態庫和動態庫的使用做一個比較。

 首先看一下使用靜態方式編譯hello-world.c

 使用靜態編譯的a.out文件大小是734kb。而使用動態方式編譯的a.out文件大小僅僅7kb,兩個文件大小相差約100倍,動態庫的優勢顯現出來了,執行同樣的結果程序,使用靜態庫編譯的程序比使用動態庫編譯的程序要多占用很多內存。

 幾百Kb的內存,對於一個主流配置的PC來說不算什麽,但是對於嵌入式系統進賬的內存空間來說。動態程序的優勢就比較明顯,使用動態庫可以節約嵌入式系統寶貴的內存空間。

 有興趣的朋友也可以試試這種方式來嘗試,可以得到更多不同的答案和結果。這樣也是最直接好玩的。

延伸阅读

  • 抱歉,暂无相关内容!

评论