嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領(lǐng)域,尤其涉及一種嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法及裝置。
【背景技術(shù)】
[0002]目前,由于嵌入式系統(tǒng)具有可靠性和實(shí)時(shí)性等優(yōu)點(diǎn),嵌入式系統(tǒng)已廣泛應(yīng)用于各個(gè)領(lǐng)域。
[0003]內(nèi)存是嵌入式系統(tǒng)的應(yīng)用程序運(yùn)行的主要場(chǎng)所,實(shí)時(shí)掌握嵌入式內(nèi)存的使用情況對(duì)于嵌入式系統(tǒng)的運(yùn)行效率是至關(guān)重要的。檢測(cè)內(nèi)存泄漏問(wèn)題的關(guān)鍵在于能夠在線獲取內(nèi)存使用的分布情況,即能夠獲取當(dāng)前已使用內(nèi)存被哪些程序占用?,F(xiàn)有技術(shù)一般通過(guò)記錄每一塊內(nèi)存申請(qǐng)的文件、行號(hào)和堆棧信息等來(lái)記錄內(nèi)存的使用情況,但是用于記錄內(nèi)存申請(qǐng)的文件、行號(hào)和堆棧信息的數(shù)據(jù)所占用的內(nèi)存較大,造成嵌入式系統(tǒng)中應(yīng)用程序的可用內(nèi)存過(guò)小。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的主要目的在于提供一種嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法及裝置,旨在解決用于記錄內(nèi)存占用情況的數(shù)據(jù)占用內(nèi)存空間較大的技術(shù)問(wèn)題。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法,所述嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法包括以下步驟:
[0006]在應(yīng)用程序申請(qǐng)內(nèi)存時(shí),獲取與該應(yīng)用程序申請(qǐng)的內(nèi)存所對(duì)應(yīng)預(yù)設(shè)的標(biāo)識(shí)號(hào),并將與該標(biāo)識(shí)號(hào)對(duì)應(yīng)的使用狀態(tài)信息設(shè)置為已使用狀態(tài);
[0007]在應(yīng)用程序釋放內(nèi)存時(shí),獲取與該應(yīng)用程序釋放的內(nèi)存所對(duì)應(yīng)預(yù)設(shè)的標(biāo)識(shí)號(hào),并將與該標(biāo)識(shí)號(hào)對(duì)應(yīng)的使用狀態(tài)信息設(shè)置為未使用狀態(tài);
[0008]根據(jù)當(dāng)前設(shè)置為已使用狀態(tài)的使用狀態(tài)信息所對(duì)應(yīng)的標(biāo)志號(hào)獲取所述嵌入式系統(tǒng)當(dāng)前運(yùn)行的應(yīng)用程序所占用的內(nèi)存。
[0009]優(yōu)選地,所述在應(yīng)用程序申請(qǐng)內(nèi)存時(shí),獲取與該應(yīng)用程序申請(qǐng)的內(nèi)存所對(duì)應(yīng)預(yù)設(shè)的標(biāo)識(shí)號(hào),并將與該標(biāo)識(shí)號(hào)對(duì)應(yīng)的使用狀態(tài)信息設(shè)置為已使用狀態(tài)的步驟以及所述在應(yīng)用程序釋放內(nèi)存時(shí),獲取與該應(yīng)用程序釋放的內(nèi)存所對(duì)應(yīng)預(yù)設(shè)的標(biāo)識(shí)號(hào),并將與該標(biāo)識(shí)號(hào)對(duì)應(yīng)的使用狀態(tài)信息設(shè)置為未使用狀態(tài)的步驟之前還包括:
[0010]根據(jù)預(yù)設(shè)定義規(guī)則對(duì)嵌入式系統(tǒng)的每塊內(nèi)存設(shè)置標(biāo)識(shí)號(hào)。
[0011]優(yōu)選地,所述根據(jù)預(yù)設(shè)定義規(guī)則對(duì)嵌入式系統(tǒng)的每塊內(nèi)存設(shè)置標(biāo)識(shí)號(hào)的步驟之后還包括:
[0012]創(chuàng)建各所述標(biāo)識(shí)號(hào)、與各所述標(biāo)識(shí)號(hào)對(duì)應(yīng)的內(nèi)存信息、以及與各所述標(biāo)識(shí)號(hào)對(duì)應(yīng)的各塊內(nèi)存的使用狀態(tài)信息之間的一一對(duì)應(yīng)關(guān)系,其中,與各所述標(biāo)識(shí)號(hào)對(duì)應(yīng)的使用狀態(tài)信息的初始值均為未使用狀態(tài)。
[0013]優(yōu)選地,所述根據(jù)當(dāng)前設(shè)置為已使用狀態(tài)的使用狀態(tài)信息所對(duì)應(yīng)的標(biāo)識(shí)號(hào)獲取所述嵌入式系統(tǒng)當(dāng)前運(yùn)行的應(yīng)用程序所占用的內(nèi)存的步驟包括:
[0014]在所述對(duì)應(yīng)關(guān)系中查找當(dāng)前處于已使用狀態(tài)的使用狀態(tài)信息;
[0015]根據(jù)查找獲得的使用狀態(tài)信息在所述對(duì)應(yīng)關(guān)系中獲取對(duì)應(yīng)的內(nèi)存信息;
[0016]根據(jù)獲取的內(nèi)存信息獲取所述嵌入式系統(tǒng)當(dāng)前運(yùn)行的應(yīng)用程序所占用的內(nèi)存。
[0017]優(yōu)選地,所述根據(jù)當(dāng)前設(shè)置為已使用狀態(tài)的使用狀態(tài)信息所對(duì)應(yīng)的標(biāo)志號(hào)獲取所述嵌入式系統(tǒng)當(dāng)前運(yùn)行的應(yīng)用程序所占用的內(nèi)存的步驟之后還包括:
[0018]每隔預(yù)設(shè)時(shí)間后,根據(jù)當(dāng)前查找獲得的使用狀態(tài)信息在所述對(duì)應(yīng)關(guān)系中獲取對(duì)應(yīng)的標(biāo)識(shí)號(hào)和內(nèi)存信息;
[0019]將當(dāng)前查找獲得的使用狀態(tài)信息,以及根據(jù)所述查找獲得的使用狀態(tài)信息獲取的標(biāo)識(shí)號(hào)和內(nèi)存信息發(fā)送至預(yù)設(shè)存儲(chǔ)模塊中。
[0020]此外,為了實(shí)現(xiàn)上述目的,本發(fā)明還提供一種嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)裝置,所述嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)裝置包括:
[0021]第一處理模塊,用于在應(yīng)用程序申請(qǐng)內(nèi)存時(shí),獲取與該應(yīng)用程序申請(qǐng)的內(nèi)存所對(duì)應(yīng)預(yù)設(shè)的標(biāo)識(shí)號(hào),并將與該標(biāo)識(shí)號(hào)對(duì)應(yīng)的使用狀態(tài)信息設(shè)置為已使用狀態(tài);
[0022]第二處理模塊,用于在應(yīng)用程序釋放內(nèi)存時(shí),獲取與該應(yīng)用程序釋放的內(nèi)存所對(duì)應(yīng)預(yù)設(shè)的標(biāo)識(shí)號(hào),并將與該標(biāo)識(shí)號(hào)對(duì)應(yīng)的使用狀態(tài)信息設(shè)置為未使用狀態(tài);
[0023]統(tǒng)計(jì)模塊,用于根據(jù)當(dāng)前設(shè)置為已使用狀態(tài)的使用狀態(tài)信息所對(duì)應(yīng)的標(biāo)志號(hào)獲取所述嵌入式系統(tǒng)當(dāng)前運(yùn)行的應(yīng)用程序所占用的內(nèi)存。
[0024]優(yōu)選地,所述嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)裝置還包括:
[0025]設(shè)置模塊,用于根據(jù)預(yù)設(shè)定義規(guī)則對(duì)嵌入式系統(tǒng)的每塊內(nèi)存設(shè)置標(biāo)識(shí)號(hào)。
[0026]優(yōu)選地,所述嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)裝置還包括:
[0027]創(chuàng)建模塊,用于創(chuàng)建各所述標(biāo)識(shí)號(hào)、與各所述標(biāo)識(shí)號(hào)對(duì)應(yīng)的內(nèi)存信息、以及與各所述標(biāo)識(shí)號(hào)對(duì)應(yīng)的各塊內(nèi)存的使用狀態(tài)信息之間的對(duì)應(yīng)關(guān)系,其中,與各所述標(biāo)識(shí)號(hào)對(duì)應(yīng)的使用狀態(tài)信息的初始值均為未使用狀態(tài)。
[0028]優(yōu)選地,所統(tǒng)計(jì)模塊包括:
[0029]查找單元,用于在所述對(duì)應(yīng)關(guān)系中查找當(dāng)前處于已使用狀態(tài)的使用狀態(tài)信息;
[0030]獲取單元,用于根據(jù)查找獲得的使用狀態(tài)信息在所述對(duì)應(yīng)關(guān)系中獲取對(duì)應(yīng)的內(nèi)存信息;
[0031]統(tǒng)計(jì)單元,用于根據(jù)獲取的內(nèi)存信息獲取所述嵌入式系統(tǒng)當(dāng)前運(yùn)行的應(yīng)用程序所占用的內(nèi)存。
[0032]優(yōu)選地,所述嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)裝置還包括:
[0033]獲取模塊,用于在每隔預(yù)設(shè)時(shí)間后,根據(jù)當(dāng)前查找獲得的使用狀態(tài)信息在所述對(duì)應(yīng)關(guān)系中獲取對(duì)應(yīng)的標(biāo)識(shí)號(hào)和內(nèi)存彳目息;
[0034]發(fā)送模塊,用于將當(dāng)前查找獲得的使用狀態(tài)信息,以及根據(jù)所述查找獲得的使用狀態(tài)信息獲取的標(biāo)識(shí)號(hào)和內(nèi)存信息發(fā)送至預(yù)設(shè)存儲(chǔ)模塊中。
[0035]本發(fā)明提供的嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法及裝置,在應(yīng)用程序申請(qǐng)內(nèi)存時(shí),獲取與該應(yīng)用程序申請(qǐng)的內(nèi)存所對(duì)應(yīng)預(yù)設(shè)的標(biāo)識(shí)號(hào),并將與該標(biāo)識(shí)號(hào)對(duì)應(yīng)的使用狀態(tài)信息設(shè)置為已使用狀態(tài);在應(yīng)用程序釋放內(nèi)存時(shí),獲取與該應(yīng)用程序釋放的內(nèi)存所對(duì)應(yīng)預(yù)設(shè)的標(biāo)識(shí)號(hào),并將與該標(biāo)識(shí)號(hào)對(duì)應(yīng)的使用狀態(tài)信息設(shè)置為未使用狀態(tài);根據(jù)當(dāng)前設(shè)置為已使用狀態(tài)的使用狀態(tài)信息所對(duì)應(yīng)的標(biāo)志號(hào)獲取所述嵌入式系統(tǒng)當(dāng)前運(yùn)行的應(yīng)用程序所占用的內(nèi)存,標(biāo)識(shí)號(hào)可采用整型數(shù)據(jù),通過(guò)標(biāo)識(shí)號(hào)就能夠記錄到內(nèi)存的模塊級(jí)別信息,有效地降低了用于記錄內(nèi)存占有情況的數(shù)據(jù)所占用的內(nèi)存空間,降低了內(nèi)存空間的額外開銷,從而增加了嵌入式系統(tǒng)中的應(yīng)用程序的可用內(nèi)存。
【附圖說(shuō)明】
[0036]圖1為本發(fā)明嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法第一實(shí)施例的流程示意圖;
[0037]圖2為本發(fā)明嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法第二實(shí)施例的流程示意圖;
[0038]圖3為本發(fā)明嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法第三實(shí)施例的流程示意圖;
[0039]圖4為圖1中步驟S30的細(xì)化流程示意圖;
[0040]圖5為本發(fā)明嵌入式內(nèi)存統(tǒng)計(jì)方法第四實(shí)施例的流程示意圖;
[0041]圖6為本發(fā)明嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)裝置第一實(shí)施例的功能模塊示意圖;
[0042]圖7為本發(fā)明嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)裝置第二實(shí)施例的功能模塊示意圖;
[0043]圖8為本發(fā)明嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)裝置第三實(shí)施例的功能模塊示意圖;
[0044]圖9為圖6中統(tǒng)計(jì)模塊的細(xì)化功能模塊示意圖;
[0045]圖10為本發(fā)明嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)裝置第四實(shí)施例的功能模塊示意圖。
[0046]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
【具體實(shí)施方式】
[0047]應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0048]本發(fā)明提供一種嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法。
[0049]參照?qǐng)D1,圖1為本發(fā)明嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法第一實(shí)施例的流程示意圖。
[0050]在一實(shí)施例中,該嵌入式系統(tǒng)內(nèi)存統(tǒng)計(jì)方法包括以下步驟:
[0051]步驟S10,在應(yīng)用程序申請(qǐng)內(nèi)存時(shí),獲取與該應(yīng)用程序申請(qǐng)的內(nèi)存所對(duì)應(yīng)預(yù)設(shè)的標(biāo)識(shí)號(hào),并將與該標(biāo)識(shí)號(hào)對(duì)應(yīng)的使