專(zhuān)利名稱(chēng):一種基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的方法和計(jì)算機(jī)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)共享的技術(shù),尤其涉及基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的技術(shù)。
背景技術(shù):
現(xiàn)有的計(jì)算機(jī)設(shè)備中的進(jìn)程間數(shù)據(jù)交換和共享的方式主要有共享內(nèi)存、命名管道、匿名管道、發(fā)送消息等直接方法,也有通過(guò)socket 口,配置文件和注冊(cè)表等間接方法來(lái)實(shí)現(xiàn)進(jìn)程間數(shù)據(jù)通訊任務(wù)。其中,共享內(nèi)存是進(jìn)程間通信的最有用方式,然而,在數(shù)據(jù)共享時(shí),如果頻繁申請(qǐng)共享內(nèi)存,則會(huì)造成大量?jī)?nèi)存碎片的產(chǎn)生,空間利用率低。為了減少內(nèi)存碎片的產(chǎn)生,提高空間利用率,現(xiàn)有技術(shù)中多采用內(nèi)存池(Memory Pool)技術(shù)。內(nèi)存池是一種內(nèi)存分配技術(shù),其在真正使用內(nèi)存之前,先申請(qǐng)分配一定數(shù)量的、 大小相等(一般情況下)的內(nèi)存塊留作備用。當(dāng)有新的內(nèi)存需求時(shí),就從內(nèi)存池中分出一部分內(nèi)存塊,若內(nèi)存塊不夠再繼續(xù)申請(qǐng)新的內(nèi)存可有效降低申請(qǐng)內(nèi)存的次數(shù)、減少與系統(tǒng)內(nèi)核的交互、減少內(nèi)存碎片、提升系統(tǒng)性能等優(yōu)點(diǎn),然而,由于內(nèi)存塊在不同進(jìn)程中的映射地址不同,因而,在內(nèi)存池中無(wú)法讓不同進(jìn)程共享對(duì)象數(shù)據(jù)。因此,如何提供一種在計(jì)算機(jī)設(shè)備中既能夠利用內(nèi)存池的優(yōu)點(diǎn),又能夠使得不同進(jìn)程可在內(nèi)存池中進(jìn)行對(duì)象數(shù)據(jù)共享的方案,已成為本領(lǐng)域技術(shù)人員需要解決的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于內(nèi)存池來(lái)使得不同進(jìn)程進(jìn)行對(duì)象數(shù)據(jù)共享的方法和設(shè)備。根據(jù)本發(fā)明的一個(gè)方面,提供一種在計(jì)算機(jī)設(shè)備中基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的方法,其中,該方法包括以下步驟a根據(jù)來(lái)自第二進(jìn)程的對(duì)象訪問(wèn)請(qǐng)求,來(lái)獲取所述第二進(jìn)程需要訪問(wèn)的第一對(duì)象的標(biāo)識(shí)信息;b根據(jù)所確定的第一對(duì)象的標(biāo)識(shí)信息來(lái)獲取所述第一對(duì)象的位置信息;c將所述第一對(duì)象的位置信息提供給所述第二進(jìn)程。根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的計(jì)算機(jī)設(shè)備,其中,該設(shè)備包括第一獲取裝置,用于根據(jù)來(lái)自第二進(jìn)程的對(duì)象訪問(wèn)請(qǐng)求,來(lái)獲取所述第二進(jìn)程需要訪問(wèn)的第一對(duì)象的標(biāo)識(shí)信息;第二獲取裝置,用于根據(jù)所確定的第一對(duì)象的標(biāo)識(shí)信息來(lái)獲取所述第一對(duì)象的位
直fe息;提供裝置,用于將所述第一對(duì)象的位置信息提供給所述第二進(jìn)程。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明將共享內(nèi)存與內(nèi)存池相結(jié)合,達(dá)到既可以有效防止由于頻繁申請(qǐng)內(nèi)存而產(chǎn)生內(nèi)存碎片、降低系統(tǒng)性能的問(wèn)題,又可以達(dá)到數(shù)據(jù)共享的效果。
通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯圖1為本發(fā)明一個(gè)方面的基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的方法的流程圖;圖2為本發(fā)明的一個(gè)優(yōu)選實(shí)施例的基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的流程圖;圖3為本發(fā)明的另一個(gè)優(yōu)選實(shí)施例的基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的流程圖;圖4為本發(fā)明一個(gè)方面的基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的設(shè)備的示意圖;圖5為本發(fā)明的一個(gè)優(yōu)選實(shí)施例的基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的設(shè)備的示意圖;圖6為本發(fā)明的另一個(gè)優(yōu)選實(shí)施例的基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的設(shè)備的示意圖;附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實(shí)施例方式術(shù)語(yǔ)定義“計(jì)算機(jī)設(shè)備”本上下文中,計(jì)算機(jī)設(shè)備為能夠按照事先存儲(chǔ)的程序,自動(dòng)地進(jìn)行數(shù)值計(jì)算和信息處理的電子設(shè)備,包括但不限于個(gè)人電腦、智能手機(jī)、服務(wù)器、小型機(jī)等,其通過(guò)操作系統(tǒng)或內(nèi)存控制芯片等來(lái)進(jìn)行內(nèi)存管理;“進(jìn)程”本上下文中,進(jìn)程是在計(jì)算機(jī)中正在運(yùn)行的應(yīng)用程序?qū)嶓w,其被分配給計(jì)算機(jī)設(shè)備的處理器并由處理器執(zhí)行;“對(duì)象”本上下文中,對(duì)象是指在基于面向?qū)ο蟮某绦蛘Z(yǔ)言所設(shè)計(jì)的應(yīng)用程序中的對(duì)象。下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。圖1示意出了本發(fā)明一個(gè)方面的在計(jì)算機(jī)設(shè)備基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的方法的流程圖。其中,所述根據(jù)本發(fā)明的方法可通過(guò)計(jì)算機(jī)設(shè)備中的處理器執(zhí)行操作系統(tǒng)或內(nèi)存控制程序來(lái)實(shí)現(xiàn),所述操作系統(tǒng)包括但不限于Windows、Linux、Unix、Netware或嵌入式系統(tǒng)等,也可由內(nèi)存控制芯片等硬件來(lái)實(shí)現(xiàn)具體地,計(jì)算機(jī)設(shè)備首先創(chuàng)建和管理內(nèi)存池,并根據(jù)來(lái)自使用所述內(nèi)存池的進(jìn)程的內(nèi)存分配請(qǐng)求,在內(nèi)存池中為所述進(jìn)程分配一個(gè)或多個(gè)內(nèi)存塊,當(dāng)所述進(jìn)程需要?jiǎng)?chuàng)建對(duì)象時(shí),計(jì)算機(jī)設(shè)備根據(jù)獲得的所述進(jìn)程創(chuàng)建所述對(duì)象的請(qǐng)求,在所述一個(gè)或多個(gè)內(nèi)存塊中為所述對(duì)象分配空間,以存儲(chǔ)所述對(duì)象。計(jì)算機(jī)設(shè)備可根據(jù)上述操作在一個(gè)或多個(gè)內(nèi)存池內(nèi)為多個(gè)進(jìn)程創(chuàng)建對(duì)象。并且,所述計(jì)算機(jī)設(shè)備還能夠在內(nèi)存池中將一個(gè)進(jìn)程創(chuàng)建的對(duì)象提供給另一個(gè)進(jìn)程共享。以下以第二進(jìn)程訪問(wèn)第一進(jìn)程所創(chuàng)建的第一對(duì)象為例,說(shuō)明所述計(jì)算機(jī)設(shè)備如何實(shí)現(xiàn)在內(nèi)存池內(nèi)進(jìn)行對(duì)象共享。其中,所述第二進(jìn)程包括但不限于以下類(lèi)別1)未創(chuàng)建對(duì)象的進(jìn)程;2)創(chuàng)建了非共享對(duì)象的進(jìn)程;3)創(chuàng)建了共享對(duì)象的進(jìn)程。在步驟Sl中,計(jì)算機(jī)設(shè)備根據(jù)來(lái)自第二進(jìn)程的對(duì)象訪問(wèn)請(qǐng)求,來(lái)獲取所述第二進(jìn)程需要訪問(wèn)的第一對(duì)象的標(biāo)識(shí)信息。其中,所述第二進(jìn)程的對(duì)象訪問(wèn)請(qǐng)求可基于 OpenFileMapping函數(shù)、GetProcAddress函數(shù)、消息函數(shù)、中斷、或控件等發(fā)送。計(jì)算機(jī)設(shè)備如果捕獲到所述對(duì)象訪問(wèn)請(qǐng)求,則從該對(duì)象訪問(wèn)請(qǐng)求中提取所述第二進(jìn)程需要訪問(wèn)的第一對(duì)象的標(biāo)識(shí)信息。其中,所述標(biāo)識(shí)信息包括但不限于1)所述第一對(duì)象的名稱(chēng);2)所述第一對(duì)象的ID ;3)創(chuàng)建所述第一對(duì)象的第一進(jìn)程的名稱(chēng);4)所述第一對(duì)象的創(chuàng)建時(shí)間等。 需要說(shuō)明的是,由于一個(gè)對(duì)象可具有多種標(biāo)識(shí)信息,而在所述對(duì)象訪問(wèn)請(qǐng)求中可能僅包含一種標(biāo)識(shí)信息,因此,計(jì)算機(jī)設(shè)備在提取該一種標(biāo)識(shí)信息后,還可結(jié)合所述內(nèi)存池的相關(guān)信息,獲取該對(duì)象的其他標(biāo)識(shí)信息。接著,在步驟S2中,計(jì)算機(jī)設(shè)備根據(jù)所確定的第一對(duì)象的標(biāo)識(shí)信息來(lái)獲取所述第一對(duì)象的位置信息。具體地,計(jì)算機(jī)設(shè)備獲取所述第一對(duì)象的位置信息的方式包括但不限于1)根據(jù)所述第一對(duì)象的標(biāo)識(shí)信息,直接獲取第一進(jìn)程創(chuàng)建所述第一對(duì)象時(shí),內(nèi)存池所保存的所述第一對(duì)象的位置信息;其中,所述內(nèi)存池所保存的所述第一對(duì)象的位置信息包括但不限于a)所述第一對(duì)象在創(chuàng)建所述第一對(duì)象的第一進(jìn)程中的原始地址及所述第一對(duì)象在可能訪問(wèn)所述第一對(duì)象的其他進(jìn)程中的映射地址;例如,請(qǐng)參照如下表1,表1示出所存儲(chǔ)的所述第一對(duì)象的位置信息及與所述第一對(duì)象的位置信息相關(guān)的信息,其中第一進(jìn)程創(chuàng)建對(duì)象時(shí),所述計(jì)算機(jī)設(shè)備即根據(jù)第一進(jìn)程提供的第二進(jìn)程可能訪問(wèn)所述第一對(duì)象的信息,保存了所述第一對(duì)象的標(biāo)識(shí)信息以及所述第一對(duì)象在第二進(jìn)程地址空間的映射地址信息,當(dāng)計(jì)算機(jī)設(shè)備根據(jù)第二進(jìn)程提供的信息判斷得到第二進(jìn)程需要訪問(wèn)的對(duì)象的ID為456時(shí),所述計(jì)算機(jī)設(shè)備查找所記錄的ID為456 的對(duì)象的信息,得到所述第一對(duì)象在第二進(jìn)程地址空間的映射地址為0x12345678。本領(lǐng)域技術(shù)人員應(yīng)理解,上下文中所例舉的具體的映射地址以及內(nèi)存塊大小等數(shù)值僅為說(shuō)明目的所例舉,不應(yīng)視為對(duì)本發(fā)明的任何限制。表1 第一對(duì)象的位置信息及位置信息相關(guān)的信息
權(quán)利要求
1.一種在計(jì)算機(jī)設(shè)備中基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的方法,其中,所述內(nèi)存池根據(jù)來(lái)自進(jìn)程的內(nèi)存分配請(qǐng)求為其分配一個(gè)或多個(gè)內(nèi)存塊,以使所述進(jìn)程在所述一個(gè)或多個(gè)內(nèi)存塊中創(chuàng)建一個(gè)或多個(gè)對(duì)象,該方法包括以下步驟a根據(jù)來(lái)自第二進(jìn)程的對(duì)象訪問(wèn)請(qǐng)求,來(lái)獲取所述第二進(jìn)程需要訪問(wèn)的第一對(duì)象的標(biāo)識(shí)信息;b根據(jù)所確定的第一對(duì)象的標(biāo)識(shí)信息來(lái)獲取所述第一對(duì)象的位置信息; c將所述第一對(duì)象的位置信息提供給所述第二進(jìn)程。
2.根據(jù)權(quán)利要求1所述的方法,其中,該方法還包括以下步驟 -獲取所述進(jìn)程為待創(chuàng)建的對(duì)象請(qǐng)求創(chuàng)建位置的請(qǐng)求;-在為所述進(jìn)程分配的內(nèi)存塊中為所述待創(chuàng)建的對(duì)象分配所述創(chuàng)建位置; -記錄所述待創(chuàng)建對(duì)象的所述創(chuàng)建位置的信息。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述步驟b還包括以下步驟-根據(jù)所確定的第一對(duì)象的標(biāo)識(shí)信息來(lái)查找所述第一對(duì)象的所述創(chuàng)建位置的信息,將所述創(chuàng)建位置的信息作為所述第一對(duì)象的位置信息。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述步驟a還包括以下步驟_根據(jù)來(lái)自所述第二進(jìn)程的對(duì)象訪問(wèn)請(qǐng)求,來(lái)獲取所述第二進(jìn)程需要訪問(wèn)的第一對(duì)象及創(chuàng)建該第一對(duì)象的第一進(jìn)程的標(biāo)識(shí)信息; 所述步驟b還包括以下步驟_根據(jù)所確定的所述第一對(duì)象及所述第一進(jìn)程的標(biāo)識(shí)信息來(lái)獲取所述第一對(duì)象在所述第一進(jìn)程中的對(duì)象原始地址、為所述第一進(jìn)程分配的各個(gè)內(nèi)存塊在所述第一進(jìn)程中的各個(gè)內(nèi)存原始地址及各個(gè)內(nèi)存塊的大??;_根據(jù)所述第一對(duì)象在所述第一進(jìn)程中的對(duì)象原始地址、為所述第一進(jìn)程分配的各個(gè)內(nèi)存塊在所述第一進(jìn)程中的各個(gè)內(nèi)存原始地址及各個(gè)內(nèi)存塊的大小,來(lái)確定所述第一對(duì)象所在的內(nèi)存塊及其在該內(nèi)存塊中的位置信息。
5.根據(jù)權(quán)利要求4所述的方法,其中,所述步驟b還包括以下步驟_根據(jù)所確定的所述第一對(duì)象及所述第一進(jìn)程的標(biāo)識(shí)信息來(lái)獲取所述對(duì)象原始地址、 為所述第一進(jìn)程分配的各個(gè)內(nèi)存塊在所述第一進(jìn)程中的各個(gè)內(nèi)存原始地址及每個(gè)內(nèi)存原始地址所指內(nèi)存塊的最大偏移量;-將所述對(duì)象原始地址逐一與所述內(nèi)存原始地址及該內(nèi)存原始地址所對(duì)應(yīng)的尾地址進(jìn)行范圍匹配,以確定所述第一對(duì)象所在的內(nèi)存塊,其中,所述尾地址為所述內(nèi)存原始地址與該內(nèi)存原始地址所對(duì)應(yīng)的最大偏移量之和;_將所述對(duì)象原始地址減去該對(duì)象所在內(nèi)存塊的內(nèi)存原始地址,以得到該對(duì)象在該內(nèi)存塊中的偏移量,并將所述第一對(duì)象所在的內(nèi)存塊及在該內(nèi)存塊中的偏移量作為位置信肩、ο
6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的方法,其中,所述步驟a還包括以下步驟 -根據(jù)所述對(duì)象訪問(wèn)請(qǐng)求,并結(jié)合所述內(nèi)存池的相關(guān)信息,來(lái)獲取所述第一對(duì)象的標(biāo)識(shí)fn息;-基于所述第一對(duì)象的標(biāo)識(shí)信息在所述內(nèi)存池相關(guān)信息中進(jìn)行查詢(xún),以確定創(chuàng)建所述第一對(duì)象的所述第一進(jìn)程的標(biāo)識(shí)信息。
7.根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的方法,其中,該方法還包括以下步驟-根據(jù)所述一個(gè)或多個(gè)進(jìn)程中對(duì)象之間存在的引用關(guān)系,建立或更新對(duì)象引用關(guān)系庫(kù)。
8.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的方法,其中,該方法還包括以下步驟 -根據(jù)所述內(nèi)存池的信息變化,更新所述內(nèi)存池相關(guān)信息。
9.根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的方法,其中,所述內(nèi)存池相關(guān)信息包括以下至少一項(xiàng)信息-所述內(nèi)存池的版本號(hào);-用于存儲(chǔ)所述內(nèi)存池的相關(guān)信息的存儲(chǔ)塊的分配狀態(tài); -所述內(nèi)存池的ID; -使用該內(nèi)存池的進(jìn)程的ID;-各個(gè)使用該內(nèi)存池的進(jìn)程的所創(chuàng)建的內(nèi)存塊的相關(guān)信息; -被共享的對(duì)象的ID; -用于查找對(duì)象的引用關(guān)系庫(kù)。
10.根據(jù)權(quán)利要求1至9中任一項(xiàng)所述的方法,其中,所述內(nèi)存池的相關(guān)信息保存在所述內(nèi)存池的一個(gè)共享內(nèi)存塊中。
11.一種在計(jì)算機(jī)設(shè)備中基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的內(nèi)存控制裝置,其中,所述內(nèi)存池根據(jù)來(lái)自進(jìn)程的內(nèi)存分配請(qǐng)求為其分配一個(gè)或多個(gè)內(nèi)存塊,以使所述進(jìn)程在所述一個(gè)或多個(gè)內(nèi)存塊中創(chuàng)建一個(gè)或多個(gè)對(duì)象,該內(nèi)存控制裝置包括第一獲取裝置,用于根據(jù)來(lái)自第二進(jìn)程的對(duì)象訪問(wèn)請(qǐng)求,來(lái)獲取所述第二進(jìn)程需要訪問(wèn)的第一對(duì)象的標(biāo)識(shí)信息;第二獲取裝置,用于根據(jù)所確定的第一對(duì)象的標(biāo)識(shí)信息來(lái)獲取所述第一對(duì)象的位置信息;提供裝置,用于將所述第一對(duì)象的位置信息提供給所述第二進(jìn)程。
12.根據(jù)權(quán)利要求11所述的內(nèi)存控制裝置,其中,該內(nèi)存控制裝置還包括 第三獲取裝置,用于獲取所述進(jìn)程為待創(chuàng)建的對(duì)象請(qǐng)求創(chuàng)建位置的請(qǐng)求;分配裝置,用于在為所述進(jìn)程分配的內(nèi)存塊中為所述待創(chuàng)建的對(duì)象分配所述創(chuàng)建位置;記錄裝置,用于記錄所述待創(chuàng)建對(duì)象的所述創(chuàng)建位置的信息。
13.根據(jù)權(quán)利要求12所述的內(nèi)存控制裝置,其中,所述第二獲取裝置還包括 查找裝置,用于根據(jù)所確定的第一對(duì)象的標(biāo)識(shí)信息來(lái)查找所述第一對(duì)象的所述創(chuàng)建位置的信息,將所述創(chuàng)建位置的信息作為所述第一對(duì)象的位置信息。
14.根據(jù)權(quán)利要求11所述的內(nèi)存控制裝置,其中,所述第一獲取裝置還包括第一獲取子裝置、用于根據(jù)來(lái)自所述第二進(jìn)程的對(duì)象訪問(wèn)請(qǐng)求,來(lái)獲取所述第二進(jìn)程需要訪問(wèn)的第一對(duì)象及創(chuàng)建該第一對(duì)象的第一進(jìn)程的標(biāo)識(shí)信息; 所述第二獲取裝置還包括第二獲取子裝置,用于根據(jù)所確定的所述第一對(duì)象及所述第一進(jìn)程的標(biāo)識(shí)信息來(lái)獲取所述第一對(duì)象在所述第一進(jìn)程中的對(duì)象原始地址、為所述第一進(jìn)程分配的各個(gè)內(nèi)存塊在所述第一進(jìn)程中的各個(gè)內(nèi)存原始地址及各個(gè)內(nèi)存塊的大??;第一位置分析裝置,用于根據(jù)所述第一對(duì)象在所述第一進(jìn)程中的對(duì)象原始地址、為所述第一進(jìn)程分配的各個(gè)內(nèi)存塊在所述第一進(jìn)程中的各個(gè)內(nèi)存原始地址及各個(gè)內(nèi)存塊的大小,來(lái)確定所述第一對(duì)象所在的內(nèi)存塊及其在該內(nèi)存塊中的位置信息。
15.根據(jù)權(quán)利要求14所述的內(nèi)存控制裝置,其中,所述第二獲取裝置還包括第三獲取子裝置、用于根據(jù)所確定的所述第一對(duì)象及所述第一進(jìn)程的標(biāo)識(shí)信息來(lái)獲取所述對(duì)象原始地址、為所述第一進(jìn)程分配的各個(gè)內(nèi)存塊在所述第一進(jìn)程中的各個(gè)內(nèi)存原始地址及每個(gè)內(nèi)存原始地址所指內(nèi)存塊的最大偏移量;匹配裝置,用于將所述對(duì)象原始地址逐一與所述內(nèi)存原始地址及該內(nèi)存原始地址所對(duì)應(yīng)的尾地址進(jìn)行范圍匹配,以確定所述第一對(duì)象所在的內(nèi)存塊,其中,所述尾地址由所述內(nèi)存原始地址與該內(nèi)存原始地址所對(duì)應(yīng)的最大偏移量相加得到;第二位置分析裝置,用于將所述對(duì)象原始地址減去該對(duì)象所在內(nèi)存塊的內(nèi)存原始地址,以得到該對(duì)象在該內(nèi)存塊中的偏移量,并將所述第一對(duì)象所在的內(nèi)存塊及在該內(nèi)存塊中的偏移量作為位置信息。
16.根據(jù)權(quán)利要求11至15中任一項(xiàng)所述的內(nèi)存控制裝置,其中,所述第一獲取子裝置還包括提取裝置,用于根據(jù)所述對(duì)象訪問(wèn)請(qǐng)求,并結(jié)合所述內(nèi)存池的相關(guān)信息,來(lái)獲取所述第一對(duì)象的標(biāo)識(shí)信息;查詢(xún)裝置,用于基于所述第一對(duì)象的標(biāo)識(shí)信息在所述內(nèi)存池相關(guān)信息中進(jìn)行查詢(xún),以確定創(chuàng)建所述第一對(duì)象的所述第一進(jìn)程的標(biāo)識(shí)信息。
17.根據(jù)權(quán)利要求11至16中任一項(xiàng)所述的內(nèi)存控制裝置,其中,該內(nèi)存控制裝置還包括第一更新裝置,用于根據(jù)所述一個(gè)或多個(gè)進(jìn)程中對(duì)象之間存在的引用關(guān)系,建立或更新對(duì)象引用關(guān)系庫(kù)。
18.根據(jù)權(quán)利要求11至17中任一項(xiàng)所述的內(nèi)存控制裝置,其中,該內(nèi)存控制裝置還包括第二更新裝置,用于根據(jù)所述內(nèi)存池的信息變化,更新所述內(nèi)存池相關(guān)信息。
19.根據(jù)權(quán)利要求11至18中任一項(xiàng)所述的內(nèi)存控制裝置,其中,所述內(nèi)存池相關(guān)信息包括以下至少一項(xiàng)信息-所述內(nèi)存池的版本號(hào);-用于存儲(chǔ)所述內(nèi)存池的相關(guān)信息的存儲(chǔ)塊的分配狀態(tài);-所述內(nèi)存池的ID;-使用該內(nèi)存池的進(jìn)程的ID;-各個(gè)使用該內(nèi)存池的進(jìn)程所創(chuàng)建的內(nèi)存塊相關(guān)信息;-被共享的對(duì)象的ID;-用于查找對(duì)象的引用關(guān)系庫(kù)。
20.根據(jù)權(quán)利要求11至19中任一項(xiàng)所述的內(nèi)存控制裝置,其中,該內(nèi)存控制裝置還包括保存裝置,用于將所述內(nèi)存池的相關(guān)信息保存在所述內(nèi)存池的一個(gè)共享內(nèi)存塊中。
21.一種計(jì)算機(jī)設(shè)備,其包括如權(quán)利要求11至20中任一項(xiàng)所述的內(nèi)存控制裝置。
全文摘要
本發(fā)明的目的是提供一種基于內(nèi)存池來(lái)進(jìn)行數(shù)據(jù)共享的方法和內(nèi)存控制裝置。其中,內(nèi)存控制裝置根據(jù)來(lái)自第二進(jìn)程的對(duì)象訪問(wèn)請(qǐng)求,來(lái)獲取所述第二進(jìn)程需要訪問(wèn)的第一對(duì)象的標(biāo)識(shí)信息,然后根據(jù)所確定的第一對(duì)象的標(biāo)識(shí)信息來(lái)獲取所述第一對(duì)象的位置信息,并將所述第一對(duì)象的位置信息提供給所述第二進(jìn)程。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明將共享內(nèi)存與內(nèi)存池相結(jié)合,達(dá)到既可以有效防止由于頻繁申請(qǐng)內(nèi)存而產(chǎn)生內(nèi)存碎片、降低系統(tǒng)性能的問(wèn)題,又可以達(dá)到數(shù)據(jù)共享的效果。
文檔編號(hào)G06F9/50GK102455943SQ20101051234
公開(kāi)日2012年5月16日 申請(qǐng)日期2010年10月19日 優(yōu)先權(quán)日2010年10月19日
發(fā)明者郭春茂 申請(qǐng)人:上海聚力傳媒技術(shù)有限公司