av网站播放,国产一级特黄毛片在线毛片,久久精品国产99精品丝袜,天天干夜夜要,伊人影院久久,av大全免费在线观看,国产第一区在线

開(kāi)源幾何引擎的內(nèi)存管理信息處理方法、裝置、及設(shè)備與流程

文檔序號(hào):42296017發(fā)布日期:2025-06-27 18:33閱讀:7來(lái)源:國(guó)知局

本公開(kāi)實(shí)施例涉及數(shù)據(jù)庫(kù)管理,尤其涉及一種開(kāi)源幾何引擎的內(nèi)存管理信息處理方法、裝置、及設(shè)備。


背景技術(shù):

1、geos庫(kù)被用于開(kāi)發(fā)與幾何圖形與地理數(shù)據(jù)相關(guān)的功能,其應(yīng)用程序編程接口(application?programming?interface,api)功能全面,執(zhí)行效率高,受到了很多大型項(xiàng)目的青睞。同時(shí),其本身的穩(wěn)定性和成熟度都經(jīng)過(guò)了時(shí)間和大量用戶(hù)的驗(yàn)證。通過(guò)在工程中引入geos庫(kù)可以大幅提升開(kāi)發(fā)進(jìn)度以及軟件的可靠性。然而geos庫(kù)在內(nèi)存管理方面并不完美,有可能出現(xiàn)內(nèi)存泄漏等情況。不少其他三方庫(kù)的作者意識(shí)到了自己無(wú)法保證完全避免內(nèi)存泄漏的風(fēng)險(xiǎn),所以它們將內(nèi)存的分配和釋放邏輯做了封裝,并給用戶(hù)提供了設(shè)置回調(diào)函數(shù)的方法,讓用戶(hù)來(lái)管理三方庫(kù)中內(nèi)存的申請(qǐng)與釋放。庫(kù)內(nèi)函數(shù)需要申請(qǐng)和釋放內(nèi)存時(shí)都使用用戶(hù)傳入的函數(shù)來(lái)執(zhí)行。此時(shí)只要用戶(hù)的內(nèi)存管理函數(shù)設(shè)計(jì)合理,是可以減少甚至消除內(nèi)存泄漏帶來(lái)的影響。但geos庫(kù)并未設(shè)計(jì)這樣的功能。

2、對(duì)于以c++作為主要語(yǔ)言的geos庫(kù),重載每個(gè)類(lèi)(一般是重載每個(gè)基類(lèi))內(nèi)的new與delete方法,再設(shè)置對(duì)應(yīng)的回調(diào)函數(shù)讓用戶(hù)指定內(nèi)存申請(qǐng)和釋放的函數(shù)地址。這種做法最為普通,最為穩(wěn)定。但是該方法需要對(duì)源代碼做出的修改量巨大,且無(wú)法保證所作出的修改就一定是完全的,若該庫(kù)還使用到了一些其他c++模板庫(kù),則這些庫(kù)也需要被修改。

3、另外一種方法是在動(dòng)態(tài)庫(kù)代碼中重載全局的new與delete操作符。這種方法的修改量與源代碼的數(shù)量不相關(guān),所以相比于上面一種方法修改量小得多,其產(chǎn)生的作用范圍也更廣泛。但是這樣重載后最終的運(yùn)行效果與操作系統(tǒng)(如:linux)加載動(dòng)態(tài)庫(kù)時(shí)候的連接過(guò)程有關(guān)。在一些情況下可能會(huì)出現(xiàn)重載成功但運(yùn)行時(shí)不生效的情況。另外一些情況下還可能出現(xiàn)主程序和主程序使用的其他動(dòng)態(tài)庫(kù)中的new與delete操作符也一并被替換,從而可能出現(xiàn)不可預(yù)知的問(wèn)題,因此這顯然也不能滿(mǎn)足數(shù)據(jù)庫(kù)系統(tǒng)的要求。


技術(shù)實(shí)現(xiàn)思路

1、本公開(kāi)實(shí)施例提供了一種開(kāi)源幾何引擎的內(nèi)存管理信息處理方法、裝置、及設(shè)備,在不需要對(duì)geos庫(kù)文件進(jìn)行較大的修改的基礎(chǔ)上實(shí)現(xiàn)庫(kù)中內(nèi)存分配與釋放函數(shù)的替換。

2、第一方面,提供了一種開(kāi)源幾何引擎的內(nèi)存管理信息處理方法,包括:

