專利名稱:一種應用程序多進程運行方法及裝置的制作方法
技術領域:
本發(fā)明涉及計算機領域,尤其涉及一種應用程序多進程運行方法及裝置。
背景技術:
在現(xiàn)有技術中,應用程序(例如Porg. exe)需要調(diào)用動態(tài)庫(例如DynamicLib. dll) 來完成應用程序的請求,而主動態(tài)庫還需要再一次調(diào)用子動態(tài)庫(例如SubDynamicLib. dll)來完成最終的任務請求,由于子動態(tài)庫中的函數(shù)不支持重載功能,因此,主動態(tài)庫每次加載子動態(tài)庫時都需要將該子動態(tài)庫復制一份到電腦硬盤介質(zhì)上再加載到內(nèi)存中,同時, 這樣的調(diào)用會被應用程序多次調(diào)用,所以就產(chǎn)生如圖1所示的程序調(diào)用邏輯。這種程序邏輯在運行時有如下缺點
1、在最終用戶的電腦硬盤介質(zhì)中產(chǎn)生多個相同的子動態(tài)庫,有時多達幾百多個,這樣就占用了大量用戶的磁盤空間。2、當復制的子動態(tài)庫越來越多時,這些子動態(tài)庫與應用程序之間的數(shù)據(jù)傳輸?shù)男示蜁陆担绊懙匠绦虻倪\行速度。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明所要解決的技術問題在于,提供一種應用程序多進程運行方法及裝置,減少應用程序運行過程中占用的系統(tǒng)磁盤空間,提高程序運行效率。本發(fā)明實施例提供了一種應用程序多進程運行方法,所述方法包括 主程序調(diào)用主動態(tài)庫,通過主動態(tài)庫查找到需要的子動態(tài)庫;
由預先根據(jù)所述主程序創(chuàng)建的多個子程序裝入所述子動態(tài)庫; 所述多個子程序獨立運行,并將運行結(jié)果返回給所述主程序。其中,所述多個子程序裝入所述子動態(tài)庫為
所述多個子程序分別將所述子動態(tài)庫裝入自身內(nèi)存地址空間。其中,所述多個子程序運行時占用不同的CPU核心。其中,所述主程序為編解碼程序,所述子程序為預先根據(jù)所述編解碼程序編寫的多個子編解碼程序進程。相應的,本發(fā)明實施例還提供了一種應用程序多進程運行裝置,所述裝置包括 主程序單元,用于控制主程序調(diào)用主動態(tài)庫,通過所述主動態(tài)庫查找到需要的子動態(tài)
庫;
子程序單元,用于控制預先根據(jù)所述主程序創(chuàng)建的多個子程序裝入所述子動態(tài)庫; 運行返回單元,用于控制所述多個子程序獨立運行,并將所述多個子程序的運行結(jié)果返回給所述主程序。其中,所述控制所述多個子程序裝入所述子動態(tài)庫為
控制所述多個子程序分別將所述子動態(tài)庫裝入自身內(nèi)存地址空間。其中,運行返回單元控制所述多個子程序運行時占用不同的CPU核心。
其中,所述主程序為編解碼程序,所述子程序為預先根據(jù)所述編解碼程序編寫的多個子編解碼程序進程。實施本發(fā)明實施例,具有如下有益效果通過程序多進程的方式分別獨立地裝入動態(tài)庫,在系統(tǒng)內(nèi)存中裝入多個動態(tài)庫獨立的運行,從而不再需要在系統(tǒng)硬盤介質(zhì)中復制多個子動態(tài)庫,減少了應用程序運行過程中占用的系統(tǒng)磁盤空間,并且充分發(fā)揮了多核CPU 的性能,提高了程序運行效率。
圖1為現(xiàn)有技術中應用程序運行時調(diào)用動態(tài)庫產(chǎn)生的程序調(diào)用邏輯圖; 圖2為本發(fā)明實施例中一種應用程序多進程運行方法的流程示意圖3為本發(fā)明實施例中一種應用程序多進程運行裝置的組成結(jié)構示意圖; 圖4為采用本發(fā)明的應用程序多進程運行方法的應用程序運行時調(diào)用動態(tài)庫產(chǎn)生的程序調(diào)用邏輯圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖2為本發(fā)明實施例中一種應用程序多進程運行方法的流程示意圖,如圖所示該方法流程包括
步驟S10,主程序調(diào)用主動態(tài)庫,通過主動態(tài)庫查找到需要的子動態(tài)庫;具體地,所述多個子程序裝入所述子動態(tài)庫可以為所述多個子程序分別將所述子動態(tài)庫裝入自身內(nèi)存地址空間。本實施例中的應用程序以編解碼程序為例,其主程序為Prog, exe, Prog, exe在進行編解碼時,需要調(diào)用主動態(tài)庫DynamicLib. dll,進而由主動態(tài)庫DynamicLib. dll找到編解碼程序運行時需要的子動態(tài)庫SubDynamicLib. dll。步驟S20,由預先根據(jù)所述主程序創(chuàng)建的多個子程序裝入所述子動態(tài)庫;具體地, 本實施例中,可以由技術人員根據(jù)編解碼主程序exe預先通過編寫代碼,創(chuàng)建得到多個子程序SubProg. exe,在主程序Prog, exe接收到請求需要調(diào)用動態(tài)庫進行編解碼時,由所述多個預先創(chuàng)建的子程序SubProg. exe分別裝入所述子動態(tài)庫SubDynamicLib. dll。步驟S30,所述多個子程序獨立運行,并將運行結(jié)果返回給所述主程序。具體地,所述多個子程序SubProg. exe分別獨立裝入子動態(tài)庫SubDynamicLib. dll后,并行進行編解碼操作,并將編解碼運行結(jié)果返回給主程序Prog, exe。進一步的,所述多個子程序SubProg. exe分別裝入SubDynamicLib. dll獨立運行時,占用的是不同CPU核心,這樣更能發(fā)揮現(xiàn)今多核CPU架構的性能,進一步提高了程序運行效率。圖3為本發(fā)明實施例中一種應用程序多進程運行裝置的組成結(jié)構示意圖,如圖所示所述裝置包括
主程序單元10,用于控制主程序調(diào)用主動態(tài)庫,通過所述主動態(tài)庫查找到需要的子動態(tài)庫;本實施例的應用程序多進程運行裝置以控制一編解碼程序為例,應用程序主程序為Prog, exe,在運行Prog, exe進行編解碼時,主程序單元控制Prog, exe調(diào)用主動態(tài)庫 DynamicLib. dll,進而由主動態(tài)庫DynamicLib. dll找到編解碼程序運行時需要的子動態(tài)庫 SubDynamicLib. dll。子程序單元20,用于控制預先根據(jù)所述主程序創(chuàng)建的多個子程序裝入所述子動態(tài)庫;具體地,所述控制所述多個子程序裝入所述子動態(tài)庫可以為控制所述多個子程序分別將所述子動態(tài)庫裝入自身內(nèi)存地址空間。本實施例中,可以由技術人員根據(jù)編解碼主程序Prog, exe預先通過編寫代碼,創(chuàng)建得到多個子程序SubProg. exe,本實施例的應用程序多進程運行裝置在運行主程序Prog, exe需要調(diào)用動態(tài)庫進行編解碼時,子程序單元20控制所述多個預先創(chuàng)建的子程序SubProg. exe分別裝入所述子動態(tài)庫SubDynamicLib. dll。運行返回單元30,用于控制所述多個子程序獨立運行,并將所述多個子程序的運行結(jié)果返回給所述主程序。具體地,所述多個子程序SubProg. exe分別獨立裝入子動態(tài)庫 SubDynamicLib. dll后,在運行返回單元30的控制下并行進行編解碼操作,并將編解碼運行結(jié)果返回給主程序Prog, exe。進一步的,運行返回單元30控制所述多個子程序運行時占用不同的CPU核心,這樣更能發(fā)揮現(xiàn)今多核CPU架構的性能,進一步提高了程序運行效率。需要說明的是,本發(fā)明實施例以編解碼應用程序為例,但顯然本方案不僅能夠應用在編解碼程序中,在音頻、圖像、文字處理方面的各種應用程序以及其他需要調(diào)用動態(tài)庫完成操作請求的應用程序均能夠采用本方案,通過程序多進程的方式分別獨立地裝入動態(tài)庫,在系統(tǒng)內(nèi)存中裝入多個動態(tài)庫獨立的運行,參考圖4所示的程序調(diào)用邏輯圖,從而不再需要在系統(tǒng)硬盤介質(zhì)中復制多個子動態(tài)庫,減少了應用程序運行過程中占用的系統(tǒng)磁盤空間,并且充分發(fā)揮了多核CPU的性能,提高了程序運行效率。以上所揭露的僅為本發(fā)明一種較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。
權利要求
1.一種應用程序多進程運行方法,其特征在于,所述方法包括 主程序調(diào)用主動態(tài)庫,通過主動態(tài)庫查找到需要的子動態(tài)庫; 由預先根據(jù)所述主程序創(chuàng)建的多個子程序裝入所述子動態(tài)庫; 所述多個子程序獨立運行,并將運行結(jié)果返回給所述主程序。
2.如權利要求1所述的應用程序多進程運行方法,其特征在于,所述多個子程序裝入所述子動態(tài)庫為所述多個子程序分別將所述子動態(tài)庫裝入自身內(nèi)存地址空間。
3.如權利要求1所述的應用程序多進程運行方法,其特征在于,所述多個子程序運行時占用不同的CPU核心。
4.如權利要求廣3中任一項所述的應用程序多進程運行方法,其特征在于,所述主程序為編解碼程序,所述子程序為預先根據(jù)所述編解碼程序編寫的多個子編解碼程序進程。
5.一種應用程序多進程運行裝置,其特征在于,所述裝置包括主程序單元,用于控制主程序調(diào)用主動態(tài)庫,通過所述主動態(tài)庫查找到需要的子動態(tài)庫;子程序單元,用于控制預先根據(jù)所述主程序創(chuàng)建的多個子程序裝入所述子動態(tài)庫; 運行返回單元,用于控制所述多個子程序獨立運行,并將所述多個子程序的運行結(jié)果返回給所述主程序。
6.如權利要求5所述的應用程序多進程運行裝置,其特征在于,所述控制所述多個子程序裝入所述子動態(tài)庫為控制所述多個子程序分別將所述子動態(tài)庫裝入自身內(nèi)存地址空間。
7.權利要求5所述的應用程序多進程運行裝置,其特征在于,運行返回單元控制所述多個子程序運行時占用不同的CPU核心。
8.如權利要求5 7中任一項所述的應用程序多進程運行方法,其特征在于,所述主程序為編解碼程序,所述子程序為預先根據(jù)所述編解碼程序編寫的多個子編解碼程序進程。
全文摘要
本發(fā)明實施例提供了一種應用程序多進程運行方法,所述方法包括主程序調(diào)用主動態(tài)庫,通過主動態(tài)庫查找到需要的子動態(tài)庫;由預先根據(jù)所述主程序創(chuàng)建的多個子程序裝入所述子動態(tài)庫;所述多個子程序獨立運行,并將運行結(jié)果返回給所述主程序。相應的,本發(fā)明實施例還公開了一種應用程序多進程運行裝置。采用本發(fā)明,能夠減少應用程序運行過程中占用的系統(tǒng)磁盤空間,提高程序運行效率。
文檔編號G06F9/50GK102270158SQ201110228210
公開日2011年12月7日 申請日期2011年8月10日 優(yōu)先權日2011年8月10日
發(fā)明者張?zhí)?申請人:深圳市萬興軟件有限公司