国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種內存管理方法及裝置的制造方法

      文檔序號:9235348閱讀:398來源:國知局
      一種內存管理方法及裝置的制造方法
      【技術領域】
      [0001]本發(fā)明涉及通信技術領域,尤其涉及一種內存管理方法及裝置。
      【背景技術】
      [0002]通信系統(tǒng)中在進行業(yè)務傳輸或小區(qū)切換時,網(wǎng)絡設備中應用模塊用戶將會頻繁的進行接入與刪除,每個應用模塊用戶需要維護多個協(xié)議實體的信息,涉及多項業(yè)務流程的建立與刪除,在業(yè)務建立時,需要在網(wǎng)絡設備中為該業(yè)務申請內存塊,在該業(yè)務刪除時,需要在網(wǎng)絡設備中釋放為該業(yè)務申請的內存塊,當由于程序錯誤或其它原因導致某業(yè)務申請的內存塊未能釋放時,就出現(xiàn)了內存泄露,當內存泄露較多時,容易導致單板故障,業(yè)務異常等重大問題,并且這些問題難于定位,軟件規(guī)模越大,越難定位。
      [0003]現(xiàn)有技術中針對內存泄露,主要有以下幾種解決方案:
      [0004]方案一:針對特定操作系統(tǒng)提出的內存泄漏保護方法,例如:vxWorks,Linux ;選用Java開發(fā)環(huán)境,Java有垃圾回收機制,可以很大程度避免內存泄漏情況發(fā)生。該方案僅針對特定操作系統(tǒng),有局限性,Java可以從底層機制防止內存泄漏,但效率慢,網(wǎng)絡設備一般不使用Java。
      [0005]方案二:增加內存管理模塊,添加一些統(tǒng)計,事件,日志等信息,由這些信息定位內存泄漏問題。該方案中泄漏內存不能自恢復,需要通過記錄信息分析原因,然后打補丁解決冋題。
      [0006]方案三:內存管理模塊給每個在用內存塊增加時間標簽,如果某個內存塊使用時間超過某個設置的時長門限,則判斷該內存已泄漏,強制釋放。該方案中時長門限難以確定,有些場景內存塊可能占用較長時間或一直占用,例如:無線網(wǎng)絡設備里的小區(qū)內存資源,而且該方案釋放內存有滯后性,泄漏內存需要等待時長門限后才能釋放。
      [0007]綜上所述,現(xiàn)有技術提供的三種方案均不能用于解決網(wǎng)絡設備中的內存泄露問題,網(wǎng)絡設備中應用模塊用戶頻繁接入與刪除,每一應用模塊用戶均涉及多項業(yè)務的建立與刪除,在業(yè)務刪除過程中由于程序錯誤或其它原因導致應用模塊用戶的某些業(yè)務申請的內存塊未能釋放,從而出現(xiàn)內存泄露,進而導致單板故障、業(yè)務異常,影響網(wǎng)絡設備的正常使用。

      【發(fā)明內容】

      [0008]本發(fā)明實施例提供了一種內存管理方法及裝置,用以當存在內存泄露時,可以快速恢復泄露的內存,避免由于內存泄露導致單板故障、業(yè)務異常。
      [0009]本發(fā)明實施例提供的一種內存管理方法,該方法包括:當接收到應用模塊用戶申請內存的請求消息時,根據(jù)該請求消息為所述應用模塊用戶分配一個內存塊,并且建立該內存塊被該應用模塊用戶占用的記錄信息;當確定需要釋放為所述應用模塊用戶分配的任一內存塊時,釋放該內存塊,并且刪除該內存塊被該應用模塊用戶占用的記錄信息;當需要釋放所述應用模塊用戶時,若確定還存在該應用模塊用戶對應的內存塊被該應用模塊用戶占用的記錄信息,則釋放該記錄信息中記錄的被該應用模塊用戶占用的內存塊,并且刪除該內存塊被該應用模塊用戶占用的記錄信息。
      [0010]本發(fā)明實施例提供的上述方法中,接收到應用模塊用戶申請內存的請求消息時,根據(jù)該請求消息為應用模塊用戶分配一個內存塊,建立該內存塊被該應用模塊用戶占用的記錄信息,當確定需要釋放該內存塊時,釋放該內存塊,并且刪除該內存塊被該應用模塊用戶占用的記錄信息,則當需要釋放應用模塊用戶時,若確定還存在該應用模塊用戶對應的內存塊被該應用模塊用戶占用的記錄信息,則確定該應用模塊用戶對應的內存塊未能完全釋放,發(fā)生內存泄露,則釋放該記錄信息中記錄的被該應用模塊用戶占用的內存塊,恢復泄露的內存,與現(xiàn)有技術中由于程序錯誤或其它原因導致應用模塊用戶的某些業(yè)務申請的內存塊未能釋放而引起內存泄露,進而導致單板故障、業(yè)務異常相比,當需要釋放應用模塊用戶時,若確定還存在該應用模塊用戶對應的內存塊被該應用模塊用戶占用的記錄信息,則釋放該記錄信息中記錄的被該應用模塊用戶占用的內存塊,也即檢測到內存泄露時,及時釋放泄露的內存,避免由于內存泄露導致單板故障、業(yè)務異常,而且實現(xiàn)簡單高效。
      [0011]在一種可能的實施方式中,本發(fā)明實施例提供的上述方法中,所述根據(jù)該請求消息為所述應用模塊用戶分配一個內存塊,并且建立該內存塊被該應用模塊用戶占用的記錄信息,具體包括:針對為該應用模塊用戶分配的每一內存塊:在預設的內存管理鏈表中存儲所述應用模塊用戶標識與該內存塊屬性信息之間的對應關系,其中,所述內存管理鏈表中的表項與內存塊一一對應,用于記錄每一內存塊被應用模塊用戶占用的記錄信息,所述內存塊屬性信息包括內存塊的標識和地址信息。
      [0012]在一種可能的實施方式中,本發(fā)明實施例提供的上述方法中,所述內存管理鏈表中包括忙鏈表和閑鏈表,當為應用模塊用戶分配一內存塊時,從所述閑鏈表中獲取一表項存儲該內存塊被該應用模塊用戶占用的記錄信息,并添加到所述忙鏈表中。
      [0013]在一種可能的實施方式中,本發(fā)明實施例提供的上述方法中,在從所述閑鏈表中獲取一表項存儲該內存塊被該應用模塊用戶占用的記錄信息之后,該方法還包括:在預先存儲的內存關系表中存儲所述表項標識與內存塊標識之間的對應關系;當確定需要釋放為所述應用模塊用戶分配的任一內存塊時,釋放該內存塊,并且刪除該內存塊被該應用模塊用戶占用的記錄信息,具體包括:當確定需要釋放為所述應用模塊用戶分配的任一內存塊時,釋放該內存塊,并根據(jù)所述內存關系表以及該內存塊標識,確定該內存塊標識對應的表項,刪除該表項中存儲的該內存塊被該應用模塊用戶占用的記錄信息;然后,將該表項添加到閑鏈表中。
      [0014]在一種可能的實施方式中,本發(fā)明實施例提供的上述方法中,通過如下方式確定還存在該應用模塊用戶對應的內存塊被該應用模塊用戶占用的記錄信息:當所述內存管理鏈表的忙鏈表中存在所述應用模塊用戶標識與內存塊屬性信息之間的對應關系時,確定還存在該應用模塊用戶對應的內存塊被該應用模塊用戶占用的記錄信息。
      [0015]在一種可能的實施方式中,本發(fā)明實施例提供的上述方法中,所述忙鏈表的每一表項中還記錄有應用模塊用戶申請的內存塊所處理的業(yè)務信息;所述確定還存在該應用模塊用戶對應的內存塊被該應用模塊用戶占用的記錄信息之后,該方法還包括:將記錄有該記錄信息的表項中記錄的應用模塊用戶申請的內存塊所處理的業(yè)務信息進行轉存。
      [0016]本發(fā)明實施例提供的上述方法中,在忙鏈表的每一表項中記錄應用模塊用戶申請的內存塊所處理的業(yè)務信息,當需要釋放應用模塊用戶時,若忙鏈表中任一表項中仍然存儲有該應用模塊用戶對應的內存塊被該應用模塊用戶占用的記錄信息,則該應用模塊用戶占用的內存塊存在內存泄露,則將該記錄有記錄信息的表項中記錄的應用模塊用戶申請的內存塊所處理的業(yè)務信息進行轉存,便于后續(xù)內存泄露定位。
      [0017]在一種可能的實施方式中,本發(fā)明實施例提供的上述方法中,預先設置多個內存管理鏈表,并且,該方法還包括:當接入多個應用模塊用戶時,對所述多個應用模塊用戶進行分組,得到多個應用模塊用戶組,建立所述應用模塊用戶組與內存管理鏈表之間的映射關系;通過如下方式確定還存在該應用模塊用戶對應的內存塊被該應用模塊用戶占用的記錄信息:確定該應用模塊用戶所在的應用模塊用戶組,并根據(jù)所述映射關系,確定所述應用模塊用戶對應的內存管理鏈表,當確定該內存管理鏈表的忙鏈表中存在所述應用模塊用戶標識與內存塊屬性信息之間的對應關系時,確定還存在該應用模塊用戶對應的內存塊被該應用模塊用戶占用的記錄信息。
      [0018]本發(fā)明實施例提供的上述方法中,當預先設置多個內存管理鏈表,并且接入的應用模塊用戶為多個時,對多個應用模塊用戶進行分組,得到多個應用模塊用戶組,建立應用模塊用戶組與內存管理鏈表之間的映射關系,則可以通過如下方式確定還存在該應用模塊用戶對應的內存塊被該應用模塊用戶占用的記錄信息:確定該應用模塊用戶所在的應用模塊用戶組,并根據(jù)所述映射關系,確定應用模塊用戶對應的內存管理鏈表,當確定該內存管理鏈表的忙鏈表中存在應用模塊用戶標識與內存塊屬性信息之間的對應關系時,確定還存在該應用模塊用戶對應的內存塊被該應用模塊用戶占用的記錄信息,確定應用模塊用戶所在的應用模塊用戶組,并根據(jù)映射關系確定該應用模塊用戶組對應的內存管理鏈表,在該內存管理鏈表中的忙鏈表中查找是否存在應用模塊用戶標識與內存塊屬性信息之間的對應關系,從而避免在預先設置的多個內存管理鏈表中查找是否存在應用模塊用戶標識與內存塊屬性信息之間的對應關系,縮小內存泄露的檢測范圍,提高內存泄露的檢測效率。
      [0019]本發(fā)明實施例提供的一種內存管理裝置,包括:內存分配單元,用于當接收到應用模塊用戶申請內存的請求消息時,根據(jù)該請求消息為所述應用模塊用戶分配一個內存塊,并且建立該內存塊被該應用模塊用戶占用的記錄信息;內存釋放單元,連接至所述內存分配單元,用于當確定需要釋放為所述應用模塊用戶分配的任一內存塊時,釋放該內存塊,并且刪除該內存塊被該應用模塊用戶占用的記錄信息;處理單元,連接至所述內存分配單元和所述內存
      當前第1頁1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1