本申請涉及電子設(shè)備,更具體地,涉及一種數(shù)據(jù)處理方法、裝置以及電子設(shè)備。
背景技術(shù):
1、linux系統(tǒng)可以提供共享內(nèi)存機制,使多個進程之間進行數(shù)據(jù)傳輸。在相關(guān)方式中,作為數(shù)據(jù)生產(chǎn)者的進程可以從共享內(nèi)存空間中申請共享內(nèi)存,以存放生產(chǎn)的數(shù)據(jù),但相關(guān)方式中,還存在數(shù)據(jù)存儲效率較低的問題。
技術(shù)實現(xiàn)思路
1、鑒于上述問題,本申請?zhí)岢隽艘环N數(shù)據(jù)處理方法、裝置以及電子設(shè)備,以實現(xiàn)改善上述問題。
2、第一方面,本申請?zhí)峁┝艘环N數(shù)據(jù)處理方法,所述方法包括:當(dāng)數(shù)據(jù)生產(chǎn)者開始傳輸視頻時,從共享內(nèi)存空間中為所述數(shù)據(jù)生產(chǎn)者申請一個內(nèi)存塊,其中,所述內(nèi)存塊包括數(shù)據(jù)區(qū)和管理區(qū),所述數(shù)據(jù)區(qū)包括空閑鏈表,所述空閑鏈表包括多個存儲空間的大小相同的內(nèi)存片,所述管理區(qū)用于記錄所述數(shù)據(jù)區(qū)中所有內(nèi)存片的使用狀態(tài);基于所述空閑鏈表中內(nèi)存片的使用狀態(tài),從所述空閑鏈表中確定目標(biāo)內(nèi)存片,所述目標(biāo)內(nèi)存片為距離所述空閑鏈表中頭結(jié)點最近且處于未使用狀態(tài)的結(jié)點;將目標(biāo)數(shù)據(jù)存入所述目標(biāo)內(nèi)存片,所述目標(biāo)數(shù)據(jù)為所述數(shù)據(jù)生產(chǎn)者所傳輸?shù)囊曨l中當(dāng)前幀的圖像數(shù)據(jù)。
3、第二方面,本申請?zhí)峁┝艘环N數(shù)據(jù)處理裝置,所述裝置包括:內(nèi)存塊獲取單元,用于從共享內(nèi)存空間中為數(shù)據(jù)生產(chǎn)者申請一個內(nèi)存塊,其中,所述內(nèi)存塊包括數(shù)據(jù)區(qū)和管理區(qū),所述數(shù)據(jù)區(qū)中包括空閑鏈表和已使用鏈表,所述空閑鏈表和所述已使用鏈表分別包括多個存儲空間的大小相同的內(nèi)存片,且所述空閑鏈表的頭結(jié)點與所述已使用鏈表的頭結(jié)點相連接,所述管理區(qū)用于記錄所述數(shù)據(jù)區(qū)中所有內(nèi)存片的使用狀態(tài);目標(biāo)內(nèi)存片獲取單元,用于基于所述空閑鏈表中內(nèi)存片的使用狀態(tài),從所述空閑鏈表中確定目標(biāo)內(nèi)存片,所述目標(biāo)內(nèi)存片為距離所述空閑鏈表中頭結(jié)點最近且處于未使用狀態(tài)的結(jié)點;鏈表管理單元,用于將目標(biāo)數(shù)據(jù)存入所述目標(biāo)內(nèi)存片,所述目標(biāo)數(shù)據(jù)為所述數(shù)據(jù)生產(chǎn)者當(dāng)前生產(chǎn)的數(shù)據(jù)。
4、第三方面,本申請?zhí)峁┝艘环N電子設(shè)備,包括一個或多個處理器以及存儲器;一個或多個程序被存儲在所述存儲器中并被配置為由所述一個或多個處理器執(zhí)行,所述一個或多個程序配置用于執(zhí)行上述的方法。
5、第四方面,本申請?zhí)峁┑囊环N計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)中存儲有程序代碼,其中,在所述程序代碼運行時執(zhí)行上述的方法。
6、本申請?zhí)峁┑囊环N數(shù)據(jù)處理方法、裝置、電子設(shè)備以及存儲介質(zhì),當(dāng)數(shù)據(jù)生產(chǎn)者開始傳輸視頻時,從共享內(nèi)存空間中為所述數(shù)據(jù)生產(chǎn)者申請一個內(nèi)存塊,基于所述空閑鏈表中內(nèi)存片的使用狀態(tài),從所述空閑鏈表中確定目標(biāo)內(nèi)存片,將目標(biāo)數(shù)據(jù)存入所述目標(biāo)內(nèi)存片,所述目標(biāo)數(shù)據(jù)為所述數(shù)據(jù)生產(chǎn)者所傳輸?shù)囊曨l中當(dāng)前幀的圖像數(shù)據(jù)。通過上述方式使得,可以當(dāng)數(shù)據(jù)生產(chǎn)者開始傳輸視頻時,從共享內(nèi)存空間中為數(shù)據(jù)生產(chǎn)者申請一個內(nèi)存塊后,通過管理區(qū)所記錄的空閑鏈表中內(nèi)存片的使用狀態(tài),確定目標(biāo)內(nèi)存片,以將目標(biāo)數(shù)據(jù)存入目標(biāo)內(nèi)存片,從而可以無需遍歷整個空閑鏈表,僅通過空閑鏈表中內(nèi)存片的使用狀態(tài)就確定出目標(biāo)內(nèi)存片。并且,因為在視頻傳輸場景中,每幀圖像數(shù)據(jù)大小基本相同,所以將空閑鏈表分為多個存儲空間大小相同的內(nèi)存片,可以無需計算每個內(nèi)存片的剩余存儲空間,在確定目標(biāo)內(nèi)存片后,可以直接將目標(biāo)數(shù)據(jù)存入目標(biāo)內(nèi)存片,因此,通過將空閑鏈表多個存儲空間相同的內(nèi)存片以及記錄內(nèi)存片的使用狀態(tài),提高了數(shù)據(jù)存儲效率。
1.一種數(shù)據(jù)處理方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)區(qū)還包括已使用鏈表,所述將目標(biāo)數(shù)據(jù)存入所述目標(biāo)內(nèi)存片之后,還包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述已使用鏈表的頭結(jié)點與所述空閑鏈表的頭結(jié)點通過內(nèi)存分配接口相互關(guān)聯(lián),所述將所述目標(biāo)內(nèi)存片從所述空閑鏈表中刪除,并將所述目標(biāo)內(nèi)存片插入所述已使用鏈表,包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述空閑鏈表為頭結(jié)點不指向尾結(jié)點的雙向循環(huán)鏈表,所述將所述目標(biāo)內(nèi)存片從所述空閑鏈表中刪除,包括:
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述已使用鏈表為頭結(jié)點不指向尾結(jié)點的雙向循環(huán)鏈表,所述已使用鏈表的頭結(jié)點指向所述已使用鏈表的下一內(nèi)存片,所述將所述目標(biāo)內(nèi)存片插入所述已使用鏈表,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)區(qū)還包括已使用鏈表,所述已使用鏈表的頭結(jié)點與所述空閑鏈表的頭結(jié)點通過內(nèi)存分配接口相互關(guān)聯(lián),所述方法還包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述在所述引用計數(shù)變?yōu)?時,將所述目標(biāo)內(nèi)存的使用狀態(tài)更新為未使用狀態(tài)之前,還包括:
8.一種數(shù)據(jù)處理裝置,其特征在于,所述裝置包括:
9.一種電子設(shè)備,其特征在于,包括一個或多個處理器以及存儲器;
10.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)中存儲有程序代碼,其中,在所述程序代碼運行時執(zhí)行權(quán)利要求1-7任一所述的方法。