,則從所述隊列中移除循環(huán)標(biāo)識,執(zhí)行調(diào)用代碼結(jié)束判斷子模塊;
[0092]調(diào)用代碼結(jié)束判斷子模塊,用于:如果所述調(diào)用文件還有下一條代碼,則將下一條代碼作為調(diào)用代碼,執(zhí)行調(diào)用代碼檢查子模塊,否則退出所述調(diào)用文件,執(zhí)行代碼結(jié)束判斷豐旲塊。
[0093]在其中一個實施例中,所述代碼檢查模塊,還用于:
[0094]當(dāng)向預(yù)設(shè)隊列加入循環(huán)標(biāo)識時,將所述循環(huán)段落的起始標(biāo)識所在的文件名、路徑和/或行號與所述循環(huán)標(biāo)識關(guān)聯(lián)保存,并初始化統(tǒng)計參數(shù);
[0095]所述告警記錄包括:獲取最新加入隊列的循環(huán)標(biāo)識所關(guān)聯(lián)的所述循環(huán)段落的起始標(biāo)識所在的文件名、路徑和/或行號作為循環(huán)參數(shù),將所述統(tǒng)計參數(shù)加一,并向預(yù)設(shè)的告警文件中寫入所述統(tǒng)計參數(shù)和所述循環(huán)參數(shù)。
[0096]以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項】
1.一種代碼效率檢查方法,其特征在于,包括: 代碼文件獲取步驟,包括:獲取一個未檢查的代碼文件作為當(dāng)前代碼文件,所述代碼文件包括至少一條代碼,將所述代碼文件的第一條代碼作為當(dāng)前代碼,執(zhí)行代碼檢查步驟;代碼檢查步驟,包括:對當(dāng)前代碼進(jìn)行檢查:如果當(dāng)前代碼為循環(huán)段落的起始標(biāo)識,則向預(yù)設(shè)隊列中加入循環(huán)標(biāo)識,執(zhí)行代碼結(jié)束判斷步驟;如果當(dāng)前代碼滿足預(yù)設(shè)的效率規(guī)則,且所述隊列中還保存有循環(huán)標(biāo)識,則進(jìn)行告警記錄,執(zhí)行代碼結(jié)束判斷步驟;如果當(dāng)前代碼為循環(huán)段落的結(jié)束標(biāo)識,則從所述隊列中移除循環(huán)標(biāo)識,執(zhí)行代碼結(jié)束判斷步驟; 代碼結(jié)束判斷步驟,包括:如果所述代碼文件還有下一條代碼,則將下一條代碼作為當(dāng)前代碼,執(zhí)行代碼檢查步驟,否則執(zhí)行工程結(jié)束判斷步驟; 工程結(jié)束判斷步驟,包括:將所述當(dāng)前代碼文件設(shè)為已檢查的代碼文件,如果還有未檢查的代碼文件,則執(zhí)行獲取代碼文件獲取步驟,否則結(jié)束。
2.根據(jù)權(quán)利要求1所述的代碼效率檢查方法,其特征在于,還包括: 初始化步驟,包括:初始化統(tǒng)計參數(shù); 告警步驟,包括:當(dāng)所述統(tǒng)計參數(shù)超過預(yù)設(shè)告警閾值則進(jìn)行告警操作; 所述代碼檢查步驟中,所述告警記錄包括對所述統(tǒng)計參數(shù)加一。
3.根據(jù)權(quán)利要求1所述的代碼效率檢查方法,其特征在于,所述效率規(guī)則為: 所述代碼為預(yù)設(shè)的數(shù)據(jù)庫操作語句;或者 所述代碼為預(yù)設(shè)的遠(yuǎn)程過程調(diào)用語句;或者 所述代碼為預(yù)設(shè)的事務(wù)操作啟動語句,且在預(yù)設(shè)的事務(wù)操作啟動語句和預(yù)設(shè)的事務(wù)操作結(jié)束語句之間包括超過預(yù)設(shè)操作閾值數(shù)量的事務(wù)操作語句。
4.根據(jù)權(quán)利要求1所述的代碼效率檢查方法,其特征在于,所述代碼檢查步驟,還包括: 如果所述代碼為非系統(tǒng)或非第三方的函數(shù)調(diào)用,或者所述代碼為非系統(tǒng)或非第三方的類方法,則執(zhí)行調(diào)用檢查步驟; 調(diào)用檢查步驟包括: 調(diào)用文件獲取子步驟,包括:獲取所述函數(shù)調(diào)用或所述類方法的代碼文件作為調(diào)用文件,所述調(diào)用文件包括至少一條代碼,將所述調(diào)用文件的第一條代碼作為調(diào)用代碼,執(zhí)行調(diào)用代碼檢查子步驟; 調(diào)用代碼檢查子步驟,包括:對調(diào)用代碼進(jìn)行檢查:如果調(diào)用代碼為循環(huán)段落的起始標(biāo)識,則向預(yù)設(shè)隊列中加入循環(huán)標(biāo)識,執(zhí)行調(diào)用代碼結(jié)束判斷子步驟;如果調(diào)用代碼滿足預(yù)設(shè)的效率規(guī)則,且所述隊列中還保存有循環(huán)標(biāo)識,則進(jìn)行告警記錄,執(zhí)行調(diào)用代碼結(jié)束判斷子步驟;如果調(diào)用代碼為循環(huán)段落的結(jié)束標(biāo)識,則從所述隊列中移除循環(huán)標(biāo)識,執(zhí)行調(diào)用代碼結(jié)束判斷子步驟; 調(diào)用代碼結(jié)束判斷子步驟,包括:如果所述調(diào)用文件還有下一條代碼,則將下一條代碼作為調(diào)用代碼,執(zhí)行調(diào)用代碼檢查子步驟,否則退出所述調(diào)用文件,執(zhí)行代碼結(jié)束判斷步驟。
5.根據(jù)權(quán)利要求1所述的代碼效率檢查方法,其特征在于,所述代碼檢查步驟,還包括: 當(dāng)向預(yù)設(shè)隊列加入循環(huán)標(biāo)識時,將所述循環(huán)段落的起始標(biāo)識所在的文件名、路徑和/或行號與所述循環(huán)標(biāo)識關(guān)聯(lián)保存,并初始化統(tǒng)計參數(shù); 所述告警記錄包括:獲取最新加入隊列的循環(huán)標(biāo)識所關(guān)聯(lián)的所述循環(huán)段落的起始標(biāo)識所在的文件名、路徑和/或行號作為循環(huán)參數(shù),將所述統(tǒng)計參數(shù)加一,并向預(yù)設(shè)的告警文件中寫入所述統(tǒng)計參數(shù)和所述循環(huán)參數(shù)。
6.一種代碼效率檢查系統(tǒng),其特征在于,包括: 代碼文件獲取模塊,用于:獲取一個未檢查的代碼文件作為當(dāng)前代碼文件,所述代碼文件包括至少一條代碼,將所述代碼文件的第一條代碼作為當(dāng)前代碼,執(zhí)行代碼檢查模塊;代碼檢查模塊,用于:對當(dāng)前代碼進(jìn)行檢查:如果當(dāng)前代碼為循環(huán)段落的起始標(biāo)識,則向預(yù)設(shè)隊列中加入循環(huán)標(biāo)識,執(zhí)行代碼結(jié)束判斷模塊;如果當(dāng)前代碼滿足預(yù)設(shè)的效率規(guī)則,且所述隊列中還保存有循環(huán)標(biāo)識,則進(jìn)行告警記錄,執(zhí)行代碼結(jié)束判斷模塊;如果當(dāng)前代碼為循環(huán)段落的結(jié)束標(biāo)識,則從所述隊列中移除循環(huán)標(biāo)識,執(zhí)行代碼結(jié)束判斷模塊; 代碼結(jié)束判斷模塊,用于:如果所述代碼文件還有下一條代碼,則將下一條代碼作為當(dāng)前代碼,執(zhí)行代碼檢查模塊,否則執(zhí)行工程結(jié)束判斷模塊; 工程結(jié)束判斷模塊,用于:將所述當(dāng)前代碼文件設(shè)為已檢查的代碼文件,如果還有未檢查的代碼文件,則執(zhí)行獲取代碼文件獲取模塊,否則結(jié)束。
7.根據(jù)權(quán)利要求6所述的代碼效率檢查系統(tǒng),其特征在于,還包括: 初始化模塊,用于:初始化統(tǒng)計參數(shù); 告警模塊,用于:當(dāng)所述統(tǒng)計參數(shù)超過預(yù)設(shè)告警閾值則進(jìn)行告警操作; 所述代碼檢查模塊中,所述告警記錄包括對所述統(tǒng)計參數(shù)加一。
8.根據(jù)權(quán)利要求6所述的代碼效率檢查系統(tǒng),其特征在于,所述效率規(guī)則為: 所述代碼為預(yù)設(shè)的數(shù)據(jù)庫操作語句;或者 所述代碼為預(yù)設(shè)的遠(yuǎn)程過程調(diào)用語句;或者 所述代碼為預(yù)設(shè)的事務(wù)操作啟動語句,且在預(yù)設(shè)的事務(wù)操作啟動語句和預(yù)設(shè)的事務(wù)操作結(jié)束語句之間包括超過預(yù)設(shè)操作閾值數(shù)量的事務(wù)操作語句。
9.根據(jù)權(quán)利要求6所述的代碼效率檢查系統(tǒng),其特征在于,所述代碼檢查模塊,還用于: 如果所述代碼為非系統(tǒng)或非第三方的函數(shù)調(diào)用,或者所述代碼為非系統(tǒng)或非第三方的類方法,則執(zhí)行調(diào)用檢查模塊; 調(diào)用檢查模塊包括: 調(diào)用文件獲取子模塊,用于:獲取所述函數(shù)調(diào)用或所述類方法的代碼文件作為調(diào)用文件,所述調(diào)用文件包括至少一條代碼,將所述調(diào)用文件的第一條代碼作為調(diào)用代碼,執(zhí)行調(diào)用代碼檢查子模塊; 調(diào)用代碼檢查子模塊,用于:對調(diào)用代碼進(jìn)行檢查:如果調(diào)用代碼為循環(huán)段落的起始標(biāo)識,則向預(yù)設(shè)隊列中加入循環(huán)標(biāo)識,執(zhí)行調(diào)用代碼結(jié)束判斷子模塊;如果調(diào)用代碼滿足預(yù)設(shè)的效率規(guī)則,且所述隊列中還保存有循環(huán)標(biāo)識,則進(jìn)行告警記錄,執(zhí)行調(diào)用代碼結(jié)束判斷子模塊;如果調(diào)用代碼為循環(huán)段落的結(jié)束標(biāo)識,則從所述隊列中移除循環(huán)標(biāo)識,執(zhí)行調(diào)用代碼結(jié)束判斷子模塊; 調(diào)用代碼結(jié)束判斷子模塊,用于:如果所述調(diào)用文件還有下一條代碼,則將下一條代碼作為調(diào)用代碼,執(zhí)行調(diào)用代碼檢查子模塊,否則退出所述調(diào)用文件,執(zhí)行代碼結(jié)束判斷模塊。
10.根據(jù)權(quán)利要求6所述的代碼效率檢查系統(tǒng),其特征在于,所述代碼檢查模塊,還用于: 當(dāng)向預(yù)設(shè)隊列加入循環(huán)標(biāo)識時,將所述循環(huán)段落的起始標(biāo)識所在的文件名、路徑和/或行號與所述循環(huán)標(biāo)識關(guān)聯(lián)保存,并初始化統(tǒng)計參數(shù); 所述告警記錄包括:獲取最新加入隊列的循環(huán)標(biāo)識所關(guān)聯(lián)的所述循環(huán)段落的起始標(biāo)識所在的文件名、路徑和/或行號作為循環(huán)參數(shù),將所述統(tǒng)計參數(shù)加一,并向預(yù)設(shè)的告警文件中寫入所述統(tǒng)計參數(shù)和所述循環(huán)參數(shù)。
【專利摘要】本發(fā)明公開一種代碼效率檢查方法及系統(tǒng),方法包括:獲取一個未檢查的代碼文件作為當(dāng)前代碼文件,將所述代碼文件的第一條代碼作為當(dāng)前代碼;對當(dāng)前代碼進(jìn)行檢查:如果當(dāng)前代碼為循環(huán)段落的起始標(biāo)識,則向預(yù)設(shè)隊列中加入循環(huán)標(biāo)識;如果當(dāng)前代碼滿足預(yù)設(shè)的效率規(guī)則,且所述隊列中還保存有循環(huán)標(biāo)識,則進(jìn)行告警記錄;如果當(dāng)前代碼為循環(huán)段落的結(jié)束標(biāo)識,則從所述隊列中移除循環(huán)標(biāo)識;如果所述代碼文件還有下一條代碼,則將下一條代碼作為當(dāng)前代碼,否則將所述當(dāng)前代碼文件設(shè)為已檢查的代碼文件,如果還有未檢查的代碼文件,則獲取代碼文件,否則結(jié)束。本發(fā)明能夠通過掃描代碼,從中找出嚴(yán)重影響效率的代碼。
【IPC分類】G06F11-36
【公開號】CN104572451
【申請?zhí)枴緾N201410827398
【發(fā)明人】李清森
【申請人】北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司
【公開日】2015年4月29日
【申請日】2014年12月25日