專利名稱:一種控制打印頻度的方法
技術領域:
本發明涉及打印頻度的控制技術,特別涉及一種控制打印頻度的方法。
背景技術:
在許多通信軟件模塊中,打印都是非常重要的。通過打印出來的信息,我們可以方便的對系統中的故障進行定位;同時,打印信息對我們觀察代碼的運行流程也很有幫助。但是,如果對打印頻度控制不好,同時需要打印的信息過多,使打印頻度達到很高,將會影響到系統的穩定性。
例如,當系統業務繁忙時,中央處理器(CPU)的占用率都比較高,如果此時再有過多的打印信息需要同時進行處理,CPU將暫時中斷對某些優先級別較低的業務的處理,切換為對某些優先級別較高的打印信息的處理,等處理完打印信息以后,再切換回來對業務進行處理。當CPU的占用率較高時,這種切換過程進行的非常頻繁,等待CPU處理的業務也將會有很多。因此,當CPU的占用率較高時,很多業務都不可能被及時處理,這樣也就必將會影響到系統的穩定性,使系統的穩定性降低,情況嚴重時還可能會使整個系統發生癱瘓。
目前,主要采用將打印信息分級以及對每一級別的打印信息設置打印開關的方式來控制打印頻度。在打印時,根據打印信息的優先級順序和該級別打印信息的打印開關狀態,優先輸出優先級別較高的打印信息。
一般情況下,現有技術中根據打印信息的重要性將打印信息分為ERROR、WARNING、INFO三個優先級別。其中,ERROR級別打印信息的優先級別最高,INFO級別打印信息的優先級別最低。優先級別高的信息,在打印時打印出來的信息最詳細,主要用于對系統運行時出現的故障進行診斷和定位;優先級別低的信息,在打印時只打印出較大概的信息,主要用于打印一些調試信息,對系統的運行狀態進行調試。
另外,為了更好的控制打印頻度,現有技術中還對每一級別的打印信息都設置一個獨立的打印開關,只有該級別打印信息的打印開關處于開啟狀態時,該級別的打印信息才允許被輸出。
采用打印信息分級方式只能靜態的控制打印頻度,通過打印開關的方式雖然可以動態的控制各級別打印信息的開啟或關閉,但還是缺少一定的靈活性。尤為重要的是,現有技術采用將打印信息分級方式和設置打印開關的方式來控制打印頻度,并沒有將打印頻度與系統當前CPU的占用率聯系在一起,也就是說,現有技術并沒有將CPU的占用率作為控制打印頻度的重要依據,這樣也就無法從根本上解決系統CPU的占用率較高時,因需要同時處理過多的打印信息而影響系統穩定性的問題。
發明內容
有鑒于此,本發明的主要目的在于提供一種控制打印頻度的方法,以根據系統當前CPU的占用率來控制打印頻度。
為達到上述目的,本發明提供了一種控制打印頻度的方法,關鍵在于,該方法至少包括以下步驟A、設置輸出打印信息時中央處理器占用率的門限值,獲取系統當前中央處理器的占用率;B、判斷系統當前中央處理器的占用率是否超過設置的輸出打印信息時中央處理器占用率的門限值,如果超過,則不輸出打印信息;否則,輸出打印信息。
上述方案中,在所述的步驟A之前進一步包括根據打印信息的重要性,將打印信息按照優先級順序進行分級。
上述方案中,步驟A中所述的設置輸出打印信息時中央處理器占用率的門限值包括按照打印信息的優先級順序,分別設置輸出各級別打印信息時中央處理器占用率的門限值,且設置的輸出各級別打印信息時中央處理器占用率門限值的大小順序,與打印信息優先級的高低順序相同。
上述方案中,所述的步驟B包括判斷系統當前中央處理器的占用率是否超過設置的輸出該級別打印信息時中央處理器占用率的門限值,如果超過,則不輸出該級別的打印信息;否則,輸出該級別的打印信息。
上述方案中,在所述的步驟A之前進一步包括按照打印信息的優先級順序,分別設置每一級別打印信息的打印開關。在所述的步驟B之前進一步包括系統的打印控制模塊收到打印信息,先根據打印信息的重要性判斷該打印信息的優先級別,然后根據該打印信息的優先級別判斷該級別打印開關的狀態,如果該級別打印開關處于開啟狀態,則執行所述的獲取系統當前中央處理器的占用率或者執行步驟B;否則,結束本流程。
上述方案中,步驟A中所述的獲取系統當前中央處理器的占用率包括系統的打印控制模塊調用操作系統提供的接口函數,并根據接口函數直接獲取系統當前中央處理器的占用率。
因此,本發明提供的這種控制打印頻度的方法,通過獲取系統當前CPU的占用率,比較系統當前CPU的占用率與設置的CPU占用率的門限值,并根據比較的結果來控制打印頻度,將CPU的占用率作為控制打印頻度的重要依據,實現了對打印頻度的有效控制。利用本發明,系統的打印控制模塊可以實時根據系統當前CPU的占用率來控制打印頻度,因而從根本上解決了系統CPU的占用率較高時,因需要同時處理過多的打印信息而影響系統穩定性的問題,保障了系統的穩定性。
圖1為本發明控制打印頻度總體技術方案的方法流程圖;圖2為依照本發明一個較佳實施例控制打印頻度的方法流程圖。
具體實施例方式
為使本發明的目的、技術方案和優點更加清楚明白,以下舉實施例,并參照附圖,對本發明進一步詳細說明。
本發明的核心內容是通過獲取系統當前CPU的占用率,比較系統當前CPU的占用率與設置的CPU占用率的門限值,并根據比較的結果來控制打印頻度,將CPU的占用率作為控制打印頻度的重要依據,實現對打印頻度的有效控制。
如圖1所示,圖1為本發明控制打印頻度總體技術方案的方法流程圖,該流程圖包括以下步驟步驟101設置輸出打印信息時CPU占用率的門限值,獲取系統當前CPU的占用率;步驟102判斷系統當前CPU的占用率是否超過設置的輸出打印信息時CPU占用率的門限值,如果超過,則不輸出打印信息;否則,輸出打印信息。
在具體實施的過程中,本發明的技術方案可以結合現有技術中將打印信息進行分級,以及對每一級別的打印信息都設置打印開關的方式來控制打印頻度。在這種情況下,步驟101設置CPU占用率的門限值時,就應當根據打印信息的級別,對每級打印信息分別設置輸出該級別打印信息時CPU占用率的門限值。
例如,設置輸出ERROR級別的打印信息時,對應CPU占用率的門限值為x%。也就是說,當系統CPU的占用率超過x%時,將不再輸出優先級別為ERROR的打印信息;而當系統CPU的占用率小于或等于x%時,將輸出優先級別為ERROR的打印信息。同理設置輸出WARNING和INFO級別的打印信息時,對應CPU占用率的門限值分別為y%和z%,其控制方式同ERROR級別的類似,這里不在贅述。
另外,因為打印信息的優先級別ERROR、WARNING和INFO是逐漸降低的,為保證較高優先級別的打印信息能夠盡可能被輸出,在設置門限值時,應當使設置的輸出各級別打印信息時CPU占用率門限值的大小順序,與打印信息優先級的高低順序相同,即x%>y%>z%。
步驟101中所述的獲取系統當前CPU的占用率,是系統的打印控制模塊調用操作系統提供的接口函數,并根據接口函數直接獲取系統當前CPU的占用率。例如,系統的打印控制模塊調用操作系統提供的接口函數UINT32VOS_GetCPULoad(UINT8*pCPULoad),通過該接口函數中的出口參數pCPULoad就可以直接得到系統當前CPU的占用率。
下面將本發明的技術方案與現有技術結合起來作為本發明的一個較佳實施例,說明本發明的技術方案具體是如何實施的。
如圖2所示,圖2為依照本發明一個較佳實施例控制打印頻度的方法流程圖,該流程圖包括以下步驟步驟201系統的打印控制模塊收到打印信息以后,首先判斷該打印信息的優先級別是否是ERROR級別,如果是ERROR級別,則執行步驟202;否則,執行步驟205;步驟202判斷ERROR級別打印開關的開關狀態,如果ERROR級別打印開關處于開啟狀態,則執行步驟203;否則,執行步驟214;步驟203獲取系統當前CPU的占用率,判斷系統當前CPU的占用率是否超過x%,如果沒有超過,則執行步驟204,否則執行步驟214;步驟204輸出打印信息,結束本流程;步驟205判斷該打印信息的優先級別是否是WARNING級別,如果是WARNING級別,則執行步驟206;否則,執行步驟209;;步驟206判斷WARNING級別打印開關的開關狀態,如果WARNING級別打印開關處于開啟狀態,則執行步驟207;否則,執行步驟214;步驟207獲取系統當前CPU的占用率,判斷系統當前CPU的占用率是否超過y%,如果沒有超過,則執行步驟208,否則執行步驟214;步驟208輸出打印信息,結束本流程;步驟209判斷該打印信息的優先級別是否是INFO級別,如果是INFO級別,則執行步驟210;否則,執行步驟213;;步驟210判斷INFO級別打印開關的開關狀態,如果INFO級別打印開關處于開啟狀態,則執行步驟211;否則,執行步驟214;步驟211獲取系統當前CPU的占用率,判斷系統當前CPU的占用率是否超過z%,如果沒有超過,則執行步驟212,否則執行步驟214;步驟212輸出打印信息,結束本流程;步驟213不輸出打印信息,結束本流程;步驟214不輸出打印信息,結束本流程。
在本發明所舉的這個較佳實施例中,系統的打印控制模塊是在判斷打印信息的優先級別和該級別打印信息的開關狀態以后,再獲取系統當前CPU的占用率的。在實際應用中,系統的打印控制模塊可以在判斷打印信息的優先級別和該級別打印信息的開關狀態之前,也可以在判斷打印信息的優先級別和該級別打印信息的開關狀態的同時,獲取系統當前CPU的占用率,這樣的技術方案與本發明技術方案的思路完全相同。
上述實施例是用于實現本發明技術方案的一個較佳實施例。在實際應用中,也可以不必對打印信息進行分級,或者不必對每級打印信息都設置打印開關,而是直接設置輸出打印信息時CPU占用率的門限值,然后獲取系統當前CPU的占用率,將獲取的系統當前CPU的占用率與設置的輸出打印信息時CPU占用率的門限值進行比較,如果超過,則不輸出打印信息;否則,輸出打印信息。這樣的實施例與本發明提供的技術方案是完全一致的,同樣能夠達到根據系統當前CPU的占用率來控制打印頻度的目的。
從上面的實施例可以看出,因此,本發明提供的這種控制打印頻度的方法,通過獲取系統當前CPU的占用率,比較系統當前CPU的占用率與設置的CPU占用率的門限值,并根據比較的結果來控制打印頻度,將CPU的占用率作為控制打印頻度的重要依據,實現了對打印頻度的有效控制。利用本發明,系統的打印控制模塊可以實時根據系統當前CPU的占用率來控制打印頻度,因而從根本上解決了系統CPU的占用率較高時,因需要同時處理過多的打印信息而影響系統穩定性的問題,保障了系統的穩定性。
以上所述的具體實施例,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施例而已,并不用于限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種控制打印頻度的方法,其特征在于,該方法至少包括以下步驟A、設置輸出打印信息時中央處理器占用率的門限值,獲取系統當前中央處理器的占用率;B、判斷系統當前中央處理器的占用率是否超過設置的輸出打印信息時中央處理器占用率的門限值,如果超過,則不輸出打印信息;否則,輸出打印信息。
2.根據權利要求1所述的方法,其特征在于,在所述的步驟A之前進一步包括根據打印信息的重要性,將打印信息按照優先級順序進行分級。
3.根據權利要求2所述的方法,其特征在于,步驟A中所述的設置輸出打印信息時中央處理器占用率的門限值包括按照打印信息的優先級順序,分別設置輸出各級別打印信息時中央處理器占用率的門限值,且設置的輸出各級別打印信息時中央處理器占用率門限值的大小順序,與打印信息優先級的高低順序相同。
4.根據權利要求3所述的方法,其特征在于,所述的步驟B包括判斷系統當前中央處理器的占用率是否超過設置的輸出該級別打印信息時中央處理器占用率的門限值,如果超過,則不輸出該級別的打印信息;否則,輸出該級別的打印信息。
5.根據權利要求2所述的方法,其特征在于,在所述的步驟A之前進一步包括按照打印信息的優先級順序,分別設置每一級別打印信息的打印開關。
6.根據權利要求5所述的方法,其特征在于,在所述的步驟B之前進一步包括系統的打印控制模塊收到打印信息,先根據打印信息的重要性判斷該打印信息的優先級別,然后根據該打印信息的優先級別判斷該級別打印開關的狀態,如果該級別打印開關處于開啟狀態,則執行所述的獲取系統當前中央處理器的占用率或者執行步驟B;否則,結束本流程。
7.根據權利要求1所述的方法,其特征在于,步驟A中所述的獲取系統當前中央處理器的占用率包括系統的打印控制模塊調用操作系統提供的接口函數,并根據接口函數直接獲取系統當前中央處理器的占用率。
全文摘要
本發明公開了一種控制打印頻度的方法,該方法至少包括以下步驟A、設置輸出打印信息時中央處理器占用率的門限值,獲取系統當前中央處理器的占用率;B、判斷系統當前中央處理器的占用率是否超過設置的輸出打印信息時中央處理器占用率的門限值,如果超過,則不輸出打印信息;否則,輸出打印信息。利用本發明,系統的打印控制模塊可以實時根據系統當前CPU的占用率來控制打印頻度,因而從根本上解決了系統CPU的占用率較高時,因需要同時處理過多的打印信息而影響系統穩定性的問題,保障了系統的穩定性。
文檔編號G06F9/50GK1790276SQ20041009882
公開日2006年6月21日 申請日期2004年12月13日 優先權日2004年12月13日
發明者林諍, 董曉宏 申請人:華為技術有限公司