3、在第一開(kāi)源幾何引擎geos的源代碼中添加自定義內(nèi)存管理信息,得到第二開(kāi)源幾何引擎geos,所述自定義內(nèi)存管理信息包括內(nèi)存申請(qǐng)函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息和內(nèi)存釋放函數(shù)預(yù)設(shè)跳轉(zhuǎn)地址信息;

4、將所述第二開(kāi)源幾何引擎geos編譯成動(dòng)態(tài)庫(kù)文件;

5、根據(jù)所述動(dòng)態(tài)庫(kù)文件的反匯編結(jié)果確定第一地址信息和第二地址信息,所述第一地址信息包括內(nèi)存申請(qǐng)函數(shù)的原有跳轉(zhuǎn)地址信息和內(nèi)存釋放函數(shù)的原有跳轉(zhuǎn)地址信息,所述第二地址信息包括內(nèi)存申請(qǐng)函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息和內(nèi)存釋放函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息;

6、對(duì)于關(guān)聯(lián)于第一地址信息的反匯編指令,利用所述第二地址信息對(duì)所述第一地址信息進(jìn)行修改,得到修改后的關(guān)聯(lián)于第二地址信息的反匯編指令;

7、其中,所述反匯編指令用于程序跳轉(zhuǎn),所述反匯編指令的類(lèi)型通過(guò)中央處理器cpu的類(lèi)型確定。

8、第二方面,提供了一種開(kāi)源幾何引擎的內(nèi)存管理信息處理裝置,包括:

9、信息添加模塊,用于在第一開(kāi)源幾何引擎geos的源代碼中添加自定義內(nèi)存管理信息,得到第二開(kāi)源幾何引擎geos,所述自定義內(nèi)存管理信息包括內(nèi)存申請(qǐng)函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息和內(nèi)存釋放函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息;

10、編譯模塊,用于將所述第二開(kāi)源幾何引擎geos編譯成動(dòng)態(tài)庫(kù)文件;

11、信息確定模塊,用于根據(jù)所述動(dòng)態(tài)庫(kù)文件的反匯編結(jié)果確定第一地址信息和第二地址信息,所述第一地址信息包括內(nèi)存申請(qǐng)函數(shù)的原有跳轉(zhuǎn)地址信息和內(nèi)存釋放函數(shù)的原有跳轉(zhuǎn)地址信息,所述第二地址信息包括內(nèi)存申請(qǐng)函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息和內(nèi)存釋放函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息;

12、修改模塊,用于對(duì)于關(guān)聯(lián)于第一地址信息的反匯編指令,利用所述第二地址信息對(duì)所述第一地址信息進(jìn)行修改,得到修改后的關(guān)聯(lián)于第二地址信息的反匯編指令;

13、其中,所述反匯編指令用于程序跳轉(zhuǎn),所述反匯編指令的類(lèi)型通過(guò)中央處理器cpu的類(lèi)型確定。

14、第三方面,提供了一種電子設(shè)備,所述電子設(shè)備包括:

15、一個(gè)或多個(gè)處理器;

16、存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,

17、當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行,使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)如上述第一方面所述的開(kāi)源幾何引擎的內(nèi)存管理信息處理方法。

18、第四方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述第一方面所述的開(kāi)源幾何引擎的內(nèi)存管理信息處理方法。

19、第五方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述第一方面所述的開(kāi)源幾何引擎的內(nèi)存管理信息處理方法。

20、本公開(kāi)實(shí)施例公開(kāi)了一種開(kāi)源幾何引擎的內(nèi)存管理信息處理方法、裝置、及設(shè)備,包括:在第一開(kāi)源幾何引擎geos的源代碼中添加自定義內(nèi)存管理信息,得到第二開(kāi)源幾何引擎geos,自定義內(nèi)存管理信息包括內(nèi)存申請(qǐng)函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息和內(nèi)存釋放函數(shù)預(yù)設(shè)跳轉(zhuǎn)地址信息;將第二開(kāi)源幾何引擎geos編譯成動(dòng)態(tài)庫(kù)文件;根據(jù)動(dòng)態(tài)庫(kù)文件的反匯編結(jié)果確定第一地址信息和第二地址信息,第一地址信息包括內(nèi)存申請(qǐng)函數(shù)的原有跳轉(zhuǎn)地址信息和內(nèi)存釋放函數(shù)的原有跳轉(zhuǎn)地址信息,第二地址信息包括內(nèi)存申請(qǐng)函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息和內(nèi)存釋放函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息;對(duì)于關(guān)聯(lián)于第一地址信息的反匯編指令,利用第二地址信息對(duì)第一地址信息進(jìn)行修改,得到修改后的關(guān)聯(lián)于第二地址信息的反匯編指令。本技術(shù)方案將geos庫(kù)文件中的內(nèi)存申請(qǐng)和釋放的函數(shù)的原有跳轉(zhuǎn)地址修改改為預(yù)設(shè)跳轉(zhuǎn)地址信息,在不需要對(duì)geos庫(kù)文件進(jìn)行較大的修改的基礎(chǔ)上實(shí)現(xiàn)庫(kù)中內(nèi)存分配與釋放函數(shù)的替換。

