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

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

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

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

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

一、靜態鏈接

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

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

一、靜態鏈接

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

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

二、動態鏈接

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

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

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

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

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

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

閱讀全文

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

熱點內容
如何展現出信息傳媒的logo 瀏覽:31
浙江服裝代理加盟怎麼加盟 瀏覽:712
網上自己如何出售交易書畫作品 瀏覽:342
程序設計實習工資有多少 瀏覽:941
為什麼同款鞋子數據沒有人家好 瀏覽:716
市場監管局職能是什麼 瀏覽:248
檢驗數據橫線是什麼意思 瀏覽:141
龍里高新技術產業園區在哪個鄉鎮 瀏覽:463
銀飾市場銷量怎麼樣 瀏覽:213
大數據技術賺多少 瀏覽:580
哪個省有蘋果手機批發市場 瀏覽:498
寧德旅遊市場有多少人 瀏覽:490
信息化由哪個部委管 瀏覽:304
哪個物流公司可以實時現物流信息 瀏覽:923
程序是如何執行靜態鏈接的 瀏覽:917
人本主義的治療技術包括什麼 瀏覽:258
為什麼程序查詢方式效率不高 瀏覽:903
信息中心操作人員是干什麼的 瀏覽:94
女生開車技術好怎麼誇 瀏覽:682
g68應該加在程序的哪個位置 瀏覽:540