動態編譯和靜態編譯

靜態編譯就是在編譯的時候把你所有的模塊都編譯進exe裏去,當你啓動這個exe的時候所有模塊都加載進來了。你寫小程序沒問題,但程序一大,加載的過程(就是當你運行程序時初始化的過程)就比較費力了。。大多數ppc的硬件配置還是很一般的。。。。。。
動態編譯就不一樣了,你編譯的時候那些模塊都沒有編譯進去,一般情況下你可以把那些模塊都編譯成dll,這樣你啓動程序(初始化)的時候這些模塊不會被加載,而是在運行的時候,用到那個模塊就調用哪個模塊。。。。。
簡單的打個比方,我寫個閱讀器,支持txt,pdf,udm三種格式,暫時把讀txt,讀pdf,讀udm定義爲三個功能模塊。
使用靜態編譯:我想看個txt,點擊應用程序圖標以後三個功能都加載進來了,判斷格式,使用讀txt模塊。。。(在這裏,另外兩個模塊的作用就是佔用系統資源。。。。-。-)
使用動態編譯:我想看個txt,點擊應用程序,判斷格式,只加載讀txt模塊,使用讀txt模塊。。。
顯然,動態編譯1速度快,2節省了系統資源,3利於今後拓展。。。。。。。。

以下是2個比較形象的解釋:

一個是租自行車,什麼時候騎什麼時候租,有新車就租新車,沒新車就租舊車,有電動車就省點勁,碰上沒車座子的就扎屁股,人家不出租了你就別用了。
一個是自己買個自行車天天扛着,進電梯上地鐵也扛着。老子自己的車,想什麼時候騎就什麼時候騎,不用看出租自行車老大媽的臉色。

用靜態鏈接庫編譯,相當於你帶着一個工具包到處跑(遇到有需要的地方不需要周圍的環境提供相應的工具,自己用自己工具包的工具就行了,所以當環境發生變化可以儘可能的無視),當然,你本來不帶任何東西走到哪是哪和工具包隨身帶的區別顯然就是重量增加了,即程序的體積可能會比另一種方式來的大一點,看你的工具包有多大了。

僅此記錄,以作學習之用。
http://bbs.meizu.com/thread-983652-1-1.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章