導航:首頁 > 軟體知識 > 程序是如何執行靜態鏈接的

程序是如何執行靜態鏈接的

發布時間:2024-10-18 07:33:12

① 靜態鏈接和動態鏈接的區別

靜態鏈接和動態鏈接的區別是靜態鏈接和動態鏈接兩者最大的區別就在於鏈接的時機不一樣,靜態鏈接是在形成可執行程序前,而動態鏈接的進行則是在程序執行時。

一、靜態鏈接

特點:在生成可執行文件的時候(鏈接階段),把所有需要的函數的二進制代碼都包含到可執行文件中去。因此,鏈接器需要知道參與鏈接的目標文件需要哪些函數,同時也要知道每個目標文件都能提供什麼函數,這樣鏈接器才能知道是不是每個目標文件所需要的函數都能正確地鏈接。如果某個目標文件需要的函數在參與鏈接的目標文件中找不到的話,鏈接器就報錯了。

靜態鏈接和動態鏈接的優缺點

一、靜態鏈接

1、優點:在程序發布的時候就不需要的依賴庫,也就是不再需要帶著庫一塊發布,程序可以獨立執行。

2、缺點:程序體積會相對大一些。如果靜態庫有更新的話,所有可執行文件都得重新鏈接才能用上新的靜態庫。

二、動態鏈接

1、優點: 多個程序可以共享同一段代碼,而不需要在磁碟上存儲多個拷貝。

2、缺點: 由於是運行時載入,可能會影響程序的前期執行性能。

② 操作系統中程序的鏈接:裝入時動態鏈接、運行時動態鏈接和靜態鏈接都是什麼意思有什麼區別

靜態鏈接是在生成可執行程序的時候就把庫中的內容加入到程序中。

載入時動態鏈接是在將功能模塊讀入內存時把動態庫中調用到的相關模塊的內容載入內存。
運行時動態鏈接是在執行程序調用到模塊內容時再將動態庫中的相應模塊載入到內存。

這里有兩個時間問題。一是載入時間,二是執行時間。
靜態鏈接由於是在一開始就把所有模塊都載入進入內存,所以如果模塊很多的話效率就會被大大拉低。
載入時動態鏈接是分別載入,當把一個模塊載入內存時檢查有調用關系的模塊載入,比靜態鏈接節省了許多開銷。
運行時動態鏈接則是把當前模塊調用的模塊推遲到調用的時候再載入。
三者之間的關系就像是機槍,沖鋒槍和手槍
機槍在一開始就把所有子彈裝好,開槍的時候很快,但也很笨重。
沖鋒槍則是將子彈分彈夾存好,輕便了許多,但是會有一段裝填時間。
手槍就更加輕便了,但是彈夾容量更小,裝填的頻率又變高了。

閱讀全文

與程序是如何執行靜態鏈接的相關的資料

熱點內容
怎麼樣自動編寫數據 瀏覽:45
什麼是產品服務建議書 瀏覽:75
美容儀器怎麼找代理商 瀏覽:667
手機數據恢復大師怎麼打開 瀏覽:173
玉石市場水深多少 瀏覽:167
狗狗幣什麼時候在平台上交易的 瀏覽:336
花唄為什麼要補全證件信息 瀏覽:307
河東區紅星路新建菜市場在哪裡 瀏覽:416
黑科技產品如何快速推廣市場 瀏覽:162
京東代理店多少錢 瀏覽:851
會計信息採集重復提交是什麼情況 瀏覽:413
異地同屏技術是什麼 瀏覽:193
數控程序循環啟動哪個數字代表 瀏覽:89
和平精英如何在微信裡面修改信息 瀏覽:89
學市場營銷以後怎麼辦 瀏覽:617
如何用數據體現車間節約成本 瀏覽:365
哪些信息錯誤影響車險理賠 瀏覽:152
steam為什麼沒有手機進入手游市場 瀏覽:209
華為怎麼添加個性化小程序 瀏覽:425
唐嫣代言什麼產品 瀏覽:873