專利名稱:一種嵌入式系統(tǒng)性能的評(píng)估方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域,尤其涉及一種嵌入式系統(tǒng)性能的評(píng)估方法及 系統(tǒng)。
背景技術(shù):
現(xiàn)有的嵌入式系統(tǒng)中,系統(tǒng)運(yùn)行時(shí)的處理器(CPU)占用率是衡量系統(tǒng)性能的重要指標(biāo),通常的測(cè)量方法是在系統(tǒng)運(yùn)行時(shí)啟動(dòng)一個(gè)最低優(yōu)先級(jí)的空閑任 務(wù),通過(guò)統(tǒng)計(jì)在一段時(shí)間內(nèi)空閑任務(wù)運(yùn)行的時(shí)間片,再用總的運(yùn)行時(shí)間減去空 閑任務(wù)的運(yùn)行時(shí)間片后,得到系統(tǒng)中所有其他進(jìn)程的運(yùn)行的時(shí)間,,用這種方法可以計(jì)算出嵌入式系統(tǒng)運(yùn)行時(shí)的CPU占用率。例如中國(guó)專利公開(kāi)號(hào)為 CN021576卯,發(fā)明名稱為"一種在多任務(wù)實(shí)時(shí)操作系統(tǒng)中檢測(cè)CPU占用率的 方法,,即為統(tǒng)計(jì)CPU占用率的常見(jiàn)方法,具體為通過(guò)在進(jìn)程切換時(shí)加入鉤子 函數(shù)統(tǒng)計(jì)各進(jìn)程的運(yùn)行時(shí)間片。它是以進(jìn)程為基本統(tǒng)計(jì)單位,從總體衡量各個(gè) 進(jìn)程的運(yùn)行時(shí)間,目的在于監(jiān)控進(jìn)程的運(yùn)行時(shí)間片、監(jiān)測(cè)進(jìn)程死循環(huán)等異常情 況。然而,在系統(tǒng)的實(shí)時(shí)運(yùn)行過(guò)程中,僅通過(guò)統(tǒng)計(jì)進(jìn)程的占用率計(jì)算CPU占用 率以達(dá)到評(píng)估嵌入式系統(tǒng)性能,比如系統(tǒng)的實(shí)時(shí)運(yùn)行狀態(tài)是遠(yuǎn)遠(yuǎn)不夠的,需要 比進(jìn)程更細(xì)粒度的評(píng)估指標(biāo),從而引入了以函數(shù)為基本統(tǒng)計(jì)單位的評(píng)估指標(biāo), 具體來(lái)說(shuō),通過(guò)統(tǒng)計(jì)各函數(shù)的運(yùn)行時(shí)間和運(yùn)行情況,可以統(tǒng)計(jì)出函數(shù)的占用率, 并分析出函數(shù)間的調(diào)用關(guān)系和代碼的關(guān)鍵路徑,從而對(duì)調(diào)用次數(shù)頻繁的函數(shù)進(jìn) 行代碼優(yōu)化,最終降低CPU的占用率,以提高系統(tǒng)性能。以下對(duì)現(xiàn)有的一種通 過(guò)統(tǒng)計(jì)各函數(shù)的運(yùn)行時(shí)間和運(yùn)行情況達(dá)到評(píng)估嵌入式系統(tǒng)性能的方案進(jìn)行闡 述。中國(guó)專利/〉開(kāi)號(hào)為CN2008101424卯.3,發(fā)明名稱為"一種CPU占用率測(cè)量方法及裝置",具體為通過(guò)使用定時(shí)中斷采樣程序計(jì)數(shù)器,并解析當(dāng)前程序 計(jì)數(shù)器對(duì)應(yīng)的函數(shù)名稱,來(lái)達(dá)到統(tǒng)計(jì)各函數(shù)的運(yùn)行時(shí)間和運(yùn)行情況的目的,然 而由于定時(shí)器中斷的限制,該方案并不能精確統(tǒng)計(jì)各函數(shù)的運(yùn)行時(shí)間和運(yùn)行情 況,由于該方案統(tǒng)計(jì)的是由離散的多個(gè)運(yùn)行瞬間的采樣得到的結(jié)果,在兩次定 時(shí)器中斷之間運(yùn)行并退出的函數(shù)則無(wú)法統(tǒng)計(jì)到,因此,無(wú)法精確地對(duì)嵌入式系 統(tǒng)性能進(jìn)行評(píng)估,目前迫切需要一種能精確地對(duì)嵌入式系統(tǒng)性能進(jìn)行評(píng)估的實(shí) 現(xiàn)方案。發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種嵌入式系統(tǒng)性能的評(píng)估方法及 系統(tǒng),能精確地對(duì)嵌入式系統(tǒng)性能進(jìn)行評(píng)估。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種嵌入式系統(tǒng)性能的評(píng)估方法,該方法包括對(duì)函數(shù)的時(shí)間信息、和相 對(duì)應(yīng)的函數(shù)的狀態(tài)信息進(jìn)行實(shí)時(shí)的連續(xù)采集;通過(guò)對(duì)采集結(jié)果統(tǒng)計(jì)的方式,實(shí) 現(xiàn)嵌入式系統(tǒng)的性能評(píng)估。其中,才艮據(jù)所述采集結(jié)果,統(tǒng)計(jì)出所述嵌入式系統(tǒng)的當(dāng)前進(jìn)程中,各個(gè)函 數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài)并確定為評(píng)估參數(shù);才艮據(jù)所述評(píng)估參數(shù)實(shí) 現(xiàn)嵌入式系統(tǒng)實(shí)時(shí)運(yùn)行狀態(tài)的性能評(píng)估。其中,將各個(gè)函數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài)進(jìn)一步確定為故障定位指示參數(shù);根據(jù)所述故障定位指示參數(shù)實(shí)現(xiàn)嵌入式系統(tǒng)的故障定位。其中,進(jìn)行所述釆集之前還包括以進(jìn)程為單位分配記錄區(qū),并建立進(jìn)程 號(hào)與記錄區(qū)的對(duì)應(yīng)關(guān)系;在所述記錄區(qū)實(shí)時(shí)記錄當(dāng)前進(jìn)程調(diào)用函數(shù)的運(yùn)行情況; 其中,所述記錄區(qū)包括所述函數(shù)的時(shí)間信息和所述函數(shù)的狀態(tài)信息。其中,所述實(shí)時(shí)記錄具體包括根據(jù)設(shè)置在各函數(shù)入口的入記錄標(biāo)識(shí)、設(shè)置在各函數(shù)出口的出記錄標(biāo)識(shí)、進(jìn)程重新切換入的切換入記錄標(biāo)識(shí)、進(jìn)程切換出的切換出記錄標(biāo)識(shí)中的至少 一種標(biāo)識(shí),來(lái)進(jìn)行實(shí)時(shí)記錄。其中,所述入記錄標(biāo)識(shí)具體為入樁函數(shù);所述出記錄標(biāo)識(shí)具體為出樁函數(shù); 所述切換入記錄標(biāo)識(shí)和切換出記錄標(biāo)識(shí)具體采用進(jìn)程切換鉤子函數(shù)的形式;當(dāng)捕獲到所述入樁函數(shù)時(shí),所述實(shí)時(shí)記錄之前還包括4艮據(jù)當(dāng)前調(diào)用所述 入樁函數(shù)的進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所述進(jìn)程號(hào)相對(duì)應(yīng) 的記錄區(qū);所述實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確定為所述函數(shù)的時(shí) 間信息并寫(xiě)入記錄區(qū);同時(shí),將當(dāng)前函數(shù)進(jìn)入被調(diào)用狀態(tài)確定為所述函數(shù)的狀 態(tài)信息并寫(xiě)入記錄區(qū);或者,當(dāng)捕獲到所述出樁函數(shù)時(shí),所述實(shí)時(shí)記錄之前還包括根據(jù)當(dāng)前調(diào)用所述 出樁函數(shù)的進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所述進(jìn)程號(hào)相對(duì)應(yīng) 的記錄區(qū);所述實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確定為所述函數(shù)的時(shí) 間信息并寫(xiě)入記錄區(qū);同時(shí),將當(dāng)前函數(shù)退出被調(diào)用狀態(tài)確定為所述函數(shù)的狀 態(tài)信息并寫(xiě)入記錄區(qū);或者,當(dāng)捕獲到進(jìn)程切換鉤子函數(shù)形式的所述切換入記錄標(biāo)識(shí)時(shí),所述實(shí)時(shí)記錄 之前還包括才艮據(jù)當(dāng)前切換入進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與 所述進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū);所述實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確 定為所述函數(shù)的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將表征當(dāng)前進(jìn)程進(jìn)入切換入狀 態(tài)的進(jìn)程切換鉤子函數(shù),確定為所述函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū);或者,當(dāng)捕獲到進(jìn)程切換鉤子函數(shù)形式的所述切換出記錄標(biāo)識(shí)時(shí),所述實(shí)時(shí)記錄 之前還包括根據(jù)當(dāng)前切換出進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與 所述進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū);所述實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確 定為所述函數(shù)的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將表征當(dāng)前進(jìn)程進(jìn)入切換出狀 態(tài)的進(jìn)程切換鉤子函數(shù),確定為所述函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū)。其中,所述當(dāng)前時(shí)間戳采取絕對(duì)時(shí)間的格式時(shí),通過(guò)讀取處理器的計(jì)數(shù)器 或硬件實(shí)現(xiàn)的計(jì)數(shù)器獲得;或者,所述當(dāng)前時(shí)間戳釆取相對(duì)時(shí)間的格式時(shí),以標(biāo)識(shí)形式存在;其中,將從實(shí) 時(shí)時(shí)鐘或軟件系統(tǒng)時(shí)鐘獲取的系統(tǒng)時(shí)間添加為所述標(biāo)識(shí)。其中,在進(jìn)行所述實(shí)時(shí)記錄時(shí),進(jìn)一步根據(jù)對(duì)各個(gè)進(jìn)程分別設(shè)置的記錄開(kāi)關(guān)、或?qū)λ羞M(jìn)程設(shè)置的總記錄開(kāi)關(guān)的開(kāi)/關(guān)狀態(tài),對(duì)記錄的范圍進(jìn)行控制; 和/或根據(jù)對(duì)各個(gè)函數(shù)設(shè)置的函數(shù)嵌套層次范圍,對(duì)記錄的范圍進(jìn)行控制。 其中,所述采集具體為采集通過(guò)入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息、和通過(guò)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息;所述統(tǒng)計(jì)函數(shù)的運(yùn)行時(shí)間具體為根據(jù)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息,與入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間差值,統(tǒng)計(jì)出當(dāng)前函數(shù)的運(yùn)行時(shí)間;或者,所述采集具體為采集通過(guò)入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息、和通過(guò)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息;以及采集表征當(dāng)前進(jìn)程進(jìn)入切換入狀態(tài)的進(jìn)程切換鉤子函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息、和表征當(dāng)前進(jìn)程進(jìn)入切換出狀態(tài)的進(jìn)程切換鉤子函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息;所述統(tǒng)計(jì)函數(shù)的運(yùn)行時(shí)間具體為根據(jù)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的 時(shí)間信息,與入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間差值,獲 得第一時(shí)間差值;根據(jù)表征當(dāng)前進(jìn)程進(jìn)入切換入狀態(tài)的進(jìn)程切換鉤子函數(shù)所實(shí) 時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息、與表征當(dāng)前進(jìn)程進(jìn)入切換出狀態(tài)的進(jìn)程切換鉤 子函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間差值,獲得第二時(shí)間差值; 根據(jù)所述第一時(shí)間差值與所述第二時(shí)間差值之間的差值,統(tǒng)計(jì)出當(dāng)前函數(shù)的運(yùn) 行時(shí)間。其中,該方法進(jìn)一步包括統(tǒng)計(jì)函數(shù)占用率,具體為根據(jù)多個(gè)進(jìn)程中所 述當(dāng)前函數(shù)的運(yùn)行時(shí)間的總和,統(tǒng)計(jì)出當(dāng)前函數(shù)在多個(gè)進(jìn)程中的總運(yùn)行時(shí)間; 根據(jù)當(dāng)前進(jìn)程的所述當(dāng)前函數(shù)的運(yùn)行時(shí)間與所述總運(yùn)行時(shí)間的比值,統(tǒng)計(jì)出當(dāng) 前進(jìn)程中的當(dāng)前函數(shù)在多個(gè)進(jìn)程中所占的函數(shù)占用率。其中,所述采集具體為采集通過(guò)入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間 信息、和當(dāng)前函數(shù)的狀態(tài)信息;以及采集通過(guò)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù) 的時(shí)間信息、和當(dāng)前函數(shù)的狀態(tài)信息;所述統(tǒng)計(jì)函數(shù)的運(yùn)行狀態(tài)具體為根據(jù)所述出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息,與所述入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間差值,統(tǒng)計(jì)出當(dāng)前函數(shù)的運(yùn)行時(shí)間;結(jié)合所述當(dāng)前函數(shù)的運(yùn)行時(shí)間、所述入樁 函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的狀態(tài)信息、和所述出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函 數(shù)的狀態(tài)信息,統(tǒng)計(jì)出在當(dāng)前函數(shù)的運(yùn)行時(shí)間內(nèi)當(dāng)前函數(shù)的運(yùn)行狀態(tài)。一種嵌入式系統(tǒng)性能的評(píng)估系統(tǒng),該系統(tǒng)包括采集單元、統(tǒng)計(jì)單元、和 評(píng)估單元;其中,采集單元,用于對(duì)函數(shù)的時(shí)間信息、和相對(duì)應(yīng)的函數(shù)的狀態(tài)信息進(jìn)行實(shí)時(shí) 的連續(xù)采集;將采集結(jié)果發(fā)送給所述統(tǒng)計(jì)單元;統(tǒng)計(jì)單元,用于對(duì)所述采集結(jié)果進(jìn)行統(tǒng)計(jì);將統(tǒng)計(jì)結(jié)果發(fā)送給所述評(píng)估單元;評(píng)估單元,用于4艮據(jù)所述統(tǒng)計(jì)結(jié)果實(shí)現(xiàn)嵌入式系統(tǒng)的性能評(píng)估。其中,所述統(tǒng)計(jì)單元,進(jìn)一步用于根據(jù)所述采集結(jié)果,統(tǒng)計(jì)出所述嵌入式系統(tǒng)的當(dāng)前進(jìn)程中,各個(gè)函數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài);所述評(píng)估單元,進(jìn)一步用于將收到的各個(gè)函數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài)確定為評(píng)估參數(shù);根據(jù)所述評(píng)估參數(shù)實(shí)現(xiàn)嵌入式系統(tǒng)實(shí)時(shí)運(yùn)行狀態(tài)的性能評(píng)估。其中,該系統(tǒng)還包括故障定位單元,用于將收到的各個(gè)函數(shù)的運(yùn)行時(shí)間 和各個(gè)函數(shù)的運(yùn)行狀態(tài)確定為故障定位指示參數(shù);根據(jù)所述故障定位指示參數(shù) 實(shí)現(xiàn)嵌入式系統(tǒng)的故障定位。其中,該系統(tǒng)還包括記錄區(qū)分配及關(guān)系建立單元,和實(shí)時(shí)記錄單元;其中,記錄區(qū)分配及關(guān)系建立單元,用于以進(jìn)程為單位分配記錄區(qū),并建立進(jìn)程 號(hào)與記錄區(qū)的對(duì)應(yīng)關(guān)系;其中,所述記錄區(qū)包括所述函數(shù)的時(shí)間信息和所述 函數(shù)的狀態(tài)信息;實(shí)時(shí)記錄單元,用于根據(jù)設(shè)置在各函數(shù)入口的入記錄標(biāo)識(shí)、設(shè)置在各函數(shù) 出口的出記錄標(biāo)識(shí)、進(jìn)程重新切換入的切換入記錄標(biāo)識(shí)、進(jìn)程切換出的切換出 記錄標(biāo)識(shí)中的至少一種標(biāo)識(shí),來(lái)進(jìn)行實(shí)時(shí)記錄。其中,所述入記錄標(biāo)識(shí)具體為入樁函數(shù);所述出記錄標(biāo)識(shí)具體為出樁函數(shù); 所述切換入記錄標(biāo)識(shí)和切換出記錄標(biāo)識(shí)具體采用進(jìn)程切換鉤子函數(shù)的形式;該 系統(tǒng)還包括查詢單元;其中,捕獲到所述入樁函數(shù)的情況下,所述查詢單元,用于根據(jù)當(dāng)前調(diào)用所述入 樁函數(shù)的進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所述進(jìn)程號(hào)相對(duì)應(yīng)的 記錄區(qū);所述實(shí)時(shí)記錄單元,進(jìn)一步用于將讀取的當(dāng)前時(shí)間戳確定為所述函數(shù) 的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將當(dāng)前函數(shù)進(jìn)入被調(diào)用狀態(tài)確定為所述函數(shù) 的狀態(tài)信息并寫(xiě)入記錄區(qū);或者,捕獲到所述出樁函數(shù)的情況下,所述查詢單元,用于根據(jù)當(dāng)前調(diào)用所述出 樁函數(shù)的進(jìn)程所在的進(jìn)禾呈號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所述進(jìn)程號(hào)相對(duì)應(yīng)的 記錄區(qū);所述實(shí)時(shí)記錄單元,進(jìn)一步用于將讀取的當(dāng)前時(shí)間戳確定為所述函數(shù) 的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將當(dāng)前函數(shù)退出被調(diào)用狀態(tài)確定為所述函數(shù) 的狀態(tài)信息并寫(xiě)入記錄區(qū);或者,捕獲到進(jìn)程切換鉤子函數(shù)形式的所述切換入記錄標(biāo)識(shí)的情況下,所述查詢 單元,用于根據(jù)當(dāng)前切:換入進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所 述進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū);所述實(shí)時(shí)記錄單元,進(jìn)一步用于將讀取的當(dāng)前時(shí)間 戳確定為所述函數(shù)的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將表征當(dāng)前進(jìn)程進(jìn)入切換 入狀態(tài)的進(jìn)程切換鉤子函數(shù),確定為所迷函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū);或者,捕獲到進(jìn)程切換鉤子函數(shù)形式的所述切換出記錄標(biāo)識(shí)的情況下,所述查詢 單元,用于根據(jù)當(dāng)前切換出進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所廠述進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū);所述實(shí)時(shí)記錄單元,進(jìn)一步用于將讀取的當(dāng)前時(shí)間 戳確定為所述函數(shù)的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將表征當(dāng)前進(jìn)程進(jìn)入切換 出狀態(tài)的進(jìn)程切換鉤子函數(shù),確定為所述函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū)。本發(fā)明對(duì)函數(shù)的時(shí)間信息、和相對(duì)應(yīng)的函數(shù)的狀態(tài)信息進(jìn)行實(shí)時(shí)的連續(xù)采 集;通過(guò)對(duì)采集結(jié)果統(tǒng)計(jì)的方式,實(shí)現(xiàn)嵌入式系統(tǒng)的性能評(píng)估。由于本發(fā)明是對(duì)函數(shù)的時(shí)間信息、和相對(duì)應(yīng)的函數(shù)的狀態(tài)信息進(jìn)行實(shí)時(shí)的 連續(xù)采集后所進(jìn)行的統(tǒng)計(jì),因此,可以統(tǒng)計(jì)到各個(gè)函數(shù)在連續(xù)時(shí)間點(diǎn)的函數(shù)狀態(tài);而現(xiàn)有技術(shù)是由離散的多個(gè)運(yùn)行瞬間的采樣得到的結(jié)果,無(wú)法統(tǒng)計(jì)到在兩 次定時(shí)器中斷之間運(yùn)行并退出的函數(shù),因此,采用本發(fā)明的統(tǒng)計(jì)結(jié)果實(shí)現(xiàn)嵌入 式系統(tǒng)的性能評(píng)估,其精確度比現(xiàn)有技術(shù)高的多。
圖1為本發(fā)明方法的實(shí)現(xiàn)流程示意圖;圖2為本發(fā)明實(shí)例1的進(jìn)程號(hào)對(duì)應(yīng)記錄區(qū)的示意圖;圖3為本發(fā)明實(shí)例2的函數(shù)運(yùn)行時(shí)間的一個(gè)記錄區(qū)示意圖;圖4為本發(fā)明實(shí)例3的函數(shù)運(yùn)行時(shí)間的一個(gè)記錄區(qū)示意圖;圖5為本發(fā)明實(shí)例4的函數(shù)運(yùn)行時(shí)間的一個(gè)記錄區(qū)示意圖;圖6為本發(fā)明實(shí)例4的函數(shù)運(yùn)行時(shí)間的另一個(gè)記錄區(qū)示意圖。
具體實(shí)施方式
本發(fā)明的基本思想是對(duì)函數(shù)的時(shí)間信息、和相對(duì)應(yīng)的函數(shù)的狀態(tài)信息進(jìn) 行實(shí)時(shí)的連續(xù)采集;通過(guò)對(duì)采集結(jié)果統(tǒng)計(jì)的方式,實(shí)現(xiàn)嵌入式系統(tǒng)的性能評(píng)估。 下面結(jié)合附圖對(duì)技術(shù)方案的實(shí)施作進(jìn)一步的詳細(xì)描述。 如圖1所示, 一種嵌入式系統(tǒng)性能的評(píng)估方法,該方法包括以下步驟 步驟101、對(duì)函數(shù)的時(shí)間信息、和相對(duì)應(yīng)的函數(shù)的狀態(tài)信息進(jìn)行實(shí)時(shí)的連 續(xù)采集。步驟102、通過(guò)對(duì)采集結(jié)果統(tǒng)計(jì)的方式,實(shí)現(xiàn)嵌入式系統(tǒng)的性能評(píng)估。 針對(duì)步驟101~步驟102所構(gòu)成的技術(shù)方案而言,步驟102中,統(tǒng)計(jì)的處理過(guò)程具體為根據(jù)采集結(jié)果,統(tǒng)計(jì)出嵌入式系統(tǒng)的當(dāng)前進(jìn)程中,各個(gè)函數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài)。實(shí)現(xiàn)嵌入式系統(tǒng)的性能評(píng)估的處理過(guò)程具體為將各個(gè)函數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài)確定為評(píng)估參數(shù);根據(jù)評(píng)估參數(shù)實(shí)現(xiàn)嵌入式系統(tǒng)實(shí)時(shí)運(yùn)行狀態(tài)的性能評(píng)估。這里,還可以進(jìn)一步地將各個(gè)函數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài)確定單位分配記錄區(qū),并 建立進(jìn)程號(hào)與記錄區(qū)的對(duì)應(yīng)關(guān)系;在記錄區(qū)實(shí)時(shí)記錄當(dāng)前進(jìn)程調(diào)用函數(shù)的運(yùn)行 情況。其中,記錄區(qū)包括函數(shù)的時(shí)間信息和函數(shù)的狀態(tài)信息。所述運(yùn)行情況 正是通過(guò)函數(shù)的時(shí)間信息和函數(shù)的狀態(tài)信息這兩方面信息來(lái)確定的。針對(duì)實(shí)時(shí)記錄而言,實(shí)時(shí)記錄具體包括根據(jù)設(shè)置在各函數(shù)入口的入記錄 標(biāo)識(shí)、設(shè)置在各函數(shù)出口的出記錄標(biāo)識(shí)、進(jìn)程重新切換入的切換入記錄標(biāo)識(shí)、 進(jìn)程切換出的切換出記錄標(biāo)識(shí)中的至少 一種標(biāo)識(shí),來(lái)進(jìn)行實(shí)時(shí)記錄。其中,入記錄標(biāo)識(shí)具體為入樁函數(shù);出記錄標(biāo)識(shí)具體為出樁函數(shù);切換入 記錄標(biāo)識(shí)和切換出記錄標(biāo)識(shí)具體采用進(jìn)程切換鉤子函數(shù)的形式。這里,采用進(jìn) 程切換鉤子函數(shù)形式的切換入記錄標(biāo)識(shí)時(shí),此時(shí)的進(jìn)程切換鉤子函數(shù)實(shí)際上具 體為表征當(dāng)前進(jìn)程進(jìn)入切換入狀態(tài)的進(jìn)程切換鉤子函數(shù);采用進(jìn)程切換鉤子 函數(shù)形式的切換出記錄標(biāo)識(shí)時(shí),此時(shí)的進(jìn)程切換鉤子函數(shù)實(shí)際上具體為表征 當(dāng)前進(jìn)程進(jìn)入切換出狀態(tài)的進(jìn)程切換鉤子函數(shù)。由于記錄函數(shù)的時(shí)間信息和對(duì)應(yīng)的函數(shù)的狀態(tài)信息,所采用的具體記錄標(biāo) 識(shí),即入樁函數(shù)、出樁函數(shù)、進(jìn)程切換鉤子函數(shù)形式的切換入記錄標(biāo)識(shí)、進(jìn) 程切換鉤子函數(shù)形式的切換出記錄標(biāo)識(shí)有所不同,因此,之前分配記錄區(qū)、建 立對(duì)應(yīng)關(guān)系及查詢記錄區(qū)記錄,和最終得到的實(shí)時(shí)記錄情況也有所不同,以下 分四種情況分別闡述。第一種情況當(dāng)捕獲到入樁函數(shù)時(shí)的情況,此時(shí)入樁函數(shù)被當(dāng)前進(jìn)程調(diào)用。 當(dāng)捕獲到入樁函數(shù)時(shí),實(shí)時(shí)記錄之前還包括分配記錄區(qū)、建立對(duì)應(yīng)關(guān)系 及查詢記錄區(qū)記錄的過(guò)程,具體為根據(jù)當(dāng)前調(diào)用入樁函數(shù)的進(jìn)程所在的進(jìn)程 號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所述進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū)。實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確定為函數(shù)的時(shí)間信息并寫(xiě)入記 錄區(qū);同時(shí),將當(dāng)前函數(shù)進(jìn)入被調(diào)用狀態(tài)確定為函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū)。 第二種情況當(dāng)捕獲到出樁函數(shù)時(shí)的情況,此時(shí)出樁函數(shù)被當(dāng)前進(jìn)程調(diào)用。 當(dāng)捕獲到出樁函數(shù)時(shí),實(shí)時(shí)記錄之前還包括分配記錄區(qū)、建立對(duì)應(yīng)關(guān)系及查詢記錄區(qū)記錄的過(guò)程,具體為根據(jù)當(dāng)前調(diào)用出樁函數(shù)的進(jìn)程所在的進(jìn)程 號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū)。實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確定為函數(shù)的時(shí)間信息并寫(xiě)入記 錄區(qū);同時(shí),將當(dāng)前函數(shù)退出被調(diào)用狀態(tài)確定為函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū)。第三種情況當(dāng)捕獲到進(jìn)程切換鉤子函數(shù)形式的切換入記錄標(biāo)識(shí)時(shí)的情況。當(dāng)捕獲到進(jìn)程切換鉤子函數(shù)形式的切換入記錄標(biāo)識(shí)時(shí),實(shí)時(shí)記錄之前還包 括分配記錄區(qū)、建立對(duì)應(yīng)關(guān)系及查詢記錄區(qū)記錄的過(guò)程,具體為根據(jù)當(dāng)前 切換入進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū)。實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確定為函數(shù)的時(shí)間信息并寫(xiě)入記 錄區(qū);同時(shí),將表征當(dāng)前進(jìn)程進(jìn)入切換入狀態(tài)的進(jìn)程切換鉤子函數(shù),確定為函 數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū)。這里需要指出的是此時(shí),記錄區(qū)的本條記錄中 包括表征當(dāng)前進(jìn)程進(jìn)入切換入狀態(tài)的進(jìn)程切換鉤子函數(shù)的時(shí)間信息、和函數(shù) 信息。第四種情況當(dāng)捕獲到進(jìn)程切換鉤子函數(shù)形式的切換出記錄標(biāo)識(shí)時(shí)的情況。 當(dāng)捕獲到進(jìn)程切換鉤子函數(shù)形式的切換出記錄標(biāo)識(shí)時(shí),實(shí)時(shí)記錄之前還包 括分配記錄區(qū)、建立對(duì)應(yīng)關(guān)系及查詢記錄區(qū)記錄的過(guò)程,具體為根據(jù)當(dāng)前 切換出進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū)。 實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確定為函數(shù)的時(shí)間信息并寫(xiě)入記 錄區(qū);同時(shí),將表征當(dāng)前進(jìn)程進(jìn)入切換出狀態(tài)的進(jìn)程切換鉤子函數(shù),確定為函 數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū)。這里需要指出的是此時(shí),記錄區(qū)的本條記錄中 包括表征當(dāng)前進(jìn)程進(jìn)入切換出狀態(tài)的進(jìn)程切換鉤子函數(shù)的時(shí)間信息、和函數(shù) 信息。這里,針對(duì)讀取的時(shí)間戳而言,時(shí)間戳的獲取來(lái)源有兩種方式,第一種方 式當(dāng)前時(shí)間戳采取絕對(duì)時(shí)間的格式時(shí),通過(guò)讀取處理器的計(jì)數(shù)器或硬件實(shí)現(xiàn) 的計(jì)數(shù)器獲得當(dāng)前時(shí)間戳;第二種方式當(dāng)前時(shí)間戳采擬目對(duì)時(shí)間的格式時(shí), 以標(biāo)識(shí)形式存在;其中,將從實(shí)時(shí)時(shí)鐘(RTC)或軟件系統(tǒng)時(shí)鐘獲取的系統(tǒng)時(shí) 間添加為該標(biāo)識(shí),以獲取當(dāng)前時(shí)間戳。這里,為了避免記錄的范圍過(guò)大,導(dǎo)致系統(tǒng)中需開(kāi)辟的記錄區(qū)存儲(chǔ)空間過(guò) 大,占用系統(tǒng)資源的問(wèn)題,本發(fā)明進(jìn)一步采取兩種方式進(jìn)行完善,第一種方式具體為在進(jìn)4亍實(shí)時(shí)記錄時(shí),進(jìn)一步根據(jù)對(duì)各個(gè)進(jìn)程分別設(shè)置的記錄開(kāi)關(guān)、或 對(duì)所有進(jìn)程設(shè)置的總記錄開(kāi)關(guān)的開(kāi)/關(guān)狀態(tài),對(duì)記錄的范圍,或者稱為記錄粒度 進(jìn)行控制。具體來(lái)說(shuō),可以對(duì)所有進(jìn)程設(shè)置總開(kāi)關(guān),或者僅對(duì)當(dāng)前進(jìn)程設(shè)置開(kāi) 關(guān),看哪個(gè)進(jìn)程中的函數(shù)需要統(tǒng)計(jì),如果開(kāi)關(guān)處于開(kāi)狀態(tài),則對(duì)進(jìn)程中的函數(shù) 進(jìn)行統(tǒng)計(jì),即為統(tǒng)計(jì)進(jìn)程中的各個(gè)函數(shù)運(yùn)行時(shí)間、各個(gè)函數(shù)占用率、各個(gè)函 數(shù)在運(yùn)行時(shí)間內(nèi)的運(yùn)4亍狀態(tài)、各個(gè)函數(shù)之間的相對(duì)調(diào)用關(guān)系等;如果開(kāi)關(guān)處于 關(guān)狀態(tài),則不對(duì)進(jìn)程中的函數(shù)進(jìn)行統(tǒng)計(jì)。第二種方式具體為在進(jìn)行實(shí)時(shí)記錄 時(shí),進(jìn)一步根據(jù)對(duì)各個(gè)函數(shù)設(shè)置的函數(shù)嵌套層次范圍,對(duì)記錄的范圍進(jìn)行控制。 如果當(dāng)前函數(shù)的函數(shù)嵌套層次在函數(shù)嵌套層次范圍之內(nèi),則對(duì)當(dāng)前函數(shù)進(jìn)行統(tǒng) 計(jì),否則不統(tǒng)計(jì)。這里,采集到的信息不同,基于該采集的信息統(tǒng)計(jì)函數(shù)的運(yùn)行時(shí)間也有所 不同,以下分為兩種情況分別闡述。第一種情況采集到的信息具體為通過(guò)入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù) 的時(shí)間信息、和通過(guò)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息。此時(shí),統(tǒng)計(jì)函數(shù)的運(yùn)行時(shí)間具體為根據(jù)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù) 的時(shí)間信息,與入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間差值, 統(tǒng)計(jì)出當(dāng)前函數(shù)的運(yùn)行時(shí)間。第二種情況采集到的信息具體為通過(guò)入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù) 的時(shí)間信息、和通過(guò)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息;以及表征當(dāng) 前進(jìn)程進(jìn)入切換入狀態(tài)的進(jìn)程切換鉤子函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信 息、和表征當(dāng)前進(jìn)程進(jìn)入切換出狀態(tài)的進(jìn)程切換鉤子函數(shù)所實(shí)時(shí)記錄的當(dāng)前函 數(shù)的時(shí)間信息。此時(shí),統(tǒng)計(jì)函數(shù)的運(yùn)行時(shí)間具體包括以下幾方面內(nèi)容一、根據(jù)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息,與入樁函數(shù)所實(shí)時(shí) 記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間差值,獲得第一時(shí)間差值。二、 根據(jù)表征當(dāng)前進(jìn)程進(jìn)入切換入狀態(tài)的進(jìn)程切換鉤子函數(shù)所實(shí)時(shí)記錄的 當(dāng)前函數(shù)的時(shí)間信息、與表征當(dāng)前進(jìn)程進(jìn)入切換出狀態(tài)的進(jìn)程切換鉤子函數(shù)所 實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間差值,獲得第二時(shí)間差值。三、 才艮據(jù)所述第一時(shí)間差值與所述第二時(shí)間差值之間的差值,統(tǒng)計(jì)出當(dāng)前 函數(shù)的運(yùn)行時(shí)間。在計(jì)算中各個(gè)進(jìn)程中每個(gè)函數(shù)的運(yùn)行時(shí)間的基礎(chǔ)上,該方法進(jìn)一步包括 統(tǒng)計(jì)函數(shù)占用率,具體包括以下幾方面內(nèi)容一、 根據(jù)多個(gè)進(jìn)程中當(dāng)前函數(shù)的運(yùn)行時(shí)間的總和,統(tǒng)計(jì)出當(dāng)前函數(shù)在多個(gè) 進(jìn)程中的總運(yùn)行時(shí)間。二、 根據(jù)當(dāng)前進(jìn)程的當(dāng)前函數(shù)的運(yùn)行時(shí)間與所述總運(yùn)行時(shí)間的比值,統(tǒng)計(jì) 出當(dāng)前進(jìn)程中的當(dāng)前函數(shù)在多個(gè)進(jìn)程中所占的函數(shù)占用率。也就是說(shuō),函數(shù)占 用率=各個(gè)函數(shù)的運(yùn)行時(shí)間/函數(shù)的總運(yùn)行時(shí)間。這里,本發(fā)明還可以根據(jù)采集的信息統(tǒng)計(jì)出各個(gè)函數(shù)之間的相對(duì)調(diào)用關(guān)系、 以及統(tǒng)計(jì)出在函數(shù)的運(yùn)行時(shí)間內(nèi)函數(shù)的運(yùn)行狀態(tài)。以下,對(duì)函數(shù)的運(yùn)行狀態(tài)的 統(tǒng)計(jì)方法進(jìn)行闡述。采集的信息具體為通過(guò)入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息、和 當(dāng)前函數(shù)的狀態(tài)信息;以及采集通過(guò)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信 息、和當(dāng)前函數(shù)的狀態(tài)信息。統(tǒng)計(jì)函數(shù)的運(yùn)行狀態(tài)具體包括以下幾方面內(nèi)容一、 根據(jù)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息,與入樁函數(shù)所實(shí)時(shí) 記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間差值,統(tǒng)計(jì)出當(dāng)前函數(shù)的運(yùn)行時(shí)間。二、 結(jié)合當(dāng)前函數(shù)的運(yùn)行時(shí)間、入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的狀態(tài)信 息、和出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的狀態(tài)信息,統(tǒng)計(jì)出在當(dāng)前函數(shù)的運(yùn)行 時(shí)間內(nèi)當(dāng)前函數(shù)的運(yùn)行狀態(tài)。綜上所述,本發(fā)明主要包括以下內(nèi)容 本發(fā)明的方法可以包括以下步驟 第一步、編寫(xiě)入樁函數(shù)和出樁函數(shù)。這里,入樁函數(shù)在函數(shù)進(jìn)入時(shí)被調(diào)用,出樁函數(shù)在函數(shù)退出時(shí)被調(diào)用;入 樁函數(shù)和出樁函數(shù)主要完成當(dāng)前時(shí)間戳的記錄和被調(diào)用函數(shù)地址的記錄。被調(diào) 用函數(shù)地址通過(guò)函數(shù)名稱來(lái)界定,實(shí)際上所釆用的不同函數(shù)名稱隱含了函數(shù)的 狀態(tài)信息。比如,函數(shù)名稱為INFunctionl ()可表示Function 1進(jìn)入被調(diào)用 的狀態(tài);函數(shù)名稱為OUTFunctionl ()可表示Functionl退出被調(diào)用的狀態(tài)。第二步、通過(guò)編譯器在編譯時(shí)自動(dòng)給需要統(tǒng)計(jì)的函數(shù)增加入樁函數(shù)和出樁 函數(shù)。第三步、以進(jìn)程為單位分配記錄區(qū),每個(gè)記錄區(qū)統(tǒng)計(jì)當(dāng)前進(jìn)程調(diào)用函數(shù)的 運(yùn)行記錄。這里,進(jìn)一步地,為了在嵌入式操作系統(tǒng)中更加精確地統(tǒng)計(jì)函數(shù)運(yùn)行時(shí)間, 還需要編寫(xiě)進(jìn)程切換鉤子函數(shù),當(dāng)發(fā)生進(jìn)程切換時(shí),對(duì)于切換出和切換入的進(jìn) 程分別在相應(yīng)的記錄區(qū)中記錄當(dāng)前切換時(shí)間戳。第四步、記錄數(shù)據(jù)包括函數(shù)地址、當(dāng)前時(shí)間戳等,時(shí)間戳可由可利用處理 器的計(jì)數(shù)器或硬件實(shí)現(xiàn)的計(jì)數(shù)器讀取獲得;也可添加從RTC或軟件系統(tǒng)時(shí)鐘獲 取系統(tǒng)時(shí)間作為標(biāo)識(shí),需避免時(shí)間戳的重復(fù)。第五步、設(shè)置記錄開(kāi)關(guān)以過(guò)濾需要記錄的函數(shù)。這里,由于對(duì)每個(gè)函數(shù)記錄會(huì)導(dǎo)致過(guò)多的信息記錄,因此可對(duì)所有進(jìn)程設(shè) 置總記錄開(kāi)關(guān),并在各進(jìn)程也分別設(shè)置記錄開(kāi)關(guān),以《更對(duì)記錄粒度進(jìn)行控制, 便于過(guò)濾需要記錄的函數(shù)。還可以設(shè)置函數(shù)嵌套層次的范圍,控制記錄函數(shù)的 嵌套層次,以便于過(guò)濾需要記錄的函數(shù)。第六步、中斷服務(wù)函數(shù)運(yùn)行時(shí),使用當(dāng)前進(jìn)程的記錄區(qū),將函數(shù)進(jìn)出記錄 數(shù)據(jù)存放在進(jìn)程記錄區(qū)中。第七步、采集所有記錄區(qū)中的數(shù)據(jù),統(tǒng)計(jì)各函數(shù)運(yùn)行時(shí)間并顯示??傊?,發(fā)明為克服采用現(xiàn)有技術(shù)無(wú)法精確地對(duì)嵌入式系統(tǒng)性能進(jìn)行評(píng)估的 問(wèn)題,在現(xiàn)有嵌入式軟件系統(tǒng)中,以進(jìn)程中的函數(shù)為統(tǒng)計(jì)單位,并通過(guò)統(tǒng)計(jì)各 個(gè)函數(shù)的運(yùn)行時(shí)間、各個(gè)函數(shù)的運(yùn)行狀態(tài)、函數(shù)占用率、分析各個(gè)函數(shù)之間的 相對(duì)調(diào)用關(guān)系,可以更精確地對(duì)嵌入式系統(tǒng)性能進(jìn)行評(píng)估。而且,本發(fā)明根據(jù)對(duì)統(tǒng)計(jì)結(jié)果的分析,能優(yōu)化代碼結(jié)構(gòu)和運(yùn)行效率,改善系統(tǒng)性能,并進(jìn)一步提 高故障定位的準(zhǔn)確度。綜上所述,采用本發(fā)明,無(wú)需修改現(xiàn)有代碼,利用GCC編譯選項(xiàng)自動(dòng)添加 樁函數(shù),在各函數(shù)入口和出口處的樁函數(shù)統(tǒng)計(jì)進(jìn)入和退出函數(shù)的時(shí)間點(diǎn),通過(guò) 二者的時(shí)間差計(jì)算各函數(shù)實(shí)際運(yùn)行時(shí)間,可以實(shí)現(xiàn)精確統(tǒng)計(jì)具體函數(shù)的運(yùn)行時(shí) 間;分析頻繁運(yùn)行的函數(shù),達(dá)到細(xì)粒度統(tǒng)計(jì)便于代碼優(yōu)化,改善系統(tǒng)性能;同 時(shí),便于監(jiān)測(cè)在某個(gè)時(shí)間段內(nèi)的系統(tǒng)異常情況,對(duì)故障的定位提供了更加可靠 的方式,無(wú)需對(duì)已有代碼進(jìn)行修改。對(duì)于故障現(xiàn)場(chǎng)記錄能提供相應(yīng)精確的函數(shù) 運(yùn)行時(shí)間的記錄,從而提高了故障定位的準(zhǔn)確度。以下舉實(shí)例對(duì)本發(fā)明的內(nèi)容進(jìn)行闡述。實(shí)例l:進(jìn)程號(hào)和記錄區(qū)的索引對(duì)應(yīng)關(guān)系。如圖2所示為本發(fā)明進(jìn)程號(hào)對(duì)應(yīng)記錄區(qū)的示意圖。系統(tǒng)上電后,對(duì)每個(gè)進(jìn) 程初始化相應(yīng)的記錄區(qū),并建立進(jìn)程號(hào)與記錄區(qū)的索引的對(duì)應(yīng)關(guān)系,當(dāng)包括入 樁函數(shù)和出樁函數(shù)在內(nèi)的樁函數(shù),被當(dāng)前進(jìn)程調(diào)用時(shí),樁函數(shù)能根據(jù)當(dāng)前進(jìn)程 的進(jìn)程號(hào)索引到相對(duì)應(yīng)的記錄區(qū)。實(shí)例2:采用一個(gè)記錄區(qū)中的記錄,統(tǒng)計(jì)一個(gè)進(jìn)程中的各個(gè)函數(shù)的運(yùn)行時(shí) 間。此時(shí)僅僅包括入樁函數(shù)和出樁函數(shù)。如圖3所示為一個(gè)進(jìn)程調(diào)用函數(shù)的時(shí)間戳記錄示意圖。由于Tl時(shí)刻入樁 函數(shù)記錄函數(shù)Functionl調(diào)用;T2時(shí)刻入樁函數(shù)記錄函數(shù)Function2調(diào)用;T3 時(shí)刻出樁函數(shù)記錄退出函數(shù)Function2的調(diào)用;T4時(shí)刻出樁函數(shù)記錄退出函數(shù) F皿ctionl的調(diào)用,因此,根據(jù)調(diào)用記錄可以知道函數(shù)間調(diào)用關(guān)系如下void Function 1 ()Function2 ();因此,可以計(jì)算出函數(shù)Functionl的運(yùn)行時(shí)間為T(mén)4-T1;函數(shù)Function2的 運(yùn)行時(shí)間為T(mén)3-T2 實(shí)例3:采用一個(gè)記錄區(qū)中的記錄,統(tǒng)計(jì)一個(gè)進(jìn)程中的各個(gè)函數(shù)的運(yùn)行時(shí) 間。此時(shí),除了包括入樁函數(shù)和出樁函數(shù),還包括進(jìn)程切換鉤子函數(shù)。如圖4所示,由于在該進(jìn)程記錄區(qū)中,區(qū)別于圖2還記錄了操作系統(tǒng)調(diào)度 當(dāng)前進(jìn)程切換出運(yùn)行狀態(tài)的時(shí)間點(diǎn)T3、和重新切換入運(yùn)行狀態(tài)的時(shí)間點(diǎn)T4, 因此,可以計(jì)算出函數(shù)Functionl的運(yùn)行時(shí)間為(T6-T1) - ( T4-T3 ); Function2 的運(yùn)4亍時(shí)間為(T5-T2) - (T4-T3)。實(shí)例4:采用兩個(gè)記錄區(qū)中的記錄,統(tǒng)計(jì)兩個(gè)進(jìn)程中的各個(gè)函數(shù)的運(yùn)行時(shí) 間,以及一個(gè)進(jìn)程中函數(shù)在這兩個(gè)進(jìn)程中的函數(shù)占用率。如圖5或圖6所示,在兩個(gè)進(jìn)程記錄區(qū)中分別記錄了當(dāng)前函數(shù)的調(diào)用時(shí)間 戳,由于在進(jìn)程1中函數(shù)Functionl的運(yùn)行時(shí)間為(T7-T1) - (T5-T3);函數(shù) Function2的運(yùn)行時(shí)間為(T6T2) - (T5-T3 );在進(jìn)程2中,函數(shù)Function2的運(yùn) 行時(shí)間為(T9-T4) - (T8-T5 );因此,將Function2在兩個(gè)進(jìn)程中的運(yùn)行時(shí)間相 加可以計(jì)算出Function2函數(shù)的總運(yùn)行時(shí)間。計(jì)算出每個(gè)函數(shù)的運(yùn)行時(shí)間即可知道函數(shù)的占用率。同樣根據(jù)上述方法也 可得出各函數(shù)間的相對(duì)調(diào)用關(guān)系。實(shí)例5:實(shí)現(xiàn)本發(fā)明方法時(shí)的初始化流程。該流程包括以下步驟 步驟201、以進(jìn)程為單位分配記錄區(qū),并建立進(jìn)程號(hào)與記錄區(qū)的對(duì)應(yīng)關(guān)系。 步驟202、設(shè)置記錄開(kāi)關(guān)和進(jìn)程記錄的函數(shù)嵌套層次范圍。 這里,為避免記錄區(qū)記錄過(guò)多的函數(shù)調(diào)用記錄或記錄區(qū)消耗過(guò)快,可以分 別設(shè)置記錄開(kāi)關(guān)、或者函數(shù)嵌套層次范圍;也可以同時(shí)設(shè)置記錄開(kāi)關(guān)和函數(shù)嵌 套層次范圍。其中,設(shè)置需要記錄的函數(shù)嵌套層次范圍,需要記錄的函數(shù)嵌套 層次范圍,目的是只對(duì)函數(shù)嵌套層次數(shù)在特定范圍內(nèi)的函數(shù)進(jìn)行統(tǒng)計(jì),以控制 記錄范圍。步驟203、啟動(dòng)硬件計(jì)數(shù)器作為時(shí)間戳讀取源;添加進(jìn)程切換鉤子函數(shù), 使發(fā)生進(jìn)程切換時(shí)在進(jìn)入和退出運(yùn)行態(tài)的進(jìn)程對(duì)應(yīng)的記錄區(qū)中正確記錄相應(yīng)的 時(shí)間戳。實(shí)例6:只包括入樁函數(shù)和出樁函數(shù)時(shí),函數(shù)時(shí)間戳記錄的流程,該流程包括以下步驟步驟301、樁函數(shù)被調(diào)用;其中,入樁函數(shù)累加當(dāng)前進(jìn)程函數(shù)調(diào)用時(shí)的函 數(shù)嵌套層次數(shù);出樁函數(shù)減少當(dāng)前進(jìn)程函數(shù)調(diào)用時(shí)的函數(shù)嵌套層次數(shù)。步驟302、查詢當(dāng)前進(jìn)程所設(shè)置的記錄開(kāi)關(guān)的狀態(tài)。當(dāng)記錄開(kāi)關(guān)為開(kāi)的狀態(tài)時(shí),表示當(dāng)前函數(shù)需要記錄在進(jìn)程中的運(yùn)行時(shí)間和運(yùn)行狀態(tài)。如果需要記錄,并且進(jìn)程中被調(diào)用函數(shù)的函數(shù)嵌套層次數(shù)在設(shè)定的函數(shù)嵌套層次范圍內(nèi),則獲取當(dāng)前進(jìn)程號(hào);被調(diào)用的樁函數(shù)根據(jù)進(jìn)程號(hào)獲取對(duì)應(yīng)的記錄區(qū),讀取當(dāng)前硬件計(jì)數(shù)器并獲取當(dāng)前時(shí)間戳;在記錄區(qū)中記錄當(dāng)前時(shí)間戳和被調(diào)用函數(shù)的名稱,這個(gè)名稱即為地址信息,也可以理解為函數(shù)狀態(tài)信 白當(dāng)記錄開(kāi)關(guān)為關(guān)的狀態(tài)時(shí),表示當(dāng)前函數(shù)不需要記錄在進(jìn)程中的運(yùn)行時(shí)間和運(yùn)行狀態(tài)。實(shí)例7:包括進(jìn)程切換鉤子函數(shù)時(shí),進(jìn)程切換時(shí)間戳記錄的流程,該流程 包括如果需要進(jìn)程切換,則獲取切入和切出進(jìn)程號(hào);才艮據(jù)切入和切出進(jìn)程號(hào) 分別獲取到對(duì)應(yīng)的記錄區(qū);讀取當(dāng)前硬件計(jì)數(shù)器并獲取當(dāng)前時(shí)間戳;在記錄區(qū) 中記錄切入和切出時(shí)間戳,以及對(duì)應(yīng)的進(jìn)程切換鉤子函數(shù)的名稱。如果進(jìn)程不 需要切換,則退出當(dāng)前進(jìn)程切換流程。一種嵌入式系統(tǒng)性能的評(píng)估系統(tǒng),該系統(tǒng)包括采集單元、統(tǒng)計(jì)單元、和 評(píng)估單元。其中,采集單元,用于對(duì)函數(shù)的時(shí)間信息、和相對(duì)應(yīng)的函數(shù)的狀態(tài) 信息進(jìn)行實(shí)時(shí)的連續(xù)釆集;將釆集結(jié)果發(fā)送給統(tǒng)計(jì)單元。統(tǒng)計(jì)單元,用于對(duì)采 集結(jié)果進(jìn)行統(tǒng)計(jì);將統(tǒng)計(jì)結(jié)果發(fā)送給評(píng)估單元。評(píng)估單元,用于才艮據(jù)統(tǒng)計(jì)結(jié)果 實(shí)現(xiàn)嵌入式系統(tǒng)的性能評(píng)估。這里,統(tǒng)計(jì)單元,進(jìn)一步用于根據(jù)采集結(jié)果,統(tǒng)計(jì)出嵌入式系統(tǒng)的當(dāng)前進(jìn) 程中,各個(gè)函數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài)。評(píng)估單元,進(jìn)一步用于將參數(shù)實(shí)現(xiàn)嵌入式系統(tǒng)實(shí)時(shí)運(yùn)行狀態(tài)的性能評(píng)估。這里,該系統(tǒng)還包括故障定位單元,用于將收到的各個(gè)函數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài)確定為故障定位指示參數(shù);根據(jù)故障定位指示參數(shù)實(shí)現(xiàn) 嵌入式系統(tǒng)的故障定位。這里,該系統(tǒng)還包括記錄區(qū)分配及關(guān)系建立單元,和實(shí)時(shí)記錄單元。其 中,記錄區(qū)分配及關(guān)系建立單元,用于以進(jìn)程為單位分配記錄區(qū),并建立進(jìn)程 號(hào)與記錄區(qū)的對(duì)應(yīng)關(guān)系;其中,記錄區(qū)包括函數(shù)的時(shí)間信息和函數(shù)的狀態(tài)信 息。實(shí)時(shí)記錄單元,用于根據(jù)設(shè)置在各函數(shù)入口的入記錄標(biāo)識(shí)、設(shè)置在各函數(shù) 出口的出記錄標(biāo)識(shí)、進(jìn)程重新切換入的切換入記錄標(biāo)識(shí)、進(jìn)程切換出的切換出 記錄標(biāo)識(shí)中的至少一種標(biāo)識(shí),來(lái)進(jìn)^f亍實(shí)時(shí)記錄。這里,入記錄標(biāo)識(shí)具體為入樁函數(shù);出記錄標(biāo)識(shí)具體為出樁函數(shù);切換入 記錄標(biāo)識(shí)和切換出記錄標(biāo)識(shí)具體采用進(jìn)程切換鉤子函數(shù)的形式;該系統(tǒng)還包括 查詢單元。其中,捕獲到入樁函數(shù)的情況下,查詢單元的一種具體實(shí)現(xiàn)為查詢單元 用于根據(jù)當(dāng)前調(diào)用入樁函數(shù)的進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與 所述進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū)。實(shí)時(shí)記錄單元的一種具體實(shí)現(xiàn)為實(shí)時(shí)記錄單元 進(jìn)一步用于將讀取的當(dāng)前時(shí)間戳確定為函數(shù)的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí), 將當(dāng)前函數(shù)進(jìn)入被調(diào)用狀態(tài)確定為函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū)。捕獲到出樁函數(shù)的情況下,查詢單元的一種具體實(shí)現(xiàn)為查詢單元用于根 據(jù)當(dāng)前調(diào)用出樁函數(shù)的進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與進(jìn)程號(hào) 相對(duì)應(yīng)的記錄區(qū)。實(shí)時(shí)記錄單元的一種具體實(shí)現(xiàn)為實(shí)時(shí)記錄單元進(jìn)一步用于 將讀取的當(dāng)前時(shí)間戳確定為函數(shù)的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將當(dāng)前函數(shù) 退出被調(diào)用狀態(tài)確定為函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū)。捕獲到進(jìn)程切換鉤子函數(shù)形式的切換入記錄標(biāo)識(shí)的情況下,查詢單元的一 種具體實(shí)現(xiàn)為查詢單元用于根據(jù)當(dāng)前切換入進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng) 關(guān)系,查詢到與進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū)。實(shí)時(shí)記錄單元的一種具體實(shí)現(xiàn)為實(shí) 時(shí)記錄單元進(jìn)一步用于將讀取的當(dāng)前時(shí)間戳確定為函數(shù)的時(shí)間信息并寫(xiě)入記錄 區(qū);同時(shí),將表征當(dāng)前進(jìn)程進(jìn)入切換入狀態(tài)的進(jìn)程切換鉤子函數(shù),確定為函數(shù) 的狀態(tài)信息并寫(xiě)入記錄區(qū)。捕獲到進(jìn)程切換鉤子函數(shù)形式的切換出記錄標(biāo)識(shí)的情況下,查詢單元的一種具體實(shí)現(xiàn)為查詢單元用于才艮據(jù)當(dāng)前切換出進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng) 關(guān)系,查詢到與進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū)。實(shí)時(shí)記錄單元的一種具體實(shí)現(xiàn)為實(shí) 時(shí)記錄單元進(jìn)一步用于將讀取的當(dāng)前時(shí)間戳確定為函數(shù)的時(shí)間信息并寫(xiě)入記錄 區(qū);同時(shí),將表征當(dāng)前進(jìn)程ii^切換出狀態(tài)的進(jìn)程切換鉤子函數(shù),確定為函數(shù) 的狀態(tài)信息并寫(xiě)入記錄區(qū)。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種嵌入式系統(tǒng)性能的評(píng)估方法,其特征在于,該方法包括對(duì)函數(shù)的時(shí)間信息、和相對(duì)應(yīng)的函數(shù)的狀態(tài)信息進(jìn)行實(shí)時(shí)的連續(xù)采集;通過(guò)對(duì)采集結(jié)果統(tǒng)計(jì)的方式,實(shí)現(xiàn)嵌入式系統(tǒng)的性能評(píng)估。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述采集結(jié)果,統(tǒng)計(jì)出 所述嵌入式系統(tǒng)的當(dāng)前進(jìn)程中,各個(gè)函數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài)并 確定為評(píng)估參數(shù);根據(jù)所述評(píng)估參數(shù)實(shí)現(xiàn)嵌入式系統(tǒng)實(shí)時(shí)運(yùn)行狀態(tài)的性能評(píng)估。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,將各個(gè)函數(shù)的運(yùn)行時(shí)間和各 個(gè)函數(shù)的運(yùn)行狀態(tài)進(jìn)一步確定為故障定位指示參數(shù);根據(jù)所述故障定位指示參 數(shù)實(shí)現(xiàn)嵌入式系統(tǒng)的故障定位。
4、 根據(jù)權(quán)利要求2或3所述的方法,其特征在于,進(jìn)行所述采集之前還包 括以進(jìn)程為單位分配記錄區(qū),并建立進(jìn)程號(hào)與記錄區(qū)的對(duì)應(yīng)關(guān)系;在所述記 錄區(qū)實(shí)時(shí)記錄當(dāng)前進(jìn)程調(diào)用函數(shù)的運(yùn)行情況;其中,所述記錄區(qū)包括所述函數(shù)的時(shí)間信息和所述函數(shù)的狀態(tài)信息。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述實(shí)時(shí)記錄具體包括根 據(jù)設(shè)置在各函數(shù)入口的入記錄標(biāo)識(shí)、設(shè)置在各函數(shù)出口的出記錄標(biāo)識(shí)、進(jìn)程重 新切換入的切換入記錄標(biāo)識(shí)、進(jìn)程切換出的切換出記錄標(biāo)識(shí)中的至少一種標(biāo)識(shí), 來(lái)進(jìn)行實(shí)時(shí)記錄。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述入記錄標(biāo)識(shí)具體為入樁 函數(shù);所述出記錄標(biāo)識(shí)具體為出樁函數(shù);所述切換入記錄標(biāo)識(shí)和切換出記錄標(biāo) 識(shí)具體采用進(jìn)程切換鉤子函數(shù)的形式;當(dāng)捕獲到所述入樁函數(shù)時(shí),所述實(shí)時(shí)記錄之前還包括根據(jù)當(dāng)前調(diào)用所述 入樁函數(shù)的進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所述進(jìn)程號(hào)相對(duì)應(yīng) 的記錄區(qū);所述實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確定為所述函數(shù)的時(shí) 間信息并寫(xiě)入記錄區(qū);同時(shí),將當(dāng)前函數(shù)進(jìn)入被調(diào)用狀態(tài)確定為所述函數(shù)的狀 態(tài)信息并寫(xiě)入記錄區(qū);或者,當(dāng)捕獲到所述出樁函數(shù)時(shí),所述實(shí)時(shí)記錄之前還包括根據(jù)當(dāng)前調(diào)用所述 出樁函數(shù)的進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所述進(jìn)程號(hào)相對(duì)應(yīng) 的記錄區(qū);所述實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確定為所述函數(shù)的時(shí) 間信息并寫(xiě)入記錄區(qū);同時(shí),將當(dāng)前函數(shù)退出被調(diào)用狀態(tài)確定為所述函數(shù)的狀 態(tài)信息并寫(xiě)入記錄區(qū);或者,當(dāng)捕獲到進(jìn)程切換鉤子函數(shù)形式的所述切換入記錄標(biāo)識(shí)時(shí),所述實(shí)時(shí)記錄 之前還包括才艮據(jù)當(dāng)前切換入進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與 所述進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū);所述實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確 定為所述函數(shù)的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將表征當(dāng)前進(jìn)程進(jìn)入切換入狀 態(tài)的進(jìn)程切換鉤子函數(shù),確定為所述函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū);或者,當(dāng)捕獲到進(jìn)程切換鉤子函數(shù)形式的所述切換出記錄標(biāo)識(shí)時(shí),所述實(shí)時(shí)記錄 之前還包括才艮據(jù)當(dāng)前切換出進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與 所述進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū);所述實(shí)時(shí)記錄進(jìn)一步為將讀取的當(dāng)前時(shí)間戳確 定為所述函數(shù)的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將表征當(dāng)前進(jìn)程進(jìn)入切換出狀 態(tài)的進(jìn)程切換鉤子函數(shù),確定為所述函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū)。
7、 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述當(dāng)前時(shí)間戳采取絕對(duì)時(shí) 間的格式時(shí),通過(guò)讀取處理器的計(jì)數(shù)器或硬件實(shí)現(xiàn)的計(jì)數(shù)器獲得;或者,所述當(dāng)前時(shí)間戳采M目對(duì)時(shí)間的格式時(shí),以標(biāo)識(shí)形式存在;其中,將從實(shí) 時(shí)時(shí)鐘或軟件系統(tǒng)時(shí)4中獲取的系統(tǒng)時(shí)間添加為所述標(biāo)識(shí)。
8、 根據(jù)權(quán)利要求6所述的方法,其特征在于,在進(jìn)行所述實(shí)時(shí)記錄時(shí),進(jìn) 一步根據(jù)對(duì)各個(gè)進(jìn)程分別設(shè)置的記錄開(kāi)關(guān)、或?qū)λ羞M(jìn)程設(shè)置的總記錄開(kāi)關(guān)的開(kāi)/關(guān)狀態(tài),對(duì)記錄的范圍進(jìn)行控制;和/或根據(jù)對(duì)各個(gè)函數(shù)設(shè)置的函數(shù)嵌套層次范圍,對(duì)記錄的范圍進(jìn)行控制。
9、 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述采集具體為采集通過(guò) 入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息、和通過(guò)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng) 前函數(shù)的時(shí)間信息;所述統(tǒng)計(jì)函數(shù)的運(yùn)行時(shí)間具體為根據(jù)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息,與入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間差值,統(tǒng)計(jì)出當(dāng)前函數(shù)的運(yùn)行時(shí)間;或者,所述采集具體為釆集通過(guò)入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間 信息、和通過(guò)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息;以及采集表征當(dāng)前 進(jìn)程進(jìn)入切換入狀態(tài)的進(jìn)程切換鉤子函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息、 和表征當(dāng)前進(jìn)程進(jìn)入切換出狀態(tài)的進(jìn)程切換鉤子函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的 時(shí)間信息;所述統(tǒng)計(jì)函數(shù)的運(yùn)行時(shí)間具體為根據(jù)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的 時(shí)間信息,與入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間差值,獲 得第一時(shí)間差值;根據(jù)表征當(dāng)前進(jìn)程進(jìn)入切換入狀態(tài)的進(jìn)程切換鉤子函數(shù)所實(shí) 時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息、與表征當(dāng)前進(jìn)程進(jìn)入切換出狀態(tài)的進(jìn)程切換鉤 子函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間差值,獲得第二時(shí)間差值; 根據(jù)所述第一時(shí)間差值與所述第二時(shí)間差值之間的差值,統(tǒng)計(jì)出當(dāng)前函數(shù)的運(yùn) 行時(shí)間。
10、 根據(jù)權(quán)利要求9所述的方法,其特征在于,該方法進(jìn)一步包括統(tǒng)計(jì) 函數(shù)占用率,具體為根據(jù)多個(gè)進(jìn)程中所述當(dāng)前函數(shù)的運(yùn)行時(shí)間的總和,統(tǒng)計(jì) 出當(dāng)前函數(shù)在多個(gè)進(jìn)程中的總運(yùn)行時(shí)間;根據(jù)當(dāng)前進(jìn)程的所述當(dāng)前函數(shù)的運(yùn)行 時(shí)間與所述總運(yùn)行時(shí)間的比值,統(tǒng)計(jì)出當(dāng)前進(jìn)程中的當(dāng)前函數(shù)在多個(gè)進(jìn)程中所 占的函數(shù)占用率。
11、 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述采集具體為采集通 過(guò)入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息、和當(dāng)前函數(shù)的狀態(tài)信息;以及 采集通過(guò)出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息、和當(dāng)前函數(shù)的狀態(tài)信息;所述統(tǒng)計(jì)函數(shù)的運(yùn)行狀態(tài)具體為根據(jù)所述出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函 數(shù)的時(shí)間信息,與所述入樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的時(shí)間信息之間的時(shí)間 差值,統(tǒng)計(jì)出當(dāng)前函數(shù)的運(yùn)行時(shí)間;結(jié)合所述當(dāng)前函數(shù)的運(yùn)行時(shí)間、所述入樁 函數(shù)所實(shí)時(shí)記錄的當(dāng)前函數(shù)的狀態(tài)信息、和所述出樁函數(shù)所實(shí)時(shí)記錄的當(dāng)前函 數(shù)的狀態(tài)信息,統(tǒng)計(jì)出在當(dāng)前函數(shù)的運(yùn)行時(shí)間內(nèi)當(dāng)前函數(shù)的運(yùn)行狀態(tài)。
12、 一種嵌入式系統(tǒng)性能的評(píng)估系統(tǒng),其特征在于,該系統(tǒng)包括采集單 元、統(tǒng)計(jì)單元、和評(píng)估單元;其中,采集單元,用于對(duì)函數(shù)的時(shí)間信息、和相對(duì)應(yīng)的函數(shù)的狀態(tài)信息進(jìn)行實(shí)時(shí) 的連續(xù)采集;將采集結(jié)果發(fā)送給所述統(tǒng)計(jì)單元;統(tǒng)計(jì)單元,用于對(duì)所述采集結(jié)果進(jìn)行統(tǒng)計(jì);將統(tǒng)計(jì)結(jié)果發(fā)送給所述評(píng)估單元;評(píng)估單元,用于才艮據(jù)所述統(tǒng)計(jì)結(jié)果實(shí)現(xiàn)嵌入式系統(tǒng)的性能評(píng)估。
13、 根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述統(tǒng)計(jì)單元,進(jìn)一步用 于根據(jù)所述采集結(jié)果,統(tǒng)計(jì)出所述嵌入式系統(tǒng)的當(dāng)前進(jìn)程中,各個(gè)函數(shù)的運(yùn)行 時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài);所述評(píng)估單元,進(jìn)一步用于將收到的各個(gè)函數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn) 行狀態(tài)確定為評(píng)估參數(shù);才艮據(jù)所述評(píng)估參數(shù)實(shí)現(xiàn)嵌入式系統(tǒng)實(shí)時(shí)運(yùn)行狀態(tài)的性 能評(píng)估。
14、 根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,該系統(tǒng)還包括故障定位 單元,用于將收到的各個(gè)函數(shù)的運(yùn)行時(shí)間和各個(gè)函數(shù)的運(yùn)行狀態(tài)確定為故障定 位指示參數(shù);根據(jù)所述故障定位指示參數(shù)實(shí)現(xiàn)嵌入式系統(tǒng)的故障定位。
15、 根據(jù)權(quán)利要求13或14所述的系統(tǒng),其特征在于,該系統(tǒng)還包括記 錄區(qū)分配及關(guān)系建立單元,和實(shí)時(shí)記錄單元;其中,記錄區(qū)分配及關(guān)系建立單元,用于以進(jìn)程為單位分配記錄區(qū),并建立進(jìn)程 號(hào)與記錄區(qū)的對(duì)應(yīng)關(guān)系;其中,所述記錄區(qū)包括所述函數(shù)的時(shí)間信息和所述 函數(shù)的狀態(tài)信息;實(shí)時(shí)記錄單元,用于根據(jù)設(shè)置在各函數(shù)入口的入記錄標(biāo)識(shí)、設(shè)置在各函數(shù) 出口的出記錄標(biāo)識(shí)、進(jìn)程重新切換入的切換入記錄標(biāo)識(shí)、進(jìn)程切換出的切換出 記錄標(biāo)識(shí)中的至少一種標(biāo)識(shí),來(lái)進(jìn)行實(shí)時(shí)記錄。
16、 根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,所述入記錄標(biāo)識(shí)具體為入 樁函數(shù);所述出記錄標(biāo)識(shí)具體為出樁函數(shù);所述切換入記錄標(biāo)識(shí)和切換出記錄 標(biāo)識(shí)具體采用進(jìn)程切換鉤子函數(shù)的形式;該系統(tǒng)還包括查詢單元;其中,捕獲到所述入樁函數(shù)的情況下,所述查詢單元,用于根據(jù)當(dāng)前調(diào)用所述入 樁函數(shù)的進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所述進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū);所述實(shí)時(shí)記錄單元,進(jìn)一步用于將讀取的當(dāng)前時(shí)間戳確定為所述函數(shù) 的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將當(dāng)前函數(shù)進(jìn)入被調(diào)用狀態(tài)確定為所述函數(shù) 的狀態(tài)信息并寫(xiě)入記錄區(qū);或者,捕獲到所述出樁函數(shù)的情況下,所述查詢單元,用于根據(jù)當(dāng)前調(diào)用所述出 樁函數(shù)的進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所述進(jìn)程號(hào)相對(duì)應(yīng)的 記錄區(qū);所述實(shí)時(shí)記錄單元,進(jìn)一步用于將讀取的當(dāng)前時(shí)間戳確定為所述函數(shù) 的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將當(dāng)前函數(shù)退出被調(diào)用狀態(tài)確定為所述函數(shù) 的狀態(tài)信息并寫(xiě)入記錄區(qū);或者,捕獲到進(jìn)程切換鉤子函數(shù)形式的所述切換入記錄標(biāo)識(shí)的情況下,所述查詢 單元,用于才艮據(jù)當(dāng)前切換入進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所 述進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū);所述實(shí)時(shí)記錄單元,進(jìn)一步用于將讀取的當(dāng)前時(shí)間 戳確定為所述函數(shù)的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將表征當(dāng)前進(jìn)程進(jìn)入切換 入狀態(tài)的進(jìn)程切換鉤子函數(shù),確定為所述函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū);或者,捕獲到進(jìn)程切換鉤子函數(shù)形式的所述切換出記錄標(biāo)識(shí)的情況下,所述查詢 單元,用于根據(jù)當(dāng)前切換出進(jìn)程所在的進(jìn)程號(hào)和建立的對(duì)應(yīng)關(guān)系,查詢到與所 述進(jìn)程號(hào)相對(duì)應(yīng)的記錄區(qū);所述實(shí)時(shí)記錄單元,進(jìn)一步用于將讀取的當(dāng)前時(shí)間 戳確定為所述函數(shù)的時(shí)間信息并寫(xiě)入記錄區(qū);同時(shí),將表征當(dāng)前進(jìn)程進(jìn)入切換 出狀態(tài)的進(jìn)程切換鉤子函數(shù),確定為所述函數(shù)的狀態(tài)信息并寫(xiě)入記錄區(qū)。
全文摘要
本發(fā)明公開(kāi)了一種嵌入式系統(tǒng)性能的評(píng)估方法,該方法包括對(duì)函數(shù)的時(shí)間信息、和相對(duì)應(yīng)的函數(shù)的狀態(tài)信息進(jìn)行實(shí)時(shí)的連續(xù)采集;通過(guò)對(duì)采集結(jié)果統(tǒng)計(jì)的方式,實(shí)現(xiàn)嵌入式系統(tǒng)的性能評(píng)估。本發(fā)明還公開(kāi)了一種嵌入式系統(tǒng)性能的評(píng)估系統(tǒng),該系統(tǒng)中采集單元,用于對(duì)函數(shù)的時(shí)間信息、和相對(duì)應(yīng)的函數(shù)的狀態(tài)信息進(jìn)行實(shí)時(shí)的連續(xù)采集;將采集結(jié)果發(fā)送給統(tǒng)計(jì)單元;統(tǒng)計(jì)單元,用于對(duì)所述采集結(jié)果進(jìn)行統(tǒng)計(jì);將統(tǒng)計(jì)結(jié)果發(fā)送給評(píng)估單元;評(píng)估單元,用于根據(jù)統(tǒng)計(jì)結(jié)果實(shí)現(xiàn)嵌入式系統(tǒng)的性能評(píng)估。采用本發(fā)明的方法及系統(tǒng),能精確地對(duì)嵌入式系統(tǒng)性能進(jìn)行評(píng)估。
文檔編號(hào)G06F11/34GK101620562SQ200910090828
公開(kāi)日2010年1月6日 申請(qǐng)日期2009年8月7日 優(yōu)先權(quán)日2009年8月7日
發(fā)明者王治春, 理 肖, 陽(yáng) 趙 申請(qǐng)人:中興通訊股份有限公司