1.一種實(shí)現(xiàn)內(nèi)存高速交互的方法,其特征在于,包括以下步驟:
1)當(dāng)程序開始運(yùn)行時(shí),通過內(nèi)核將所需大小的內(nèi)存一次申請到位形成內(nèi)存池;
2)將所述內(nèi)存池切片劃分為若干組不同大小的內(nèi)存塊;
3)將劃分好的內(nèi)存塊的地址存入映射表,并建立內(nèi)存塊已使用和未使用兩種映射表;
4)申請內(nèi)存時(shí),從內(nèi)存塊未使用的映射表里直接拿到比所需內(nèi)存大且與所需內(nèi)存大小最接近的一個(gè)內(nèi)存塊的地址,同時(shí)將所述地址放入到內(nèi)存塊已使用的映射表中,釋放內(nèi)存時(shí),將所述地址重新放入到內(nèi)存塊未使用的映射表里,同時(shí)從內(nèi)存塊已使用的映射表中將所述地址刪除;
5)待整個(gè)程序運(yùn)行完成,直接釋放掉整個(gè)內(nèi)存池。
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)內(nèi)存高速交互的方法,其特征在于,步驟1)中所需大小的內(nèi)存是根據(jù)工程的實(shí)際應(yīng)用領(lǐng)域確定的。
3.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)內(nèi)存高速交互的方法,其特征在于,步驟3)中,將同一組內(nèi)存塊的地址存入映射表中的同一個(gè)單位區(qū)域。
4.一種實(shí)現(xiàn)內(nèi)存高速交互的系統(tǒng),其特征在于,包括內(nèi)存池創(chuàng)建模塊、內(nèi)存池管理模塊、匹配分析模塊和內(nèi)存池釋放模塊;
所述內(nèi)存池創(chuàng)建模塊用于當(dāng)檢測到程序運(yùn)行時(shí)通過內(nèi)核將所需大小的內(nèi)存一次申請到位形成內(nèi)存池,并將所述內(nèi)存池切片劃分為若干組不同大小的內(nèi)存塊;
所述匹配分析模塊用于將所需內(nèi)存與內(nèi)存池內(nèi)存儲的內(nèi)存塊進(jìn)行比較,選取比所需內(nèi)存大且與所需內(nèi)存大小最接近的一個(gè)內(nèi)存塊作為被調(diào)用的內(nèi)存塊;
所述內(nèi)存池管理模塊用于將劃分好的內(nèi)存塊的地址存入映射表,并建立內(nèi)存塊已使用和未使用兩種映射表,申請內(nèi)存時(shí),從內(nèi)存塊未使用的映射表里直接拿到內(nèi)存塊的地址,同時(shí)將所述地址放入到內(nèi)存塊已使用的映射表中,釋放內(nèi)存時(shí),將所述地址重新放入到內(nèi)存塊未使用的映射表里,同時(shí)從內(nèi)存塊已使用的映射表中將所述地址刪除;
所述內(nèi)存池釋放模塊用于監(jiān)測整個(gè)程序的運(yùn)行,當(dāng)整個(gè)程序運(yùn)行結(jié)束時(shí),釋放掉整個(gè)內(nèi)存池。
5.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)內(nèi)存高速交互的系統(tǒng),其特征在于,所述內(nèi)存池創(chuàng)建模塊申請的所需大小的內(nèi)存是根據(jù)工程的實(shí)際應(yīng)用領(lǐng)域確定的。
6.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)內(nèi)存高速交互的系統(tǒng),其特征在于,所述內(nèi)存池管理模塊通過其上的映射表創(chuàng)建模塊實(shí)現(xiàn)將劃分好的內(nèi)存塊的地址存入內(nèi)存塊已使用的映射表和內(nèi)存塊未使用的映射表內(nèi)。
7.根據(jù)權(quán)利要求5所述的實(shí)現(xiàn)內(nèi)存高速交互的系統(tǒng),其特征在于,所述映射表創(chuàng)建模塊將同一組內(nèi)存塊的地址存入映射表中的同一個(gè)單位區(qū)域。
8.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)內(nèi)存高速交互的系統(tǒng),其特征在于,所述內(nèi)存池管理模塊通過其上的內(nèi)存塊調(diào)用模塊實(shí)現(xiàn)申請內(nèi)存時(shí),從內(nèi)存塊未使用的映射表里直接拿到內(nèi)存塊的地址,同時(shí)將所述地址放入到內(nèi)存塊已使用的映射表中,釋放內(nèi)存時(shí),將所述地址重新放入到內(nèi)存塊未使用的映射表里,同時(shí)從內(nèi)存塊已使用的映射表中將所述地址刪除。