国产精品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>

      一種定位報文內(nèi)存泄露的方法

      文檔序號:7781163閱讀:156來源:國知局
      一種定位報文內(nèi)存泄露的方法
      【專利摘要】本發(fā)明提供一種定位報文內(nèi)存泄露的方法,該方法包括:在報文頭中設(shè)置用于表示報文內(nèi)存是否被占用的第一標(biāo)志位和用于表示報文被處理階段的第二標(biāo)志位,并將所有報文掛在一個鏈表上;當(dāng)出現(xiàn)報文內(nèi)存泄露時,遍歷鏈表,獲取所有報文的第一標(biāo)志位和第二標(biāo)志位;根據(jù)第一標(biāo)志位的值找出內(nèi)存被占用的報文;統(tǒng)計內(nèi)存被占用的所有報文的第二標(biāo)志位的值,找出出現(xiàn)次數(shù)最多的第二標(biāo)志位的值;根據(jù)出現(xiàn)次數(shù)最多的第二標(biāo)志位的值找到對應(yīng)的報文處理階段,即為報文內(nèi)存泄露的位置。本發(fā)明能夠在短時間內(nèi)縮小問題范圍,從而達(dá)到快速定位報文內(nèi)存泄露的目的。
      【專利說明】一種定位報文內(nèi)存泄露的方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,具體涉及一種定位報文內(nèi)存泄露的方法。
      【背景技術(shù)】
      [0002]對網(wǎng)絡(luò)報文的處理是網(wǎng)絡(luò)設(shè)備的基礎(chǔ)。當(dāng)網(wǎng)絡(luò)設(shè)備的網(wǎng)卡等硬件接收到一個報文時會將報文保存到一塊預(yù)先分配的內(nèi)存中,網(wǎng)絡(luò)設(shè)備中的Cpu會到內(nèi)存中獲取報文的內(nèi)容,并對報文內(nèi)容進(jìn)行分析、處理,根據(jù)處理結(jié)果對報文進(jìn)行發(fā)送或者丟棄。不論最終是將報文發(fā)送出去還是丟棄掉,報文對應(yīng)的內(nèi)存都將被釋放,否則就會造成內(nèi)存泄露。當(dāng)發(fā)生內(nèi)存泄露后,由于不能再申請到內(nèi)存,因此網(wǎng)卡的硬件就無法將網(wǎng)絡(luò)報文放到內(nèi)存中,CPU也就無法接收報文,整個網(wǎng)絡(luò)設(shè)備也就無法工作。
      [0003]由于目前網(wǎng)絡(luò)設(shè)備很復(fù)雜,提供的功能極多,因此要想定位一個報文內(nèi)存泄露的問題是非常難的,現(xiàn)有的技術(shù)方法通常是聚集相關(guān)開發(fā)、測試專家,對問題進(jìn)行多次復(fù)現(xiàn),并逐步找到問題規(guī)律,然后根據(jù)代碼一點一點查找,最終定位報文內(nèi)存泄露的地方。
      [0004]現(xiàn)有的技術(shù)沒有提供一個良好的,通用的方法來解決此類問題,需要花費(fèi)大量的人力去攻關(guān),甚至不能在較短時間內(nèi)縮小問題范圍。

      【發(fā)明內(nèi)容】

      [0005](一)解決的技術(shù)問題
      [0006]針對現(xiàn)有技術(shù)的不足,本發(fā)明提供一種定位報文內(nèi)存泄露的方法,能夠在短時間內(nèi)縮小問題范圍,從而快速定位內(nèi)存泄露問題。
      [0007](二)技術(shù)方案
      [0008]為了達(dá)到以上目的,本發(fā)明通過以下技術(shù)方案予以實現(xiàn):
      [0009]—種定位報文內(nèi)存泄露的方法,該方法包括:
      [0010]在報文頭中設(shè)置用于表示報文內(nèi)存是否被占用的第一標(biāo)志位和用于表示報文被處理階段的第二標(biāo)志位,并將所有報文掛在一個鏈表上;
      [0011]當(dāng)出現(xiàn)報文內(nèi)存泄露時,遍歷鏈表,獲取所有報文的第一標(biāo)志位和第二標(biāo)志位;
      [0012]根據(jù)第一標(biāo)志位的值找出內(nèi)存被占用的報文;
      [0013]統(tǒng)計內(nèi)存被占用的所有報文的第二標(biāo)志位的值,找出出現(xiàn)次數(shù)最多的第二標(biāo)志位的值;
      [0014]根據(jù)出現(xiàn)次數(shù)最多的第二標(biāo)志位的值找到對應(yīng)的報文處理階段,即為報文內(nèi)存泄
      露的位置。
      [0015]較佳地,該方法還包括:
      [0016]將第一標(biāo)志位和第二標(biāo)志位均初始化為所設(shè)置的初始值;
      [0017]隨著系統(tǒng)的運(yùn)行,第一標(biāo)志位隨著報文內(nèi)存的占用情況而變化,第二標(biāo)志位隨著報文被處理的階段而動態(tài)的變化。
      [0018]其中,所述遍歷鏈表,獲取所有報文的第一標(biāo)志位和第二標(biāo)志位,包括:通過鏈表頭訪問所有報文的報文頭,從而獲得報文頭中的第一標(biāo)志位和第二標(biāo)志位。
      [0019]—種定位報文內(nèi)存泄露的系統(tǒng),該系統(tǒng)包括:預(yù)處理單兀,鏈表查詢單兀,第一標(biāo)志位篩選單元,第二標(biāo)志位篩選單元和查詢單元;
      [0020]預(yù)處理單元,用于在報文頭中設(shè)置用于表示報文內(nèi)存是夠占用的第一標(biāo)志位和用于表不報文被處理階段的第二標(biāo)志位,并將所有報文掛在一個鏈表上;
      [0021]鏈表查詢單元,當(dāng)出現(xiàn)報文內(nèi)存泄露時,用于遍歷鏈表,獲取所有報文的第一標(biāo)志位和第二標(biāo)志位;
      [0022]第一標(biāo)志位篩選單元,用于根據(jù)報文第一標(biāo)志位的值找出內(nèi)存被占用的報文;
      [0023]第二標(biāo)志位篩選單元,用于統(tǒng)計內(nèi)存被占用的所有報文的第二標(biāo)志位的值,找出出現(xiàn)次數(shù)最多的第二標(biāo)志位的值;
      [0024]查詢單元,用于根據(jù)出現(xiàn)次數(shù)最多的第二標(biāo)志位的值找到對應(yīng)的報文處理階段,即為報文內(nèi)存泄露的地方。
      [0025]較佳地,該系統(tǒng)還包括:
      [0026]初始化單元,用于將第一標(biāo)志位和第二標(biāo)志位均初始化為所設(shè)置的初始值;
      [0027]標(biāo)志位處理單元,使得第一標(biāo)志位隨著報文內(nèi)存的占用情況而變化,第二標(biāo)志位隨著報文被處理的階段而動態(tài)的變化。
      [0028]其中,所述鏈表查詢單元用于通過鏈表頭訪問所有報文的報文頭,以獲取報文頭中的第一標(biāo)志位和第二標(biāo)志位。
      [0029](三)有益效果
      [0030]本發(fā)明至少有如下有益效果:
      [0031]本發(fā)明通過對報文進(jìn)行預(yù)處理,即在報文頭中添加兩個標(biāo)志位,能夠?qū)崟r跟蹤報文的處理情況。而且根據(jù)表示報文處理階段的標(biāo)志位,能夠快速定位報文內(nèi)存泄露的位置。
      【專利附圖】

      【附圖說明】
      [0032]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些圖獲得其他的附圖。
      [0033]圖1是本發(fā)明一個實施例提供的一種定位報文內(nèi)存泄露的方法的流程圖;
      [0034]圖2是本發(fā)明一個較佳實施例提供的一種定位報文內(nèi)存泄露的方法的流程圖;
      [0035]圖3是本發(fā)明一個實施例提供的一種定位報文內(nèi)存泄露系統(tǒng)的示意圖。
      【具體實施方式】
      [0036]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
      [0037]參見圖1,本發(fā)明實施例提供了一種定位報文內(nèi)存泄露的方法,包括如下步驟:
      [0038]步驟101:在報文頭中設(shè)置用于表示報文內(nèi)存是否被占用的第一標(biāo)志位和用于表不報文被處理階段的第二標(biāo)志位,并將所有報文掛在一個鏈表上。
      [0039]步驟102:當(dāng)出現(xiàn)報文內(nèi)存泄露時,遍歷鏈表,獲取所有報文的第一標(biāo)志位和第二標(biāo)志位。
      [0040]本步驟中,通過鏈表頭訪問所有報文的報文頭,從而獲得報文頭中的第一標(biāo)志位和第二標(biāo)志位。
      [0041]步驟103:根據(jù)第一標(biāo)志位的值找出內(nèi)存被占用的報文。
      [0042]步驟104:統(tǒng)計內(nèi)存被占用的所有報文的第二標(biāo)志位的,找出出現(xiàn)次數(shù)最多的第二標(biāo)志位的值。
      [0043]步驟105:根據(jù)出現(xiàn)次數(shù)最多的第二標(biāo)志位的值找到對應(yīng)的報文處理階段,即為報文內(nèi)存泄露的位置。
      [0044]本發(fā)明實施例通過對報文進(jìn)行預(yù)處理,即在報文頭中添加兩個標(biāo)志位,能夠?qū)崟r跟蹤報文的處理情況。而且根據(jù)表示報文處理階段的標(biāo)志位,能夠短時間內(nèi)縮小問題范圍,快速定位報文內(nèi)存泄露的位置。
      [0045]下面通過一個具體的例子,來更為詳細(xì)的說明本發(fā)明一個較佳實施例的實現(xiàn)過程。參見圖2,該過程包括如下步驟:
      [0046]步驟201:在報文頭中設(shè)置用于表示報文內(nèi)存是夠占用的第一標(biāo)志位和用于表示報文被處理階段的第二標(biāo)志位,并將所有報文掛在一個鏈表上。
      [0047]步驟202:將第一標(biāo)志位和第二標(biāo)志位均初始化為所設(shè)置的初始值。
      [0048]本步驟中,將第一標(biāo)志位和第二標(biāo)志位初始化,如將其初始值均設(shè)為O。
      [0049]步驟203:隨著系統(tǒng)的運(yùn)行,第一標(biāo)志位隨著報文內(nèi)存的占用情況而變化,第二標(biāo)志位隨著報文的處理階段而變化。
      [0050]本步驟中,隨著系統(tǒng)的運(yùn)行,上述第一標(biāo)志位和第二標(biāo)志位的初始值就會隨著變化。例如,由于初始化時,報文內(nèi)存未被占用,則第一標(biāo)志位為初始值O,而隨著系統(tǒng)的運(yùn)行,當(dāng)報文內(nèi)存被申請出去時,對應(yīng)地第一標(biāo)志位的值應(yīng)變?yōu)镮 ;而第二標(biāo)志位表示報文的處理階段,若假設(shè)報文流程會經(jīng)歷3個函數(shù):函數(shù)A、函數(shù)B和函數(shù)C,那么可以這樣處理,當(dāng)報文進(jìn)入函數(shù)A時,設(shè)置報文的第二標(biāo)志位為1,當(dāng)報文進(jìn)入函數(shù)B時,設(shè)置報文的第二標(biāo)志位為2,當(dāng)報文進(jìn)入C時,設(shè)置報文的第三標(biāo)志位為3。
      [0051]步驟204:當(dāng)出現(xiàn)報文內(nèi)存泄露時,遍歷鏈表,獲取所有報文的第一標(biāo)志位和第二標(biāo)志位。
      [0052]本步驟中,通過鏈表頭訪問所有報文的報文頭,從而獲得報文頭中的第一標(biāo)志位和第二標(biāo)志位。
      [0053]步驟205:根據(jù)第一標(biāo)志位的值找出內(nèi)存被占用的報文。
      [0054]步驟206:統(tǒng)計內(nèi)存被占用的所有報文的第二標(biāo)志位的,找出出現(xiàn)次數(shù)最多的第二標(biāo)志位的值。
      [0055]步驟207:根據(jù)出現(xiàn)次數(shù)最多的第二標(biāo)志位的值找到對應(yīng)的報文處理階段,即為報文內(nèi)存泄露的位置。
      [0056]本步驟中,例如,若10個正在使用的報文中,magic字段為2的最多,一共有8個。那么說明報文基本上都通過了函數(shù)A,但是都在函數(shù)B中出現(xiàn)了問題,因而不會進(jìn)入函數(shù)C,由此可以說明在函數(shù)B中發(fā)生了內(nèi)存泄露。[0057]參見圖3,本發(fā)明實施例提供了一種定位報文內(nèi)存泄露的系統(tǒng),該系統(tǒng)包括:預(yù)處理單元301,初始化單元302,標(biāo)志位處理單元303,鏈表查詢單元304,第一標(biāo)志位篩選單元305,第二標(biāo)志位篩選單元306和查詢單元307 ;
      [0058]預(yù)處理單元301,用于在報文頭中設(shè)置用于表示報文內(nèi)存是否被占用的第一標(biāo)志位和用于表不報文被處理階段的第二標(biāo)志位,并將所有報文掛在一個鏈表上;
      [0059]初始化單元302,用于將第一標(biāo)志位和第二標(biāo)志位均初始化為所設(shè)置的初始值;
      [0060]標(biāo)志位處理單元303,使得第一標(biāo)志位隨著報文內(nèi)存的占用情況而變化,第二標(biāo)志位隨著報文被處理的階段而動態(tài)的變化;
      [0061]鏈表查詢單元304,當(dāng)出現(xiàn)報文內(nèi)存泄露時,用于遍歷鏈表,獲取所有報文的第一標(biāo)志位和第二標(biāo)志位;
      [0062]第一標(biāo)志位篩選單兀305,用于根據(jù)報文第一標(biāo)志位的值找出內(nèi)存被占用的報文;
      [0063]第二標(biāo)志位篩選單元306,用于統(tǒng)計內(nèi)存被占用的所有報文的第二標(biāo)志位的值,找出出現(xiàn)次數(shù)最多的第二標(biāo)志位的值;
      [0064]查詢單元307,用于根據(jù)出現(xiàn)次數(shù)最多的第二標(biāo)志位的值找到對應(yīng)的報文處理階段,即為報文內(nèi)存泄露的地方。
      [0065]以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解;其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
      【權(quán)利要求】
      1.一種定位報文內(nèi)存泄露的方法,其特征在于,該方法包括: 在報文頭中設(shè)置用于表示報文內(nèi)存是否被占用的第一標(biāo)志位和用于表示報文被處理階段的第二標(biāo)志位,并將所有報文掛在一個鏈表上; 當(dāng)出現(xiàn)報文內(nèi)存泄露時,遍歷鏈表,獲取所有報文的第一標(biāo)志位和第二標(biāo)志位; 根據(jù)第一標(biāo)志位的值找出內(nèi)存被占用的報文; 統(tǒng)計內(nèi)存被占用的所有報文的第二標(biāo)志位的值,找出出現(xiàn)次數(shù)最多的第二標(biāo)志位的值; 根據(jù)出現(xiàn)次數(shù)最多的第二標(biāo)志位的值找到對應(yīng)的報文處理階段,即為報文內(nèi)存泄露的位置。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法還包括: 將第一標(biāo)志位和第二標(biāo)志位均初始化為所設(shè)置的初始值; 隨著系統(tǒng)的運(yùn)行,第一標(biāo)志位隨著報文內(nèi)存的占用情況而變化,第二標(biāo)志位隨著報文被處理的階段而動態(tài)的變化。
      3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述遍歷鏈表,獲取所有報文的第一標(biāo)志位和第二標(biāo)志位,包括:通過鏈表頭訪問所有報文的報文頭,從而獲得報文頭中的第一標(biāo)志位和第二標(biāo)志位。
      4.一種定位報文內(nèi)存泄露的系統(tǒng),其特征在于,該系統(tǒng)包括:預(yù)處理單元,鏈表查詢單元,第一標(biāo)志位篩選單元,第二標(biāo)志位篩選單元和查詢單元; 預(yù)處理單元,用于在報文頭中設(shè)置用于表示報文內(nèi)存是夠占用的第一標(biāo)志位和用于表不報文被處理階段的第二標(biāo)志位,并將所有報文掛在一個鏈表上; 鏈表查詢單元,當(dāng)出現(xiàn)報文內(nèi)存泄露時,用于遍歷鏈表,獲取所有報文的第一標(biāo)志位和第二標(biāo)志位; 第一標(biāo)志位篩選單兀,用于根據(jù)報文第一標(biāo)志位的值找出內(nèi)存被占用的報文; 第二標(biāo)志位篩選單元,用于統(tǒng)計內(nèi)存被占用的所有報文的第二標(biāo)志位的值,找出出現(xiàn)次數(shù)最多的第二標(biāo)志位的值; 查詢單元,用于根據(jù)出現(xiàn)次數(shù)最多的第二標(biāo)志位的值找到對應(yīng)的報文處理階段,即為報文內(nèi)存泄露的地方。
      5.根據(jù)權(quán)利要求4所述的系統(tǒng),該系統(tǒng)還包括: 初始化單元,用于將第一標(biāo)志位和第二標(biāo)志位均初始化為所設(shè)置的初始值; 標(biāo)志位處理單元,使得第一標(biāo)志位隨著報文內(nèi)存的占用情況而變化,第二標(biāo)志位隨著報文被處理的階段而動態(tài)的變化。
      6.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,所述鏈表查詢單元用于通過鏈表頭訪問所有報文的報文頭,以獲取報文頭中的第一標(biāo)志位和第二標(biāo)志位。
      【文檔編號】H04L12/70GK103716234SQ201310703289
      【公開日】2014年4月9日 申請日期:2013年12月19日 優(yōu)先權(quán)日:2013年12月19日
      【發(fā)明者】李鵬 申請人:漢柏科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1