一種計(jì)算機(jī)功能程序的監(jiān)控處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別是涉及一種計(jì)算機(jī)功能程序的監(jiān)控處理方法和裝置。
【背景技術(shù)】
[0002]用戶在使用計(jì)算機(jī)時(shí),經(jīng)常會(huì)遇到程序停止運(yùn)行的情況。通常情況下程序停止運(yùn)行的原因有兩種,一種是由于程序算法出現(xiàn)死循環(huán)等原因造成的程序假死,另一種是由于系統(tǒng)剩余資源過(guò)少,程序響應(yīng)用戶請(qǐng)求過(guò)慢造成的暫時(shí)性程序等待。程序假死和暫時(shí)性程序等待都表現(xiàn)為程序停止運(yùn)行,卡死不動(dòng),用戶僅通過(guò)觀察難以對(duì)兩者進(jìn)行區(qū)分。當(dāng)用戶遇到暫時(shí)性程序等待時(shí),若誤判斷為程序假死,則會(huì)重新啟動(dòng)程序,造成系統(tǒng)資源的浪費(fèi),甚至?xí)G失重要數(shù)據(jù),當(dāng)用戶遇到程序假死而誤以為是暫時(shí)性程序等待,則會(huì)選擇等待程序重新啟動(dòng),浪費(fèi)時(shí)間而且無(wú)法解決問(wèn)題。現(xiàn)有技術(shù)監(jiān)控程序是否假死,是通過(guò)人力實(shí)時(shí)監(jiān)控的方式,這種方式需要有人員進(jìn)行監(jiān)控,不停的觀察程序運(yùn)行狀態(tài),占用較高的人力成本,并且人為判斷容易出現(xiàn)錯(cuò)誤。因此有必要提出一種計(jì)算機(jī)程序的監(jiān)控方法和對(duì)應(yīng)的裝置,自動(dòng)判斷程序的運(yùn)行情況并確定是否需要重啟程序。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種計(jì)算機(jī)功能程序的監(jiān)控處理方法和裝置,實(shí)時(shí)監(jiān)控功能程序的運(yùn)行情況,能夠及時(shí)有效的解決功能程序假死的問(wèn)題。
[0004]為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種計(jì)算機(jī)功能程序的監(jiān)控處理方法,包括:
[0005]更新步驟:在功能程序中設(shè)置文件更新進(jìn)程,在所述功能程序正常運(yùn)行實(shí)現(xiàn)預(yù)期功能的過(guò)程中,所述文件更新進(jìn)程每隔預(yù)定時(shí)間間隔更新一次記錄文件;
[0006]監(jiān)控步驟:實(shí)時(shí)監(jiān)控所述記錄文件的更新?tīng)顩r,判斷所述記錄文件是否更新超時(shí);
[0007]重啟步驟:如果所述記錄文件更新超時(shí),則重啟所述功能程序。
[0008]優(yōu)選地,在所述更新步驟中,所述文件更新進(jìn)程將更新時(shí)的當(dāng)前時(shí)間寫(xiě)入所述記錄文件中作為更新時(shí)間。
[0009]優(yōu)選地,在所述監(jiān)控步驟中,如果所述更新時(shí)間與監(jiān)控時(shí)的當(dāng)前時(shí)間的間隔大于第一門(mén)限值,則確定更新超時(shí)。
[0010]優(yōu)選地,所述監(jiān)控步驟還包括,如果所述更新時(shí)間與監(jiān)控時(shí)的當(dāng)前時(shí)間的間隔小于第一門(mén)限值并且大于第二門(mén)限值,則將計(jì)數(shù)器數(shù)值加一;
[0011 ] 如果所述計(jì)數(shù)器數(shù)值超過(guò)計(jì)數(shù)器門(mén)限值,則確定更新超時(shí)。
[0012]本發(fā)明還提供一種計(jì)算機(jī)功能程序的監(jiān)控處理裝置,包括:
[0013]更新單元,用于:在功能程序中設(shè)置文件更新進(jìn)程,在所述功能程序正常運(yùn)行實(shí)現(xiàn)預(yù)期功能的過(guò)程中,所述文件更新進(jìn)程每隔預(yù)定時(shí)間間隔更新一次記錄文件;
[0014]監(jiān)控單元,用于:實(shí)時(shí)監(jiān)控所述記錄文件的更新?tīng)顩r,判斷所述記錄文件是否更新超時(shí);
[0015]重啟單元,用于:如果所述記錄文件更新超時(shí),則重啟所述功能程序。
[0016]優(yōu)選地,所述更新單元具體用于:將更新時(shí)的當(dāng)前時(shí)間寫(xiě)入所述記錄文件中作為更新時(shí)間。
[0017]優(yōu)選地,所述監(jiān)控單元具體用于:如果所述更新時(shí)間與監(jiān)控時(shí)的當(dāng)前時(shí)間的間隔大于第一門(mén)限值,則確定更新超時(shí)。
[0018]優(yōu)選地,所述監(jiān)控單元還用于:如果所述更新時(shí)間與監(jiān)控時(shí)的當(dāng)前時(shí)間的間隔小于第一門(mén)限值并且大于第二門(mén)限值,則將計(jì)數(shù)器數(shù)值加一;如果所述計(jì)數(shù)器數(shù)值超過(guò)計(jì)數(shù)器門(mén)限值,則確定更新超時(shí)。
[0019]本發(fā)明至少存在以下技術(shù)效果:
[0020]I)本發(fā)明中,通過(guò)在功能程序中設(shè)置文件更新進(jìn)程,在功能程序正常運(yùn)行時(shí),更新進(jìn)程能夠更新記錄文件,在功能程序停止運(yùn)行后,更新進(jìn)程也無(wú)法更新記錄文件,因此通過(guò)對(duì)記錄文件進(jìn)行實(shí)時(shí)監(jiān)控,就能獲知功能程序的運(yùn)行情況,如果功能程序發(fā)生假死,則重新啟動(dòng)功能程序。這種解決功能程序假死的方法及時(shí)有效并且準(zhǔn)確,避免了人力判斷功能程序假死情況的不準(zhǔn)確性。
[0021]2)本發(fā)明中,文件更新進(jìn)程將更新時(shí)的時(shí)間寫(xiě)入記錄文件,起到更新記錄文件的作用。這種更新方法只需從計(jì)算機(jī)內(nèi)存中讀取時(shí)間,然后對(duì)記錄文件進(jìn)行寫(xiě)操作,占用計(jì)算機(jī)資源少,不會(huì)影響功能程序的正常運(yùn)行。
[0022]3)本發(fā)明設(shè)置第一門(mén)限值作為判斷功能程序是否假死的依據(jù),通過(guò)比較時(shí)間的方法判斷功能程序是否假死,算法設(shè)計(jì)簡(jiǎn)單,占用內(nèi)存少,節(jié)約計(jì)算機(jī)資源。
[0023]4)本發(fā)明設(shè)置有第二門(mén)限值和計(jì)數(shù)器,通過(guò)第二門(mén)限值判斷功能程序是否運(yùn)行緩慢,當(dāng)功能程序運(yùn)行緩慢次數(shù)超過(guò)計(jì)數(shù)器門(mén)限值時(shí),則重啟功能程序,解決了功能程序未假死但運(yùn)行不暢的問(wèn)題。
【附圖說(shuō)明】
[0024]后文將參照附圖以示例性而非限制性的方式詳細(xì)描述本發(fā)明的一些具體實(shí)施例。附圖中相同的附圖標(biāo)記標(biāo)示了相同或類似的部件或部分。本領(lǐng)域技術(shù)人員應(yīng)該理解,這些附圖未必是按比例繪制的。附圖中:
[0025]圖1為本發(fā)明提供的計(jì)算機(jī)功能程序的監(jiān)控處理方法流程圖;
[0026]圖2為本發(fā)明提供的記錄文件的更新方法流程圖;
[0027]圖3為本發(fā)明提供的判斷記錄文件更新超時(shí)的第一方法流程圖;
[0028]圖4為本發(fā)明提供的判斷記錄文件更新超時(shí)的第二方法流程圖;
[0029]圖5為本發(fā)明提供的計(jì)算機(jī)功能程序的監(jiān)控處理裝置示意圖;
[0030]圖6為本發(fā)明提供的更新單元第一示意圖;
[0031]圖7為本發(fā)明提供的更新單元第二示意圖;
[0032]圖8為本發(fā)明提供的監(jiān)控單元第一示意圖;
[0033]圖9為本發(fā)明提供的監(jiān)控單元第二示意圖。
【具體實(shí)施方式】
[0034]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)具體實(shí)施例進(jìn)行詳細(xì)描述。
[0035]圖1是計(jì)算機(jī)功能程序的監(jiān)控處理方法流程圖。如圖1所示,本發(fā)明實(shí)施例提供一種計(jì)算機(jī)功能程序的監(jiān)控處理方法,包括:
[0036]步驟101:在功能程序中設(shè)置文件更新進(jìn)程,在功能程序正常運(yùn)行實(shí)現(xiàn)預(yù)期功能的過(guò)程中,文件更新進(jìn)程每隔預(yù)定時(shí)間間隔更新一次記錄文件;
[0037]步驟102:實(shí)時(shí)監(jiān)控記錄文件的更新?tīng)顩r,判斷記錄文件是否更新超時(shí);
[0038]步驟103:如果記錄文件更新超時(shí),則重啟功能程序。
[0039]可見(jiàn),在本發(fā)明實(shí)施例中,通過(guò)在功能程序中設(shè)置文件更新進(jìn)程,在功能程序正常運(yùn)行時(shí),更新進(jìn)程能夠更新記錄文件,在功能程序停止運(yùn)行后,更新進(jìn)程也無(wú)法更新記錄文件,因此通過(guò)對(duì)記錄文件進(jìn)行實(shí)時(shí)監(jiān)控,就能獲知功能程序的運(yùn)行情況,如果功能程序發(fā)生假死,則重新啟動(dòng)功能程序。這種解決功能程序假死的方法及時(shí)有效并且準(zhǔn)確,避免了人力判斷功能程序假死情況的不準(zhǔn)確性。
[0040]本發(fā)明實(shí)施例中,在功能程序中設(shè)置文件更新進(jìn)程,當(dāng)功能程序正常運(yùn)行時(shí),文件更新進(jìn)程每隔預(yù)定時(shí)間更新一次記錄文件,由此可知,記錄文件的更新情況能夠反應(yīng)功能程序是否正常運(yùn)行。對(duì)記錄文件進(jìn)行實(shí)時(shí)監(jiān)控,如果記錄文件更新超時(shí),則證明功能程序出現(xiàn)假死情況,這時(shí)系統(tǒng)就會(huì)自動(dòng)重啟功能程序。
[0041]傳統(tǒng)解決功能程序假死的方法是通過(guò)人力監(jiān)控,當(dāng)發(fā)現(xiàn)功能程序長(zhǎng)時(shí)間不動(dòng)時(shí)判斷為假死,重新啟動(dòng)功能程序。這種判斷方法很可能將功能程序運(yùn)行緩慢造成的延時(shí)誤以為是功能程序假死,重新啟動(dòng)功能程序?qū)е孪到y(tǒng)資源浪費(fèi),甚至可能丟失重要文件。本發(fā)明實(shí)施例中提供的方法中,可以通過(guò)編寫(xiě)程序每隔幾秒(具體時(shí)間可根據(jù)程序的具體狀況需求確定)監(jiān)控一次記錄文件的更新情況,比人力判斷程序是否假死更加準(zhǔn)確,并且本實(shí)施例中的方法能在功能程序假死的第一時(shí)間內(nèi)重啟功能程序,比人力重啟速度快,能夠減小對(duì)計(jì)算機(jī)運(yùn)行造成的影響。
[0042]圖2為記錄文件的更新方法流程圖。如圖2所示,在本發(fā)明的另一個(gè)實(shí)施例中,提供了一種更新記錄文件的方法,在功能程序中設(shè)置文件更新進(jìn)程,文件更新進(jìn)程每隔預(yù)定時(shí)間讀取一次當(dāng)前時(shí)間,寫(xiě)入記錄文件中,作為記錄文件的更新時(shí)間。
[0043]寫(xiě)入記錄文件的更新時(shí)間有兩種存儲(chǔ)方式,一種是按照寫(xiě)入的時(shí)間依次存儲(chǔ),讀取更新時(shí)間時(shí)讀取存儲(chǔ)在最后位置的時(shí)間,另一種是每次寫(xiě)入新的時(shí)間時(shí)自動(dòng)覆蓋掉上一次的更新時(shí)間,也就是說(shuō)記錄文件中只存儲(chǔ)最近一次的更新時(shí)間。第一種存儲(chǔ)方式可以記錄所有更新時(shí)間,便于本領(lǐng)域的人員了解功能程序的整體運(yùn)行情況。第二種存儲(chǔ)方式占用內(nèi)存空間更小,讀取更新時(shí)間時(shí)更加方便。寫(xiě)入記錄文件的更新時(shí)間不局限于以上兩種存儲(chǔ)方式,本領(lǐng)域的人員可以自行決定更新時(shí)間的存儲(chǔ)方式。
[0044]本實(shí)施例中提供的更新記錄文件的方法只需從計(jì)算機(jī)內(nèi)存中讀取時(shí)間,然后對(duì)記錄文件進(jìn)行寫(xiě)操作,更新方法簡(jiǎn)單,占用計(jì)算機(jī)資源少,不會(huì)影響其他程序的正常運(yùn)行。
[0045]對(duì)應(yīng)上述發(fā)明實(shí)施例中的記錄文件更新方法,在另一個(gè)發(fā)明實(shí)施例中,還提供了一種監(jiān)控記錄文件、判斷是否更新超時(shí)的方法。如圖3所示,監(jiān)控時(shí)讀取記錄文件中的更新時(shí)間,計(jì)算更新時(shí)間與監(jiān)控時(shí)的當(dāng)前時(shí)間的間隔,如果時(shí)間間隔小于第一門(mén)限值,則判斷記錄文件正常更新,如果時(shí)間間隔大于第一門(mén)限值,則判斷為記錄文件更新超時(shí)。
[0046]本實(shí)施例中設(shè)置第一門(mén)限值作為判斷更新超時(shí)的依據(jù),第一門(mén)限值應(yīng)當(dāng)能代表功能程序的最差運(yùn)行速度,如果監(jiān)控時(shí)的時(shí)間與更新時(shí)間的間隔大于第一門(mén)限值,則說(shuō)明記錄文件已經(jīng)長(zhǎng)時(shí)間沒(méi)更新,功能程序的運(yùn)行速度小于最差運(yùn)行速度,說(shuō)明功能程序發(fā)生假死。通過(guò)比較時(shí)間的方法判斷記錄文件更新超時(shí),算法設(shè)計(jì)簡(jiǎn)單,占用內(nèi)存少,節(jié)約計(jì)算機(jī)資源。
[0047]在另一發(fā)明實(shí)施例中,計(jì)算更新時(shí)間與監(jiān)控時(shí)的時(shí)間間隔,不僅可以判斷程序是否發(fā)生假死,還可以判斷程序是否處于較佳的運(yùn)行速度。如圖4所示,設(shè)置能夠代表功能程序較佳運(yùn)行速度的第二門(mén)限值,這里應(yīng)當(dāng)知道,第二門(mén)限值小于第一門(mén)限值。監(jiān)控時(shí)讀取記錄文件中的更新時(shí)間,計(jì)算更新時(shí)間與監(jiān)控時(shí)的當(dāng)前時(shí)間的間隔,與第一門(mén)限值和第二門(mén)限值進(jìn)行比較,如果小于第二門(mén)限值,則說(shuō)明記錄文件更新情況良好,功能程序運(yùn)行狀況良好。如果更新時(shí)間與監(jiān)控時(shí)的當(dāng)前時(shí)間的間隔小于第一門(mén)限值并且大于第二門(mén)限值,則說(shuō)明記錄文件更新速度較慢,表示功能程序未發(fā)生假死但運(yùn)行速度