釋放單元,用于當(dāng)需要釋放所述應(yīng)用模塊用戶時,若確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,則釋放該記錄信息中記錄的被該應(yīng)用模塊用戶占用的內(nèi)存塊,并且刪除該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息。
[0020]本發(fā)明實(shí)施例提供的上述裝置中,接收到應(yīng)用模塊用戶申請內(nèi)存的請求消息時,根據(jù)該請求消息為應(yīng)用模塊用戶分配一個內(nèi)存塊,建立該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,當(dāng)確定需要釋放該內(nèi)存塊時,釋放該內(nèi)存塊,并且刪除該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,則當(dāng)需要釋放應(yīng)用模塊用戶時,若確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,則確定該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊未能完全釋放,發(fā)生內(nèi)存泄露,則釋放該記錄信息中記錄的被該應(yīng)用模塊用戶占用的內(nèi)存塊,恢復(fù)泄露的內(nèi)存,與現(xiàn)有技術(shù)中由于程序錯誤或其它原因?qū)е聭?yīng)用模塊用戶的某些業(yè)務(wù)申請的內(nèi)存塊未能釋放而引起內(nèi)存泄露,進(jìn)而導(dǎo)致單板故障、業(yè)務(wù)異常相比,當(dāng)需要釋放應(yīng)用模塊用戶時,若確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,則釋放該記錄信息中記錄的被該應(yīng)用模塊用戶占用的內(nèi)存塊,也即檢測到內(nèi)存泄露時,及時釋放泄露的內(nèi)存,避免由于內(nèi)存泄露導(dǎo)致單板故障、業(yè)務(wù)異常,而且實(shí)現(xiàn)簡單高效。
[0021]在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,所述內(nèi)存分配單元根據(jù)該請求消息為所述應(yīng)用模塊用戶分配一個內(nèi)存塊,并且建立該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,具體用于:針對為該應(yīng)用模塊用戶分配的每一內(nèi)存塊:所述內(nèi)存分配單元在預(yù)設(shè)的內(nèi)存管理鏈表中存儲所述應(yīng)用模塊用戶標(biāo)識與該內(nèi)存塊屬性信息之間的對應(yīng)關(guān)系,其中,所述內(nèi)存管理鏈表中的表項(xiàng)與內(nèi)存塊--對應(yīng),用于記錄每一內(nèi)存塊被應(yīng)用模塊用戶占用的記錄信息,所述內(nèi)存塊屬性信息包括內(nèi)存塊的標(biāo)識和地址信息。
[0022]在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,所述內(nèi)存管理鏈表中包括忙鏈表和閑鏈表,當(dāng)所述內(nèi)存分配單元為應(yīng)用模塊用戶分配一內(nèi)存塊時,從所述閑鏈表中獲取一表項(xiàng)存儲該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,并添加到所述忙鏈表中。
[0023]在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,所述內(nèi)存分配單元從所述閑鏈表中獲取一表項(xiàng)存儲該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息之后,還用于:在預(yù)先存儲的內(nèi)存關(guān)系表中存儲所述表項(xiàng)標(biāo)識與內(nèi)存塊標(biāo)識之間的對應(yīng)關(guān)系;所述內(nèi)存釋放單元具體用于:當(dāng)確定需要釋放為所述應(yīng)用模塊用戶分配的任一內(nèi)存塊時,釋放該內(nèi)存塊,并根據(jù)所述內(nèi)存關(guān)系表以及該內(nèi)存塊標(biāo)識,確定該內(nèi)存塊標(biāo)識對應(yīng)的表項(xiàng),刪除該表項(xiàng)中存儲的該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息;然后,將該表項(xiàng)添加到閑鏈表中。
[0024]在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,所述處理單元通過如下方式確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息:當(dāng)所述處理單元確定所述內(nèi)存管理鏈表的忙鏈表中存在所述應(yīng)用模塊用戶標(biāo)識與內(nèi)存塊屬性信息之間的對應(yīng)關(guān)系時,所述處理單元確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息。
[0025]在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,所述內(nèi)存分配單元還用于:在所述忙鏈表的每一表項(xiàng)中記錄應(yīng)用模塊用戶申請的內(nèi)存塊所處理的業(yè)務(wù)信息;所述處理單元確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息之后,還用于:將記錄有該記錄信息的表項(xiàng)中記錄的應(yīng)用模塊用戶申請的內(nèi)存塊所處理的業(yè)務(wù)信息進(jìn)行轉(zhuǎn)存。
[0026]本發(fā)明實(shí)施例提供的上述裝置中,在忙鏈表的每一表項(xiàng)中記錄應(yīng)用模塊用戶申請的內(nèi)存塊所處理的業(yè)務(wù)信息,當(dāng)需要釋放應(yīng)用模塊用戶時,若忙鏈表中任一表項(xiàng)中仍然存儲有該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,則該應(yīng)用模塊用戶占用的內(nèi)存塊存在內(nèi)存泄露,則將該記錄有記錄信息的表項(xiàng)中記錄的應(yīng)用模塊用戶申請的內(nèi)存塊所處理的業(yè)務(wù)信息進(jìn)行轉(zhuǎn)存,便于后續(xù)內(nèi)存泄露定位。
[0027]在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,預(yù)先設(shè)置多個內(nèi)存管理鏈表,并且,所述處理單元還用于:當(dāng)接入多個應(yīng)用模塊用戶時,對所述多個應(yīng)用模塊用戶進(jìn)行分組,得到多個應(yīng)用模塊用戶組,建立所述應(yīng)用模塊用戶組與內(nèi)存管理鏈表之間的映射關(guān)系;所述處理單元通過如下方式確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息:所述處理單元確定該應(yīng)用模塊用戶所在的應(yīng)用模塊用戶組,并根據(jù)所述映射關(guān)系,確定所述應(yīng)用模塊用戶對應(yīng)的內(nèi)存管理鏈表,當(dāng)確定該內(nèi)存管理鏈表的忙鏈表中存在所述應(yīng)用模塊用戶標(biāo)識與內(nèi)存塊屬性信息之間的對應(yīng)關(guān)系時,確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息。
[0028]本發(fā)明實(shí)施例提供的上述裝置中,當(dāng)預(yù)先設(shè)置多個內(nèi)存管理鏈表,并且接入的應(yīng)用模塊用戶為多個時,對多個應(yīng)用模塊用戶進(jìn)行分組,得到多個應(yīng)用模塊用戶組,建立應(yīng)用模塊用戶組與內(nèi)存管理鏈表之間的映射關(guān)系,則可以通過如下方式確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息:確定該應(yīng)用模塊用戶所在的應(yīng)用模塊用戶組,并根據(jù)所述映射關(guān)系,確定應(yīng)用模塊用戶對應(yīng)的內(nèi)存管理鏈表,當(dāng)確定該內(nèi)存管理鏈表的忙鏈表中存在應(yīng)用模塊用戶標(biāo)識與內(nèi)存塊屬性信息之間的對應(yīng)關(guān)系時,確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,確定應(yīng)用模塊用戶所在的應(yīng)用模塊用戶組,并根據(jù)映射關(guān)系確定該應(yīng)用模塊用戶組對應(yīng)的內(nèi)存管理鏈表,在該內(nèi)存管理鏈表中的忙鏈表中查找是否存在應(yīng)用模塊用戶標(biāo)識與內(nèi)存塊屬性信息之間的對應(yīng)關(guān)系,從而避免在預(yù)先設(shè)置的多個內(nèi)存管理鏈表中查找是否存在應(yīng)用模塊用戶標(biāo)識與內(nèi)存塊屬性信息之間的對應(yīng)關(guān)系,縮小內(nèi)存泄露的檢測范圍,提高內(nèi)存泄露的檢測效率。
【附圖說明】
[0029]圖1為本發(fā)明實(shí)施例提供的一種內(nèi)存管理方法的示意流程圖;
[0030]圖2A-圖2F為本發(fā)明實(shí)施例提供的內(nèi)存管理鏈表的工作原理示意圖;
[0031]圖3為本發(fā)明實(shí)施例提供的一種內(nèi)存管理裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0032]下面結(jié)合附圖,對本發(fā)明實(shí)施例提供的一種內(nèi)存管理方法及裝置的【具體實(shí)施方式】進(jìn)行詳細(xì)地說明。
[0033]本發(fā)明實(shí)施例提供的一種內(nèi)存管理方法,如圖1所示,該方法包括:
[0034]步驟102,當(dāng)接收到應(yīng)用模塊用戶申請內(nèi)存的請求消息時,根據(jù)該請求消息為該應(yīng)用模塊用戶分配一個內(nèi)存塊,并且建立該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息;
[0035]步驟104,當(dāng)確定需要釋放為該應(yīng)用模塊用戶分配的任一內(nèi)存塊時,釋放該內(nèi)存塊,并且刪除該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息;
[0036]步驟106,當(dāng)需要釋放該應(yīng)用模塊用戶時,若確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,則釋放該記錄信息中記錄的被該應(yīng)用模塊用戶占用的內(nèi)存塊,并且刪除該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息。
[0037]當(dāng)然,當(dāng)需要釋放該應(yīng)用模塊用戶時,若確定不存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,則表明該應(yīng)用模塊用戶占用的內(nèi)存塊已全部釋放,未發(fā)生內(nèi)存泄露,其中,應(yīng)用模塊用戶包括任一接入設(shè)備中應(yīng)用模塊的用戶。
[0038]本發(fā)明實(shí)施例提供的方法中,接收到應(yīng)用模塊用戶申請內(nèi)存的請求消息時,根據(jù)該請求消息為應(yīng)用模塊用戶分配一個內(nèi)存塊,建立該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,當(dāng)確定需要釋放該內(nèi)存塊時,釋放該內(nèi)存塊,并且刪除該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,則當(dāng)需要釋放應(yīng)用模塊用戶時,若確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,則確定該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊未能完全釋放,發(fā)生內(nèi)存泄露,則釋放該記錄信息中記錄的被該應(yīng)用模塊用戶占用的內(nèi)存塊,恢復(fù)泄露的內(nèi)存,與現(xiàn)有技術(shù)中由于程序錯誤或其它原因?qū)е聭?yīng)用模塊用戶的某些業(yè)務(wù)申請的內(nèi)存塊未能釋放而引起內(nèi)存泄露,進(jìn)而導(dǎo)致單板故障、業(yè)務(wù)異常相比,當(dāng)需要釋放應(yīng)用模塊用戶時,若確定還存在該應(yīng)用模塊用戶對應(yīng)的內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息,則釋放該記錄信息中記錄的被該應(yīng)用模塊用戶占用的內(nèi)存塊,也即檢測到內(nèi)存泄露時,及時釋放泄露的內(nèi)存,避免由于內(nèi)存泄露導(dǎo)致單板故障、業(yè)務(wù)異常,而且實(shí)現(xiàn)簡單高效。
[0039]具體實(shí)施時,根據(jù)接收到的應(yīng)用模塊用戶申請內(nèi)存的請求消息為應(yīng)用模塊用戶分配一個內(nèi)存塊,該內(nèi)存塊包括內(nèi)存空間中的動態(tài)內(nèi)存,該一個內(nèi)存塊可以是同一應(yīng)用模塊用戶的同一業(yè)務(wù)、流程或協(xié)議實(shí)體申請的,但對于每一內(nèi)存塊,均需要建立該內(nèi)存塊被該應(yīng)用模塊用戶占用的記錄信息。需要說明的是,為應(yīng)用模塊用戶分配內(nèi)存塊之后,需要把分配的內(nèi)存塊的指針信息返回給應(yīng)用模塊用戶,以便應(yīng)用模塊用戶使用。
[0040]在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的方法中,根據(jù)該請求消息為應(yīng)用模塊用戶分配一個內(nèi)存塊,并且建立該內(nèi)存塊被該應(yīng)