靜態(tài)編譯與動(dòng)態(tài)編譯的區(qū)別:
靜態(tài)編譯就是在編譯時(shí),把所有模塊都編譯進(jìn)可執(zhí)行文件里大咱,當(dāng)啟動(dòng)這個(gè)可執(zhí)行文件時(shí)恬涧,所有模塊都被加載進(jìn)來(lái);
動(dòng)態(tài)編譯是將應(yīng)用程序需要的模塊都編譯成動(dòng)態(tài)鏈接庫(kù)碴巾,啟動(dòng)程序(初始化)時(shí)溯捆,這些模塊不會(huì)被加載,運(yùn)行時(shí)用到哪個(gè)模塊就調(diào)用哪個(gè)
靜態(tài)庫(kù)
優(yōu)點(diǎn):
代碼的裝載速度快厦瓢,執(zhí)行速度也比較快
缺點(diǎn):
- 程序體積會(huì)相對(duì)大一些
- 如果靜態(tài)庫(kù)需要更新提揍,程序需要重新編譯
- 如果多個(gè)應(yīng)用程序使用的話,會(huì)被裝載多次煮仇,浪費(fèi)內(nèi)存劳跃。
動(dòng)態(tài)庫(kù):
動(dòng)態(tài)鏈接庫(kù):在應(yīng)用程序啟動(dòng)的時(shí)候才會(huì)鏈接,所以浙垫,當(dāng)用戶的系統(tǒng)上沒有該動(dòng)態(tài)庫(kù)時(shí)刨仑,應(yīng)用程序就會(huì)運(yùn)行失敗
優(yōu)點(diǎn):
多個(gè)應(yīng)用程序可以使用同一個(gè)動(dòng)態(tài)庫(kù)强重,而不需要在磁盤上存儲(chǔ)多個(gè)拷貝
缺點(diǎn):
由于是運(yùn)行時(shí)加載,可能會(huì)影響程序的前期執(zhí)行性能