21、應(yīng)當(dāng)理解,本部分所描述的內(nèi)容并非旨在標(biāo)識(shí)本公開(kāi)實(shí)施例的關(guān)鍵或重要特征,也不用于限制本公開(kāi)實(shí)施例的范圍。本公開(kāi)實(shí)施例的其它特征將通過(guò)以下的說(shuō)明書(shū)而變得容易理解。



技術(shù)特征:

1.一種開(kāi)源幾何引擎的內(nèi)存管理信息處理方法,其特征在于,包括:

2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)cpu的類(lèi)型確定反匯編指令的類(lèi)型,包括:

3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述對(duì)于關(guān)聯(lián)于第一地址信息的反匯編指令,利用所述第二地址信息對(duì)所述第一地址信息進(jìn)行修改之前,所述方法還包括:

4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在對(duì)于關(guān)聯(lián)于第一地址信息的反匯編指令,利用所述第二地址信息對(duì)所述第一地址信息進(jìn)行修改,得到修改后的關(guān)聯(lián)于第二地址信息的反匯編指令之后,所述方法還包括:

5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述自定義內(nèi)存管理信息還包括回調(diào)函數(shù)和全局變量,所述回調(diào)函數(shù)包括第一回調(diào)函數(shù)和第二回調(diào)函數(shù);所述全局變量包括第一全局變量和第二全局變量;

6.根據(jù)權(quán)利要求4所述的方法,其特征在于,在將所述輸入地址信息作為內(nèi)存申請(qǐng)函數(shù)的跳轉(zhuǎn)地址和內(nèi)存釋放函數(shù)的跳轉(zhuǎn)地址之前,還包括:

7.一種開(kāi)源幾何引擎的內(nèi)存管理信息處理裝置,其特征在于,包括:

8.一種電子設(shè)備,其特征在于,包括:

9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-6任一所述的開(kāi)源幾何引擎的內(nèi)存管理信息處理方法。

10.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-6任一所述的開(kāi)源幾何引擎的內(nèi)存管理信息處理方法。


技術(shù)總結(jié)
本公開(kāi)實(shí)施例公開(kāi)了一種開(kāi)源幾何引擎的內(nèi)存管理信息處理方法、裝置、及設(shè)備,包括:在第一開(kāi)源幾何引擎GEOS的源代碼中添加自定義內(nèi)存管理信息,得到第二開(kāi)源幾何引擎GEOS;自定義內(nèi)存管理信息包括內(nèi)存申請(qǐng)函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息和內(nèi)存釋放函數(shù)的預(yù)設(shè)跳轉(zhuǎn)地址信息;將第二開(kāi)源幾何引擎GEOS編譯成動(dòng)態(tài)庫(kù)文件;根據(jù)動(dòng)態(tài)庫(kù)文件的反匯編結(jié)果確定第一地址信息和第二地址信息;對(duì)于關(guān)聯(lián)于第一地址信息的反匯編指令,利用第二地址信息對(duì)第一地址信息進(jìn)行修改,得到修改后的關(guān)聯(lián)于第二地址信息的反匯編指令,在不需要對(duì)GEOS庫(kù)文件進(jìn)行較大的修改的基礎(chǔ)上實(shí)現(xiàn)庫(kù)中內(nèi)存分配與釋放函數(shù)的替換。

技術(shù)研發(fā)人員:楊正龍,劉銳,陳琦,呂偉
受保護(hù)的技術(shù)使用者:武漢達(dá)夢(mèng)數(shù)據(jù)庫(kù)股份有限公司
技術(shù)研發(fā)日:
技術(shù)公布日:2025/6/26
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1