欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種獲取應(yīng)用程序的啟動時間的方法、裝置及終端的制作方法

文檔序號:6624608閱讀:333來源:國知局
一種獲取應(yīng)用程序的啟動時間的方法、裝置及終端的制作方法
【專利摘要】本發(fā)明實施例公開了一種獲取應(yīng)用程序的啟動時間的方法,包括:獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程;監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù);根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長;根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長;根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長;確定所述目標(biāo)應(yīng)用程序的啟動時間為所述第一時長、所述第二時長和所述第三時長之和。本發(fā)明實施例還公開了一種獲取應(yīng)用程序的啟動時間的裝置及終端。采用本發(fā)明實施例,可以提高獲取應(yīng)用程序的啟動時間的準(zhǔn)確度。
【專利說明】一種獲取應(yīng)用程序的啟動時間的方法、裝置及終端

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種獲取應(yīng)用程序的啟動時間的方法、裝置及終端。

【背景技術(shù)】
[0002]隨著終端技術(shù)的發(fā)展,應(yīng)用程序越來越多樣化,計算機(jī)或手機(jī)等終端上運行的應(yīng)用程序也越來越多。為方便用戶使用應(yīng)用程序時,計算機(jī)等終端能夠快速響應(yīng)用戶操作,操作系統(tǒng)提供一種自啟動機(jī)制,即可以將應(yīng)用程序設(shè)置成隨操作系統(tǒng)啟動而自啟動,待操作系統(tǒng)啟動后,用戶可直接操作已自啟動的應(yīng)用程序。
[0003]雖然,開機(jī)自啟動的應(yīng)用程序可以在用戶操作時立馬實現(xiàn)快速響應(yīng),但若開機(jī)自啟動的應(yīng)用程序在開機(jī)啟動過程中耗時長,將導(dǎo)致終端的開機(jī)時間較長,用戶不得不等待較長一段時間后才能正常操作終端,影響用戶體驗。目前,眾多系統(tǒng)優(yōu)化軟件會提供啟動優(yōu)化、磁盤整理之類的功能用于提升開機(jī)速度,其最直接的表現(xiàn)就是將一些自啟動的應(yīng)用程序設(shè)置為禁止開機(jī)自啟動,從而縮短開機(jī)時間。因此,獲取開機(jī)自啟動的應(yīng)用程序在開機(jī)啟動過程中所占用的開機(jī)時間對有效實現(xiàn)系統(tǒng)優(yōu)化有著非常重要的意義。
[0004]然而,現(xiàn)有技術(shù)中,并沒有一種合理地計算自啟動應(yīng)用程序在開機(jī)啟動過程中所占用的開機(jī)時間的技術(shù)方案。


【發(fā)明內(nèi)容】

[0005]本發(fā)明實施例提供一種獲取應(yīng)用程序的啟動時間的方法、裝置及終端,可以提高獲取應(yīng)用程序在開機(jī)啟動過程中的啟動時間的準(zhǔn)確度。
[0006]本發(fā)明實施例提供一種獲取應(yīng)用程序的啟動時間的方法,包括:
[0007]獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,所述目標(biāo)應(yīng)用程序為開機(jī)自啟動應(yīng)用程序;
[0008]監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù);
[0009]根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長;
[0010]根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長;
[0011]根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長;
[0012]確定所述目標(biāo)應(yīng)用程序的啟動時間為所述第一時長、所述第二時長和所述第三時長之和。
[0013]相應(yīng)地,本發(fā)明實施例還提供一種獲取應(yīng)用程序的啟動時間的裝置,包括:
[0014]第一獲取模塊,用于獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,所述目標(biāo)應(yīng)用程序為開機(jī)自啟動應(yīng)用程序;
[0015]監(jiān)控模塊,用于監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù);
[0016]第二獲取模塊,用于根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長;
[0017]第三獲取模塊,用于根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長;
[0018]第四獲取模塊,用于根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長;
[0019]確定模塊,用于確定所述目標(biāo)應(yīng)用程序的啟動時間為所述第一時長、所述第二時長和所述第三時長之和。
[0020]相應(yīng)地,本發(fā)明實施例還提供一種終端,包括如上所述的獲取應(yīng)用程序的啟動時間的裝置。
[0021]實施本發(fā)明實施例,根據(jù)各驅(qū)動的加載時刻,獲取啟動應(yīng)用程序所需的目標(biāo)驅(qū)動所耗費的第一時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)服務(wù)所耗費的第二時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)進(jìn)程所耗費的第三時長;確定該應(yīng)用程序的啟動時間為第一時長、第二時長和第三時長之和。采用本發(fā)明實施例,可以提高獲取應(yīng)用程序在開機(jī)啟動過程中的啟動時間的準(zhǔn)確度。

【專利附圖】

【附圖說明】
[0022]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0023]圖1是本發(fā)明實施例提供的一種獲取應(yīng)用程序的啟動時間的方法的流程示意圖;
[0024]圖2是本發(fā)明實施例提供的一種獲取應(yīng)用程序的啟動時間的方法的另一流程示意圖;
[0025]圖3是本發(fā)明實施例提供的一種獲取第二時長的方法的流程示意圖;
[0026]圖4是本發(fā)明實施例提供的一種獲取第三時長的方法的流程示意圖;
[0027]圖5是本發(fā)明實施例提供的一種獲取開機(jī)啟動完畢的第三時刻的方法的流程示意圖;
[0028]圖6是本發(fā)明實施例提供的一種獲取開機(jī)啟動完畢的第三時刻的方法的另一流程不意圖;
[0029]圖7是本發(fā)明實施例提供的一種獲取應(yīng)用程序的啟動時間的裝置的結(jié)構(gòu)示意圖;
[0030]圖8是本發(fā)明實施例提供的一種獲取應(yīng)用程序的啟動時間的裝置的另一結(jié)構(gòu)示意圖;
[0031]圖9是本發(fā)明實施例提供的一種終端的結(jié)構(gòu)示意圖;
[0032]圖10是本發(fā)明實施例提供的一種獲取應(yīng)用程序的啟動時間的裝置的又一結(jié)構(gòu)示意圖。

【具體實施方式】
[0033]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明的一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0034]本發(fā)明實施例提供了一種獲取應(yīng)用程序的啟動時間的方法、裝置及終端,通過分別獲取自啟動應(yīng)用程序在開機(jī)啟動過程中啟動所需要的驅(qū)動、服務(wù)和進(jìn)程所耗費的時長來計算該應(yīng)用程序的啟動時間。采用本發(fā)明實施例,可以提高獲取應(yīng)用程序在開機(jī)啟動過程中的啟動時間的準(zhǔn)確度。下面將結(jié)合附圖1-附圖10對本發(fā)明實施例提供的一種獲取應(yīng)用程序的啟動時間的方法、裝置及終端分別進(jìn)行詳細(xì)介紹。
[0035]請參見圖1,圖1是本發(fā)明實施例提供的一種獲取應(yīng)用程序的啟動時間的方法的流程示意圖,在本發(fā)明實施例中,該方法可以包括以下步驟。
[0036]SlOl:獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,所述目標(biāo)應(yīng)用程序為開機(jī)自啟動應(yīng)用程序。
[0037]本發(fā)明實施例中,所述方法可以是應(yīng)用在計算機(jī)、手機(jī)等設(shè)備的優(yōu)化類軟件中,為方便說明,本發(fā)明實施例以計算機(jī)為例。但應(yīng)當(dāng)說明的是,本發(fā)明實施例并不限于應(yīng)用在計算機(jī)中,凡是可以實施本發(fā)明實施例的設(shè)備均屬于本發(fā)明實施例所需保護(hù)的范圍。
[0038]隨著應(yīng)用程序的功能多樣化,一些應(yīng)用程序在啟動過程中不僅要加載服務(wù)和進(jìn)程,而且還可能會加載一些驅(qū)動,例如:殺毒軟件、安全衛(wèi)士、加密軟件、云盤等應(yīng)用軟件。由于加載驅(qū)動所占用的時長一般較長,因此,這部分時間不應(yīng)該忽略不計,而應(yīng)當(dāng)計算在自啟動應(yīng)用程序的啟動時間內(nèi)。本發(fā)明實施例中,獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,其中,目標(biāo)應(yīng)用程序是指已設(shè)置為開機(jī)自啟動的應(yīng)用程序。當(dāng)然,若啟動目標(biāo)應(yīng)用程序沒有需要啟動的驅(qū)動,則獲取到啟動目標(biāo)驅(qū)動所耗費的時長為O。
[0039]S102:監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù)。
[0040]通常,在開機(jī)啟動過程中,首先檢測硬件是否滿足開機(jī)要求,若滿足,則加載操作系統(tǒng)內(nèi)核;系統(tǒng)內(nèi)核加載好后,開始加載驅(qū)動程序,其中,所述驅(qū)動程序包括硬件或設(shè)備的驅(qū)動程序和應(yīng)用程序的驅(qū)動程序;驅(qū)動程序加載完后,開始加載服務(wù)和進(jìn)程,并執(zhí)行服務(wù)和進(jìn)程需要執(zhí)行的部分操作??紤]到驅(qū)動和服務(wù)的加載時長較長,本發(fā)明實施例中,監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù),記錄開機(jī)啟動過程中所加載的各驅(qū)動和各服務(wù)的加載時亥IJ。例如:可以是預(yù)先編寫一個驅(qū)動程序,該驅(qū)動程序的功能是監(jiān)控開機(jī)啟動過程中各驅(qū)動、服務(wù)、進(jìn)程的加載動作,并將該驅(qū)動程序設(shè)置為在開機(jī)啟動過程中最先啟動,從而,監(jiān)控開機(jī)啟動過程。具體的,本發(fā)明實施例不作限制。
[0041]S103:根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長。
[0042]由于在驅(qū)動加載階段,系統(tǒng)執(zhí)行任務(wù)時屬于單任務(wù)執(zhí)行過程,因此,系統(tǒng)按順序先后加載各驅(qū)動,由于驅(qū)動加載完后無需執(zhí)行相關(guān)的操作,因此,啟動驅(qū)動所耗費的時長可以是直接根據(jù)相鄰的加載時刻確定。本發(fā)明實施例中,通過各驅(qū)動的加載時刻,獲取啟動目標(biāo)驅(qū)動所耗費的第一時長。
[0043]S104:根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長。
[0044]在服務(wù)啟動階段,由于加載服務(wù)需耗費一段時長,且服務(wù)加載完后,可能會占用CPU去執(zhí)行一些操作,如從磁盤讀寫數(shù)據(jù)等,因此,在該階段中,啟動服務(wù)所耗費的時長不僅與加載該服務(wù)所耗費的時長有關(guān),而且還與該服務(wù)占用的CPU時間和磁盤讀寫次數(shù)有關(guān)。本發(fā)明實施例中,根據(jù)加載目標(biāo)服務(wù)所耗費的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)服務(wù)所耗費的第二時長。
[0045]S105:根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長。
[0046]通常,一個服務(wù)或多個服務(wù)對應(yīng)一個進(jìn)程,在進(jìn)程啟動階段,加載進(jìn)程所耗費的時長很短,因為進(jìn)程對應(yīng)的服務(wù)已在服務(wù)啟動階段已加載完成,因此,加載進(jìn)程所耗費的時長可忽略不計。然而,進(jìn)程加載完后,需占用CPU去執(zhí)行該進(jìn)程的一些相關(guān)操作,這部分時間應(yīng)考慮在應(yīng)用程序的啟動時間內(nèi)。本發(fā)明實施例中,根據(jù)目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)進(jìn)程所耗費的第三時長。
[0047]S106:確定所述目標(biāo)應(yīng)用程序的啟動時間為所述第一時長、所述第二時長和所述第三時長之和。
[0048]例如:假設(shè)第一時長為0.2秒,第二時長為0.3秒,第三時長為0.5秒,則目標(biāo)應(yīng)用程序的啟動時間為I秒。
[0049]在本發(fā)明實施例描述的獲取應(yīng)用程序的啟動時間的方法中,根據(jù)各驅(qū)動的加載時亥IJ,獲取啟動應(yīng)用程序所需的目標(biāo)驅(qū)動所耗費的第一時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)服務(wù)所耗費的第二時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)進(jìn)程所耗費的第三時長;確定該應(yīng)用程序的啟動時間為第一時長、第二時長和第三時長之和。采用本發(fā)明實施例,可以提高獲取應(yīng)用程序在開機(jī)啟動過程中的啟動時間的準(zhǔn)確度。
[0050]請參見圖2,圖2是本發(fā)明實施例提供的一種獲取應(yīng)用程序的啟動時間的方法的另一流程示意圖,在本發(fā)明實施例中,該方法可以包括以下步驟。
[0051]S201:獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,所述目標(biāo)應(yīng)用程序為開機(jī)自啟動應(yīng)用程序。
[0052]隨著應(yīng)用程序的功能多樣化,一些應(yīng)用程序在啟動過程中不僅要加載服務(wù)和進(jìn)程,而且還可能會加載一些驅(qū)動,例如:殺毒軟件、安全衛(wèi)士、加密軟件、云盤等應(yīng)用軟件。由于加載驅(qū)動所占用的時長一般較長,因此,這部分時間不應(yīng)該忽略不計,而應(yīng)當(dāng)計算在自啟動應(yīng)用程序的啟動時間內(nèi)。本發(fā)明實施例中,獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,其中,目標(biāo)應(yīng)用程序是指已設(shè)置為開機(jī)自啟動的應(yīng)用程序。為方便說明,假設(shè)啟動目標(biāo)應(yīng)用程序A需啟動2個驅(qū)動。
[0053]S202:監(jiān)控開機(jī)時刻到啟動第一預(yù)設(shè)進(jìn)程的第一時刻的第一時間段內(nèi)所加載的驅(qū)動和第一時刻到啟動第二預(yù)設(shè)進(jìn)程的第二時刻的第二時間段內(nèi)所加載的服務(wù)。
[0054]本發(fā)明實施例中,監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù),通常,可將開機(jī)啟動過程劃分為3個階段:從開機(jī)時刻到啟動第一預(yù)設(shè)進(jìn)程的第一時刻的第一時間段為第一階段,其中,啟動第一預(yù)設(shè)進(jìn)程表示啟動用戶登錄程序;從第一時刻到啟動第二預(yù)設(shè)進(jìn)程的第二時刻的第二時間段為第二階段,其中,啟動第二預(yù)設(shè)進(jìn)程表示啟動桌面顯示程序;從第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段為第三階段。在第一階段中,主要是進(jìn)行硬件檢測,啟動和加載系統(tǒng)內(nèi)核,加載驅(qū)動程序;在第二階段中,主要是加載服務(wù),包括系統(tǒng)服務(wù)和應(yīng)用程序所對應(yīng)的服務(wù);在第三階段中,主要是加載進(jìn)程,以及服務(wù)和進(jìn)程占用CPU執(zhí)行一些操作。本發(fā)明實施例中,監(jiān)控開機(jī)時刻到啟動第一預(yù)設(shè)進(jìn)程的第一時刻的第一時間段內(nèi)所加載的驅(qū)動,及第一時刻到啟動第二預(yù)設(shè)進(jìn)程的第二時刻的第二時間段內(nèi)所加載的服務(wù),記錄驅(qū)動的加載時刻和服務(wù)的加載時長。
[0055]S203:根據(jù)所述第一時間段內(nèi)所加載的驅(qū)動的加載時刻,將所述驅(qū)動的加載時刻按時間先后順序進(jìn)行升序排列。
[0056]本發(fā)明實施例中,根據(jù)第一時間段內(nèi)所加載的驅(qū)動的加載時刻,將驅(qū)動的加載時刻按時間先后順序進(jìn)行升序排列。例如:假設(shè)第一時間段內(nèi)先后加載了 η個驅(qū)動,為方便描述,將η個驅(qū)動表示為(P1 ;Ρ2 ;Ρ3,…,PJ,獲取該時間段內(nèi)加載的每個驅(qū)動的加載時刻,將驅(qū)動的加載時刻按時間先后順序進(jìn)行升序排列,為方便描述,假設(shè)該η個驅(qū)動的加載時刻按時間先后順序排列后表示為It(P1) ;t(P2) ;t(P3),…,t(Pn)}。
[0057]S204:從升序排列的加載時刻中選取所述目標(biāo)驅(qū)動的加載時刻和所述目標(biāo)驅(qū)動的加載時刻的下一個加載時刻。
[0058]例如:假設(shè)目標(biāo)應(yīng)用程序A的2個驅(qū)動分別為目標(biāo)驅(qū)動P2和目標(biāo)驅(qū)動P4,則從升序排列的加載時刻中選取目標(biāo)驅(qū)動的加載時刻和目標(biāo)驅(qū)動的加載時刻的下一個加載時刻,可知,目標(biāo)驅(qū)動P2的加載時刻為t(P2),目標(biāo)驅(qū)動P2的加載時刻的下一個加載時刻為t(P3);目標(biāo)驅(qū)動P4的加載時刻為t (P4),目標(biāo)驅(qū)動P4的加載時刻的下一個加載時刻為t (P5)。
[0059]S205:獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長為所述下一個加載時刻與所述目標(biāo)驅(qū)動的加載時刻的時間差。
[0060]可知:啟動目標(biāo)驅(qū)動P2所耗費的時長為t (P3) -t (P2),啟動目標(biāo)驅(qū)動P4所耗費的時長為t (P5)-t (P4)。因此,可知目標(biāo)應(yīng)用程序A中啟動目標(biāo)驅(qū)動所耗費的第一時長為t (P3) -t (P2) +t (P5) -t (P4) ο
[0061]值得說明的是,本發(fā)明實施例中,若啟動目標(biāo)應(yīng)用程序只需要啟動一個目標(biāo)驅(qū)動,則該目標(biāo)應(yīng)用程序中啟動目標(biāo)驅(qū)動所耗費的第一時長為該目標(biāo)驅(qū)動的加載時刻的下一個加載時刻與該目標(biāo)驅(qū)動的加載時刻的時間差;若目標(biāo)應(yīng)用程序包括多個目標(biāo)驅(qū)動,則該目標(biāo)應(yīng)用程序中啟動目標(biāo)驅(qū)動所耗費的時長為啟動這多個目標(biāo)驅(qū)動分別所耗費的時長的總和。
[0062]若目標(biāo)驅(qū)動為第一時間段內(nèi)最后加載的一個驅(qū)動,則可進(jìn)一步監(jiān)控位于該驅(qū)動后第一個被加載的系統(tǒng)進(jìn)程或系統(tǒng)服務(wù)的加載時刻,從而根據(jù)該進(jìn)程或服務(wù)的加載時刻與加載目標(biāo)驅(qū)動的加載時刻的時間差獲取該目標(biāo)驅(qū)動的加載時長。例如:所述第一個被加載的進(jìn)程或服務(wù)可以是smss.exe,該進(jìn)程為會話管理子系統(tǒng),用于初始化系統(tǒng)變量。也可以是,預(yù)先編寫一個附加驅(qū)動,將該附加驅(qū)動設(shè)置為在第一時間段內(nèi)最后加載,從而,目標(biāo)應(yīng)用程序中的目標(biāo)驅(qū)動總是位于該附加驅(qū)動之前加載,根據(jù)各驅(qū)動的加載時刻,獲取加載目標(biāo)驅(qū)動所耗費的時長。
[0063]S206:根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長。
[0064]在第二階段,由于加載服務(wù)需耗費一段時長,且服務(wù)加載完后,可能仍會占用CPU去執(zhí)行一些操作,如從磁盤讀寫數(shù)據(jù)等。因此,在該階段中,啟動服務(wù)所耗費的時長不僅與加載該服務(wù)所耗費的時長有關(guān),而且還與該服務(wù)占用的CPU時間和磁盤讀寫次數(shù)有關(guān)。本發(fā)明實施例中,根據(jù)加載目標(biāo)服務(wù)所耗費的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)服務(wù)所耗費的第二時長,其中,加載目標(biāo)服務(wù)所耗費的加載時長根據(jù)目標(biāo)服務(wù)的加載時刻和加載目標(biāo)服務(wù)的下一個服務(wù)的加載時刻確定。
[0065]S207:根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長。
[0066]通常,一個服務(wù)或多個服務(wù)對應(yīng)一個進(jìn)程,在進(jìn)程啟動階段,加載進(jìn)程所耗費的時長很短,因為進(jìn)程對應(yīng)的服務(wù)已在服務(wù)啟動階段已加載完成,因此,加載進(jìn)程所耗費的時長可忽略不計。然而,進(jìn)程加載完后,需占用CPU去執(zhí)行該進(jìn)程的一些相關(guān)操作,由于系統(tǒng)進(jìn)行磁盤讀寫操作基本上都是異步的,因此比較耗時;執(zhí)行磁盤讀寫操作時,系統(tǒng)會讓該程序的進(jìn)程等待,磁盤讀寫操作會由系統(tǒng)異步去執(zhí)行。因此一個進(jìn)程的磁盤讀寫次數(shù)越多,所占用的啟動時間越長,就會越拖慢系統(tǒng),而這部分時間無法反映在系統(tǒng)計算的CPU時間這個指標(biāo)上,因此,需要引入磁盤讀寫次數(shù)作為一個指標(biāo)。具體的,根據(jù)目標(biāo)進(jìn)程在第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)進(jìn)行加權(quán)計算啟動目標(biāo)進(jìn)程所耗費的第三時長。
[0067]S208:確定所述目標(biāo)應(yīng)用程序的啟動時間為所述第一時長、所述第二時長和所述第三時長之和。
[0068]在本發(fā)明實施例描述的獲取應(yīng)用程序的啟動時間的方法中,根據(jù)各驅(qū)動的加載時亥IJ,獲取啟動應(yīng)用程序所需的目標(biāo)驅(qū)動所耗費的第一時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)服務(wù)所耗費的第二時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)進(jìn)程所耗費的第三時長;確定該應(yīng)用程序的啟動時間為第一時長、第二時長和第三時長之和。采用本發(fā)明實施例,可以提高獲取應(yīng)用程序在開機(jī)啟動過程中的啟動時間的準(zhǔn)確度。
[0069]值得說明的是,在上述實施例中,根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長的方法可以如圖3所示,圖3是本發(fā)明實施例提供的一種獲取第二時長的方法的流程示意圖,該方法可以包括以下步驟。
[0070]S301:獲取目標(biāo)服務(wù)在第二時間段內(nèi)所耗費的加載時長,所述第二時間段為啟動第一預(yù)設(shè)進(jìn)程的第一時刻到啟動第二預(yù)設(shè)進(jìn)程的第二時刻的時間段。
[0071]其中,啟動第一預(yù)設(shè)進(jìn)程表示啟動用戶登錄程序,啟動第二預(yù)設(shè)進(jìn)程表示啟動桌面顯示程序。例如:第一預(yù)設(shè)進(jìn)程可以設(shè)置為winlogon.exe進(jìn)程,該進(jìn)程用于管理用戶登錄和退出;第二預(yù)設(shè)進(jìn)程可以設(shè)置為explorer, exe進(jìn)程,該進(jìn)程是Windows程序管理器或者Windows資源管理器,它用于管理Windows圖形殼,包括開始菜單、任務(wù)欄、桌面和文件管理,刪除該程序會導(dǎo)致Windows圖形界面無法使用。在開機(jī)啟動過程中,所有服務(wù)均由服務(wù)管理程序(services, exe)采用串行方式加載,每加載一個服務(wù),都會等待該服務(wù)返回一個成功消息后,才會開始啟動下一個服務(wù);因此,這個等待時間就是服務(wù)管理程序加載該服務(wù)所耗費的加載時間。本發(fā)明實施例中,獲取目標(biāo)服務(wù)在第二時間段內(nèi)所耗費的加載時長。
[0072]值得說明的是,本發(fā)明實施例中,若啟動目標(biāo)應(yīng)用程序只需要啟動一個目標(biāo)服務(wù),則該目標(biāo)應(yīng)用程序中加載目標(biāo)服務(wù)所耗費的加載時長為該目標(biāo)服務(wù)的加載時長;若啟動目標(biāo)應(yīng)用程序需要啟動多個目標(biāo)服務(wù),則該目標(biāo)應(yīng)用程序中加載目標(biāo)服務(wù)所耗費的加載時長為加載這多個目標(biāo)服務(wù)分別所耗費的加載時長的總和。
[0073]S302:獲取目標(biāo)服務(wù)在所述第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)。
[0074]在第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi),主要是執(zhí)行服務(wù)和進(jìn)程所需要執(zhí)行的一些操作,如軟件初始化、檢測是否需要升級、更新病毒庫等等。因此,第三時間段的時長主要由占用CPU的時間和CPU的空閑時間組成,通常,在第三時間段內(nèi)系統(tǒng)很忙,CPU的空閑時間基本上都是由等待磁盤讀寫操作所致。因此,本發(fā)明實施例中,獲取目標(biāo)服務(wù)在第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù),根據(jù)該目標(biāo)服務(wù)在第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù),獲取目標(biāo)服務(wù)加載完成后的后續(xù)運行時間,啟動目標(biāo)服務(wù)所耗費的第二時長為加載該目標(biāo)服務(wù)所耗費的加載時長與該目標(biāo)服務(wù)加載完成后的后續(xù)運行時間之和。
[0075]S303:根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長。
[0076]本發(fā)明實施例中,假設(shè)加載目標(biāo)服務(wù)所耗費的加載時長為T21,目標(biāo)服務(wù)在第三時間段內(nèi)所占用的CPU時間為T22,所占用的磁盤讀寫次數(shù)為N22,將目標(biāo)服務(wù)在第三時間段內(nèi)所占用的CPU時間T22和磁盤讀寫次數(shù)N22進(jìn)行加權(quán),計算目標(biāo)服務(wù)在第三時間段內(nèi)的后續(xù)運行時間,從而,可確定啟動所述目標(biāo)服務(wù)所耗費的第二時長為:
[0077]T2 = T21+ (a*T22/Tcpu+ (1-a) *N22/N10) *t ;
[0078]其中,T2為啟動目標(biāo)服務(wù)所耗費的第二時長;Τ21為所述目標(biāo)服務(wù)在所述第二時間段內(nèi)所耗費的加載時長;a為加權(quán)因子,O彡a彡I?、坪蚇22分別為所述目標(biāo)服務(wù)在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù);t為所述第三時刻與所述第二時刻的時間差Jepu和Nra分別為所述第三時間段內(nèi)占用CPU的總時間和磁盤讀寫次數(shù)的總次數(shù)。
[0079]值得說明的是,在上述實施例中,根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長的方法可以如圖4所示,圖4是本發(fā)明實施例提供的一種獲取第三時長的方法的流程示意圖,該方法可以包括以下步驟。
[0080]S401:獲取目標(biāo)進(jìn)程在啟動第二預(yù)設(shè)進(jìn)程的第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù),所述啟動第二預(yù)設(shè)進(jìn)程表示啟動桌面顯示程序。
[0081]在第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi),主要是執(zhí)行服務(wù)和進(jìn)程所需要執(zhí)行的一些操作,如軟件初始化、檢測是否需要升級、更新病毒庫等等,其中,每個進(jìn)程都會有很多的磁盤讀寫操作。第三時間段的時長主要由占用CPU的時間和CPU的空閑時間組成,通常,在第三時間段內(nèi)系統(tǒng)很忙,CPU的空閑時間基本上都是由等待磁盤讀寫操作所致。本發(fā)明實施例中,獲取目標(biāo)進(jìn)程在第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù),根據(jù)該目標(biāo)進(jìn)程在第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)進(jìn)程所耗費的第三時長。
[0082]S402:根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長。
[0083]本發(fā)明實施例中,假設(shè)目標(biāo)進(jìn)程在第三時間段內(nèi)所占用的CPU時間為T33,所占用的磁盤讀寫次數(shù)為N33,根據(jù)目標(biāo)進(jìn)程在第三時間段內(nèi)所占用的CPU時間T33和磁盤讀寫次數(shù)N33進(jìn)行加權(quán),計算啟動目標(biāo)進(jìn)程所耗費的第三時長。具體的,可確定啟動所述目標(biāo)進(jìn)程所耗費的第三時長為:
[0084]T3 = (a*T33/Tcpu+(l_a)*N33/N10)*t ;
[0085]其中,T3為啟動目標(biāo)進(jìn)程所耗費的第三時長;a為加權(quán)因子,O彡a彡I ;T33和N33分別為所述目標(biāo)進(jìn)程在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù);t為所述第三時刻與所述第二時刻的時間差;Tepu和Niq分別為所述第三時間段內(nèi)占用CPU的總時間和磁盤讀寫次數(shù)的總次數(shù)。值得說明的是,獲取第三時長的加權(quán)因子與獲取第二時長的加權(quán)因子可以相同,也可以不相同,具體的,本發(fā)明實施例不作限制。
[0086]值得說明的是,在上述實施例中所指的第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi),需識別開機(jī)啟動是否完畢,從而,獲取開機(jī)啟動完畢的第三時刻。本發(fā)明實施例中,監(jiān)控開機(jī)啟動完畢的方法可以是啟動第二預(yù)設(shè)進(jìn)程后,通過檢測在預(yù)設(shè)時間內(nèi)是否有新的進(jìn)程被啟動,和/或CPU使用率是否較低,和/或磁盤讀寫次數(shù)是否較少來識別開機(jī)啟動是否完畢。具體的,本發(fā)明實施例不作限制。但優(yōu)選的,獲取開機(jī)啟動完畢的第三時刻的方法可以如圖5所示,圖5是本發(fā)明實施例提供的一種獲取開機(jī)啟動完畢的第三時刻的方法的流程示意圖,該方法可以包括以下步驟。
[0087]S501:監(jiān)控第二預(yù)設(shè)進(jìn)程的啟動操作,并獲取啟動所述第二預(yù)設(shè)進(jìn)程的第二時刻。
[0088]通常,啟動桌面顯示程序是通過啟動某個進(jìn)程來完成該功能的,為方便描述,將該進(jìn)程稱為第二預(yù)設(shè)進(jìn)程。本發(fā)明實施例中,監(jiān)控第二預(yù)設(shè)進(jìn)程的啟動操作,其中,啟動第二預(yù)設(shè)進(jìn)程表示啟動桌面顯示程序,當(dāng)監(jiān)控到第二預(yù)設(shè)進(jìn)程的啟動操作時,獲取啟動第二預(yù)設(shè)進(jìn)程的第二時刻。
[0089]S502:檢測第一預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程。
[0090]監(jiān)控到啟動第二預(yù)設(shè)進(jìn)程時,獲取啟動該第二預(yù)設(shè)進(jìn)程的第二時刻,從第二時刻開始,檢測第一預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程,若所述第一預(yù)設(shè)時長內(nèi)啟動了新的進(jìn)程,說明開機(jī)啟動未完畢,則繼續(xù)執(zhí)行步驟S502,檢測下一個第一預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程,直至其中某個第一預(yù)設(shè)時長內(nèi)沒有啟動新的進(jìn)程;若檢測到第一預(yù)設(shè)時長內(nèi)沒有啟動新的進(jìn)程,執(zhí)行步驟S503,通過CPU使用率來識別開機(jī)是否啟動完畢。
[0091]S503:檢測所述第一預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第一預(yù)設(shè)值。
[0092]若檢測到所述第一預(yù)設(shè)時長內(nèi)的CPU使用率低于第一預(yù)設(shè)值,而該第一預(yù)設(shè)時長內(nèi)又沒有啟動新的進(jìn)程,因此,可以認(rèn)為開機(jī)啟動完畢,于是執(zhí)行步驟S506,以獲取開機(jī)啟動完畢的第三時刻。若檢測到所述第一預(yù)設(shè)時長內(nèi)的CPU使用率不低于第一預(yù)設(shè)值,雖然該第一預(yù)設(shè)時長內(nèi)沒有啟動新的進(jìn)程,但CPU使用率仍然較高,認(rèn)為開機(jī)啟動未完畢,于是執(zhí)行步驟S504,經(jīng)過更長的預(yù)設(shè)時長后再識別開機(jī)啟動是否完畢,提高獲取開機(jī)時間的準(zhǔn)確度。
[0093]值得說明的是,還可以是若檢測到第一預(yù)設(shè)時長內(nèi)的CPU使用率低于第一預(yù)設(shè)值時,進(jìn)一步檢測第一預(yù)設(shè)時長內(nèi)的磁盤讀寫次數(shù)是否低于預(yù)設(shè)次數(shù),若是,則認(rèn)為開機(jī)啟動完畢;若否,則繼續(xù)等待下一個第一預(yù)設(shè)時長內(nèi)是否滿足沒有啟動新的進(jìn)程、CPU使用率低于第一預(yù)設(shè)值和磁盤讀寫次數(shù)低于預(yù)設(shè)次數(shù)。具體的,本發(fā)明實施例不作限制。
[0094]S504:檢測第二預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程。
[0095]若第一預(yù)設(shè)時長內(nèi)的CPU使用率不低于所述第一預(yù)設(shè)值,則繼續(xù)監(jiān)測從當(dāng)前時刻開始的第二預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程,若在第二預(yù)設(shè)時長內(nèi)沒有啟動新的進(jìn)程,執(zhí)行步驟S505,根據(jù)第二預(yù)設(shè)時長內(nèi)的CPU使用率進(jìn)一步識別開機(jī)啟動是否完畢,提高獲取啟動時間的準(zhǔn)確度。若第二預(yù)設(shè)時長內(nèi)啟動了新的進(jìn)程,則可以認(rèn)為開機(jī)啟動未完畢,繼續(xù)執(zhí)行步驟S504,繼續(xù)等待下一個第一預(yù)設(shè)時長或第二預(yù)設(shè)時長后再采用上述方法識別是否開機(jī)啟動完畢。
[0096]S505:檢測所述第二預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第二預(yù)設(shè)值,所述第二預(yù)設(shè)值大于所述第一預(yù)設(shè)值。
[0097]若檢測到第一預(yù)設(shè)時長內(nèi)沒有啟動新的進(jìn)程、第一預(yù)設(shè)時長內(nèi)的CPU使用率不低于第一預(yù)設(shè)值,且第二預(yù)設(shè)時長內(nèi)也沒有啟動新的進(jìn)程,檢測第二預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第二預(yù)設(shè)值,若低于第二預(yù)設(shè)值,說明開機(jī)啟動完畢,執(zhí)行步驟506;若不低于第二預(yù)設(shè)值,說明開機(jī)啟動未完畢,則繼續(xù)執(zhí)行步驟S505。值得說明的是,所述第二預(yù)設(shè)值大于所述第一預(yù)設(shè)值。例如:第一預(yù)設(shè)值為20%,第二預(yù)設(shè)值為50%。
[0098]S506:獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻。
[0099]若檢測到第一預(yù)設(shè)時長內(nèi)沒有啟動新的進(jìn)程,且第一預(yù)設(shè)時長內(nèi)的CPU使用率低于第一預(yù)設(shè)值;或者第一預(yù)設(shè)時長內(nèi)的CPU使用率不低于第一預(yù)設(shè)值,但第二預(yù)設(shè)時長內(nèi)沒有啟動新的進(jìn)程,且第二預(yù)設(shè)時長內(nèi)的CPU使用率低于第二預(yù)設(shè)值,則說明開機(jī)啟動完畢。獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻。
[0100]值得說明的是,在上述實施例中的第三時間段內(nèi),獲取開機(jī)啟動完畢的第三時刻,還可以如圖6所示,圖6是本發(fā)明實施例提供的一種獲取開機(jī)啟動完畢的第三時刻的方法的另一流程示意圖,該方法可以包括以下步驟。
[0101]S601:監(jiān)控第二預(yù)設(shè)進(jìn)程的啟動操作,并獲取啟動所述第二預(yù)設(shè)進(jìn)程的第二時刻。
[0102]所述啟動第二預(yù)設(shè)進(jìn)程表示啟動桌面顯示程序,本發(fā)明實施例中,所述第二預(yù)設(shè)進(jìn)程可以為explorer, exe進(jìn)程,explorer, exe是Windows程序管理器或者Windows資源管理器,它用于管理Windows圖形殼,包括開始菜單、任務(wù)欄、桌面和文件管理,刪除該程序會導(dǎo)致Windows圖形界面無法使用。
[0103]S602:檢測第三預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第三預(yù)設(shè)值。
[0104]本發(fā)明實施例中,第三預(yù)設(shè)時長僅用于區(qū)分第一預(yù)設(shè)時長和第二預(yù)設(shè)時長,監(jiān)控到啟動所述第二預(yù)設(shè)進(jìn)程時,獲取啟動第二預(yù)設(shè)進(jìn)程的第二時刻,從第二時刻開始,檢測第三預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第三預(yù)設(shè)值,若低于第三預(yù)設(shè)值,執(zhí)行步驟S603 ;若不低于第三預(yù)設(shè)值,說明開機(jī)啟動未完畢,則繼續(xù)執(zhí)行步驟S602,檢測下一個第三預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第三預(yù)設(shè)值,直至其中某個第三預(yù)設(shè)時長內(nèi)的CPU使用率低于第三預(yù)設(shè)值。通常,第三預(yù)設(shè)值小于上述方案中所描述的第一預(yù)設(shè)值,例如:假設(shè)上述方案中第一預(yù)設(shè)值為20%,第二預(yù)設(shè)值為50%,則第三預(yù)設(shè)值可以為10%。
[0105]S603:若所述CPU使用率低于所述第三預(yù)設(shè)值,獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻。
[0106]本發(fā)明實施例中,可準(zhǔn)確識別出開機(jī)啟動完畢的第三時刻,從而提高獲取應(yīng)用程序的啟動時間的準(zhǔn)確度。
[0107]下面為本發(fā)明裝置實施例,本發(fā)明裝置實施例與本發(fā)明方法實施例屬于同一構(gòu)思,用于執(zhí)行本發(fā)明方法實施例中描述的方法。為了便于說明,本發(fā)明裝置實施例僅示出與本發(fā)明裝置實施例相關(guān)的部分,具體技術(shù)細(xì)節(jié)未揭示的,請參照本發(fā)明方法實施例的描述,此處不再一一贅述。
[0108]請參見圖7,圖7是本發(fā)明實施例提供的一種獲取應(yīng)用程序的啟動時間的裝置的結(jié)構(gòu)示意圖,在本發(fā)明實施例中,該裝置可以包括:第一獲取模塊101、監(jiān)控模塊102、第二獲取模塊103、第三獲取模塊104、第四獲取模塊105和確定模塊106。
[0109]第一獲取模塊101,用于獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,所述目標(biāo)應(yīng)用程序為開機(jī)自啟動應(yīng)用程序。
[0110]監(jiān)控模塊102,用于監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù)。
[0111]第二獲取模塊103,用于根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長。
[0112]第三獲取模塊104,用于根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長。
[0113]第四獲取模塊105,用于根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長。
[0114]確定模塊106,用于確定所述目標(biāo)應(yīng)用程序的啟動時間為所述第一時長、所述第二時長和所述第三時長之和。
[0115]在本發(fā)明實施例描述的獲取應(yīng)用程序的啟動時間的裝置中,根據(jù)各驅(qū)動的加載時亥|J,獲取啟動應(yīng)用程序所需的目標(biāo)驅(qū)動所耗費的第一時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)服務(wù)所耗費的第二時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)進(jìn)程所耗費的第三時長;確定該應(yīng)用程序的啟動時間為第一時長、第二時長和第三時長之和。采用本發(fā)明實施例,可以提高獲取應(yīng)用程序在開機(jī)啟動過程中的啟動時間的準(zhǔn)確度。
[0116]請參見圖8,圖8是本發(fā)明實施例提供的一種獲取應(yīng)用程序的啟動時間的裝置的另一結(jié)構(gòu)示意圖,在本發(fā)明實施例中,該裝置可以包括:第一獲取模塊201、監(jiān)控模塊202、第二獲取模塊203、第三獲取模塊204、第四獲取模塊205、確定模塊206和第五獲取模塊207。
[0117]第一獲取模塊201,用于獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,所述目標(biāo)應(yīng)用程序為開機(jī)自啟動應(yīng)用程序。
[0118]監(jiān)控模塊202,用于監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù)。
[0119]第二獲取模塊203,用于根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長。
[0120]第三獲取模塊204,用于根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長。
[0121]第四獲取模塊205,用于根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長。
[0122]確定模塊206,用于確定所述目標(biāo)應(yīng)用程序的啟動時間為所述第一時長、所述第二時長和所述第三時長之和。
[0123]第五獲取模塊207,用于獲取開機(jī)啟動完畢的第三時刻。
[0124]優(yōu)選的,監(jiān)控模塊202具體用于:
[0125]監(jiān)控開機(jī)時刻到啟動第一預(yù)設(shè)進(jìn)程的第一時刻的第一時間段內(nèi)所加載的驅(qū)動,所述啟動第一預(yù)設(shè)進(jìn)程表示啟動用戶登錄程序;
[0126]監(jiān)控所述第一時刻到啟動第二預(yù)設(shè)進(jìn)程的第二時刻的第二時間段內(nèi)所加載的服務(wù),所述啟動第二預(yù)設(shè)進(jìn)程表示啟動桌面顯示程序。
[0127]優(yōu)選的,第二獲取模塊203具體用于:
[0128]根據(jù)所述第一時間段內(nèi)所加載的驅(qū)動的加載時刻,將所述驅(qū)動的加載時刻按時間先后順序進(jìn)行升序排列;
[0129]從升序排列的加載時刻中選取所述目標(biāo)驅(qū)動的加載時刻和所述目標(biāo)驅(qū)動的加載時刻的下一個加載時刻;
[0130]獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長為所述下一個加載時刻與所述目標(biāo)驅(qū)動的加載時刻的時間差。
[0131]優(yōu)選的,第三獲取模塊204具體用于:
[0132]獲取所述目標(biāo)服務(wù)在所述第二時間段內(nèi)所耗費的加載時長;
[0133]獲取所述目標(biāo)服務(wù)在所述第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)。
[0134]優(yōu)選的,第三獲取模塊204還具體用于:
[0135]確定啟動所述目標(biāo)服務(wù)所耗費的第二時長為:
[0136]T2 = T21+ (a*T22/Tcpu+ (1-a) *N22/N10) *t ;
[0137]其中,T21為所述目標(biāo)服務(wù)在所述第二時間段內(nèi)所耗費的加載時長;a為加權(quán)因子,O彡a彡I汀^和^分別為所述目標(biāo)服務(wù)在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù);t為所述第三時刻與所述第二時刻的時間差;Tepi^PNIQ分別為所述第三時間段內(nèi)占用CPU的總時間和磁盤讀寫次數(shù)的總次數(shù)。
[0138]優(yōu)選的,第四獲取模塊205具體用于:
[0139]獲取所述目標(biāo)進(jìn)程在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)。
[0140]優(yōu)選的,第四獲取模塊205還具體用于:
[0141]確定啟動所述目標(biāo)進(jìn)程所耗費的第三時長為:
[0142]T3 = (a*T33/Tcpu+(l_a)*N33/N10)*t ;
[0143]其中,a為加權(quán)因子,O彡a彡I汀^和N33分別為所述目標(biāo)進(jìn)程在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù);t為所述第三時刻與所述第二時刻的時間差汀-和N10分別為所述第三時間段內(nèi)占用CPU的總時間和磁盤讀寫次數(shù)的總次數(shù)。
[0144]優(yōu)選的,第五獲取模塊207具體用于:
[0145]監(jiān)控到啟動所述第二預(yù)設(shè)進(jìn)程時,檢測第一預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程;
[0146]若否,檢測所述第一預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第一預(yù)設(shè)值;
[0147]若所述CPU使用率低于所述第一預(yù)設(shè)值,獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻。
[0148]優(yōu)選的,第五獲取模塊207還具體用于:
[0149]若所述第一預(yù)設(shè)時長內(nèi)未啟動新的進(jìn)程,所述第一預(yù)設(shè)時長內(nèi)的所述CPU使用率不低于所述第一預(yù)設(shè)值,檢測第二預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程;
[0150]若否,檢測所述第二預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第二預(yù)設(shè)值,所述第二預(yù)設(shè)值大于所述第一預(yù)設(shè)值;
[0151]若所述CPU使用率低于所述第二預(yù)設(shè)值,執(zhí)行所述獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻的步驟。
[0152]優(yōu)選的,第五獲取模塊207還具體用于:
[0153]監(jiān)控到啟動所述第二預(yù)設(shè)進(jìn)程時,檢測第三預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第三預(yù)設(shè)值;
[0154]若所述CPU使用率低于所述第三預(yù)設(shè)值,獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻。
[0155]在本發(fā)明實施例描述的獲取應(yīng)用程序的啟動時間的裝置中,根據(jù)各驅(qū)動的加載時亥IJ,獲取啟動應(yīng)用程序所需的目標(biāo)驅(qū)動所耗費的第一時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)服務(wù)所耗費的第二時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)進(jìn)程所耗費的第三時長;確定該應(yīng)用程序的啟動時間為第一時長、第二時長和第三時長之和。采用本發(fā)明實施例,可以提高獲取應(yīng)用程序在開機(jī)啟動過程中的啟動時間的準(zhǔn)確度。
[0156]請參見圖9,圖9是本發(fā)明實施例提供的一種終端的結(jié)構(gòu)示意圖,在本發(fā)明實施例中,終端10包括如上所述的獲取應(yīng)用程序的啟動時間的裝置。所述終端可以是計算機(jī),但并不限于計算機(jī),具體的,本發(fā)明實施例不作限制。
[0157]值得說明的是,終端10包括如上所述的任一種獲取應(yīng)用程序的啟動時間的裝置,為方便說明,以其中一種獲取應(yīng)用程序的啟動時間的裝置來進(jìn)行說明。終端獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,所述目標(biāo)應(yīng)用程序為開機(jī)自啟動應(yīng)用程序;監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù);根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長;根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長;根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長;確定所述目標(biāo)應(yīng)用程序的啟動時間為所述第一時長、所述第二時長和所述第三時長之和。
[0158]在本發(fā)明實施例描述的終端中,根據(jù)各驅(qū)動的加載時刻,獲取啟動應(yīng)用程序所需的目標(biāo)驅(qū)動所耗費的第一時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)服務(wù)所耗費的第二時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)進(jìn)程所耗費的第三時長;確定該應(yīng)用程序的啟動時間為第一時長、第二時長和第三時長之和。采用本發(fā)明實施例,可以提高獲取應(yīng)用程序在開機(jī)啟動過程中的啟動時間的準(zhǔn)確度。
[0159]請參見圖10,圖10是本發(fā)明實施例提供的一種獲取應(yīng)用程序的啟動時間的裝置的又一結(jié)構(gòu)示意圖,用于執(zhí)行本發(fā)明實施例公開的獲取應(yīng)用程序的啟動時間的方法,該裝置可以包括:至少一個處理器301,例如CPU,至少一個網(wǎng)絡(luò)接口 304或者其他用戶接口303,存儲器305,至少一個通信總線302。通信總線302用于實現(xiàn)這些組件之間的連接通信。其中,用戶接口 303可選的可以包括USB接口以及其他標(biāo)準(zhǔn)接口、有線接口。網(wǎng)絡(luò)接口 304可選的可以包括W1-Fi接口以及其他無線接口。存儲器305可能包含高速RAM存儲器,也可能還包括非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器305可選的可以包含至少一個位于遠(yuǎn)離前述處理器301的存儲裝置。如圖9所示,作為一種計算機(jī)存儲介質(zhì)的存儲器305中可以包括操作系統(tǒng)3051及應(yīng)用程序3052。
[0160]在一些實施方式中,存儲器305存儲了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者他們的子集,或者他們的擴(kuò)展集:
[0161]操作系統(tǒng)3051,包含各種系統(tǒng)程序,用于實現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù);
[0162]應(yīng)用程序3052,包含目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)分塊參數(shù)的設(shè)置程序、目標(biāo)數(shù)據(jù)塊的劃分程序、目標(biāo)數(shù)據(jù)塊與數(shù)據(jù)庫中的數(shù)據(jù)塊的比較程序以及目標(biāo)數(shù)據(jù)塊的刪除程序等各種應(yīng)用程序,用于實現(xiàn)各種應(yīng)用業(yè)務(wù)。
[0163]具體地,處理器301用于調(diào)用存儲器305中存儲的程序,執(zhí)行以下操作:
[0164]獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,所述目標(biāo)應(yīng)用程序為開機(jī)自啟動應(yīng)用程序;
[0165]監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù);
[0166]根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長;
[0167]根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長;
[0168]根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長;
[0169]確定所述目標(biāo)應(yīng)用程序的啟動時間為所述第一時長、所述第二時長和所述第三時長之和。
[0170]在另一種實施例中,處理器301執(zhí)行所述監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù)的操作,包括執(zhí)行以下操作:
[0171]監(jiān)控開機(jī)時刻到啟動第一預(yù)設(shè)進(jìn)程的第一時刻的第一時間段內(nèi)所加載的驅(qū)動,所述啟動第一預(yù)設(shè)進(jìn)程表示啟動用戶登錄程序;
[0172]監(jiān)控所述第一時刻到啟動第二預(yù)設(shè)進(jìn)程的第二時刻的第二時間段內(nèi)所加載的服務(wù),所述啟動第二預(yù)設(shè)進(jìn)程表示啟動桌面顯示程序。
[0173]在另一種實施例中,處理器301執(zhí)行所述根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長的操作,包括執(zhí)行以下操作:
[0174]根據(jù)所述第一時間段內(nèi)所加載的驅(qū)動的加載時刻,將所述驅(qū)動的加載時刻按時間先后順序進(jìn)行升序排列;
[0175]從升序排列的加載時刻中選取所述目標(biāo)驅(qū)動的加載時刻和所述目標(biāo)驅(qū)動的加載時刻的下一個加載時刻;
[0176]獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長為所述下一個加載時刻與所述目標(biāo)驅(qū)動的加載時刻的時間差。
[0177]在另一種實施例中,處理器301執(zhí)行所述根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長的操作之前,還包括執(zhí)行以下操作:
[0178]獲取所述目標(biāo)服務(wù)在所述第二時間段內(nèi)所耗費的加載時長;
[0179]獲取所述目標(biāo)服務(wù)在所述第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)。
[0180]在另一種實施例中,處理器301執(zhí)行所述根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長的操作,包括執(zhí)行以下操作:
[0181]確定啟動所述目標(biāo)服務(wù)所耗費的第二時長為:
[0182]T2 = T21+ (a*T22/Tcpu+(l-a) *N22/N10) ;
[0183]其中,T21為所述目標(biāo)服務(wù)在所述第二時間段內(nèi)所耗費的加載時長;a為加權(quán)因子,O彡a彡I汀^和^分別為所述目標(biāo)服務(wù)在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù);t為所述第三時刻與所述第二時刻的時間差;Tepi^PNIQ分別為所述第三時間段內(nèi)占用CPU的總時間和磁盤讀寫次數(shù)的總次數(shù)。
[0184]在另一種實施例中,處理器301執(zhí)行所述根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長的操作之前,還包括執(zhí)行以下操作:
[0185]獲取所述目標(biāo)進(jìn)程在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)。
[0186]在另一種實施例中,處理器301執(zhí)行所述根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長的操作,包括執(zhí)行以下操作:
[0187]確定啟動所述目標(biāo)進(jìn)程所耗費的第三時長為:
[0188]T3 = (a*T33/Tcpu+(l_a)*N33/NM)*t ;
[0189]其中,a為加權(quán)因子,O彡a彡I ;T33和N33分別為所述目標(biāo)進(jìn)程在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù);t為所述第三時刻與所述第二時刻的時間差汀-和N10分別為所述第三時間段內(nèi)占用CPU的總時間和磁盤讀寫次數(shù)的總次數(shù)。
[0190]在另一種實施例中,處理器301執(zhí)行所述獲取所述目標(biāo)服務(wù)在所述第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)的操作之前,還包括執(zhí)行以下操作:
[0191]獲取開機(jī)啟動完畢的第三時刻。
[0192]在另一種實施例中,處理器301執(zhí)行所述獲取開機(jī)啟動完畢的第三時刻的操作,包括執(zhí)行以下操作:
[0193]監(jiān)控到啟動所述第二預(yù)設(shè)進(jìn)程時,檢測第一預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程;
[0194]若否,檢測所述第一預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第一預(yù)設(shè)值;
[0195]若所述CPU使用率低于所述第一預(yù)設(shè)值,獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻。
[0196]在另一種實施例中,處理器301執(zhí)行所述檢測所述第一預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第一預(yù)設(shè)值的操作之后,還包括執(zhí)行以下操作:
[0197]若所述CPU使用率不低于所述第一預(yù)設(shè)值,檢測第二預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程;
[0198]若否,檢測所述第二預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第二預(yù)設(shè)值,所述第二預(yù)設(shè)值大于所述第一預(yù)設(shè)值;
[0199]若所述CPU使用率低于所述第二預(yù)設(shè)值,執(zhí)行所述獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻的步驟。
[0200]在另一種實施例中,處理器301執(zhí)行所述獲取開機(jī)啟動完畢的第三時刻,包括執(zhí)行以下操作:
[0201]監(jiān)控到啟動所述第二預(yù)設(shè)進(jìn)程時,檢測第三預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第三預(yù)設(shè)值;
[0202]若所述CPU使用率低于所述第三預(yù)設(shè)值,獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻。
[0203]在本發(fā)明實施例描述的技術(shù)方案中,根據(jù)各驅(qū)動的加載時刻,獲取啟動應(yīng)用程序所需的目標(biāo)驅(qū)動所耗費的第一時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)服務(wù)所耗費的第二時長;根據(jù)啟動應(yīng)用程序所需的目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動目標(biāo)進(jìn)程所耗費的第三時長;確定該應(yīng)用程序的啟動時間為第一時長、第二時長和第三時長之和。采用本發(fā)明實施例,可以提高獲取應(yīng)用程序在開機(jī)啟動過程中的啟動時間的準(zhǔn)確度。
[0204]在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定是必須針對相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進(jìn)行結(jié)合和組合。
[0205]本領(lǐng)域的技術(shù)人員可以將本說明書中描述的不同實施例以及不同實施例的特征進(jìn)行結(jié)合和組合。本發(fā)明所有實施例中的模塊或單元,可以通過通用集成電路,例如 CPU (Central Processing Unit,中央處理器),或通過 ASIC (Applicat1n SpecificIntegrated Circuit,專用集成電路)來實現(xiàn)。
[0206]本發(fā)明所有實施例方法中的步驟可以根據(jù)實際需要進(jìn)行順序調(diào)整、合并和刪減;本發(fā)明所有實施例裝置中的模塊或單元可以根據(jù)實際需要進(jìn)行合并、劃分和刪減。
[0207]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實施例所屬【技術(shù)領(lǐng)域】的技術(shù)人員所理解。
[0208]在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實現(xiàn)在任何計算機(jī)可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計算機(jī)的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,"計算機(jī)可讀介質(zhì)"可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機(jī)盤盒(磁裝置),隨機(jī)存取存儲器(RAM),只讀存儲器(R0M),可擦除可編輯只讀存儲器(EPR0M或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(⑶ROM)。另外,計算機(jī)可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因為可以例如通過對紙或其他介質(zhì)進(jìn)行光學(xué)掃描,接著進(jìn)行編輯、解譯或必要時以其他合適方式進(jìn)行處理來以電子方式獲得所述程序,然后將其存儲在計算機(jī)存儲器中。
[0209]本【技術(shù)領(lǐng)域】的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
[0210]此外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。
[0211 ] 上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的范圍內(nèi)可以對上述實施例進(jìn)行變化、修改、替換和變型。
[0212] 以上所揭露的僅為本發(fā)明的較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種獲取應(yīng)用程序的啟動時間的方法,其特征在于,包括: 獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,所述目標(biāo)應(yīng)用程序為開機(jī)自啟動應(yīng)用程序; 監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù); 根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長; 根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長; 根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長; 確定所述目標(biāo)應(yīng)用程序的啟動時間為所述第一時長、所述第二時長和所述第三時長之和。
2.如權(quán)利要求1所述的方法,其特征在于,所述監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù),包括: 監(jiān)控開機(jī)時刻到啟動第一預(yù)設(shè)進(jìn)程的第一時刻的第一時間段內(nèi)所加載的驅(qū)動,所述啟動第一預(yù)設(shè)進(jìn)程表示啟動用戶登錄程序; 監(jiān)控所述第一時刻到啟動第二預(yù)設(shè)進(jìn)程的第二時刻的第二時間段內(nèi)所加載的服務(wù),所述啟動第二預(yù)設(shè)進(jìn)程表示啟動桌面顯示程序。
3.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長,包括: 根據(jù)所述第一時間段內(nèi)所加載的驅(qū)動的加載時刻,將所述驅(qū)動的加載時刻按時間先后順序進(jìn)行升序排列; 從升序排列的加載時刻中選取所述目標(biāo)驅(qū)動的加載時刻和所述目標(biāo)驅(qū)動的加載時刻的下一個加載時刻; 獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長為所述下一個加載時刻與所述目標(biāo)驅(qū)動的加載時刻的時間差。
4.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長之前,所述方法還包括: 獲取所述目標(biāo)服務(wù)在所述第二時間段內(nèi)所耗費的加載時長; 獲取所述目標(biāo)服務(wù)在所述第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)。
5.如權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長,包括: 確定啟動所述目標(biāo)服務(wù)所耗費的第二時長為:
T2 = T21+ (a*T22/Tcpu+ (1-a) *N22/N10) ; 其中,T21為所述目標(biāo)服務(wù)在所述第二時間段內(nèi)所耗費的加載時長;a為加權(quán)因子,O彡a彡I仏和^分別為所述目標(biāo)服務(wù)在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù);t為所述第三時刻與所述第二時刻的時間差;Tepi^PNIQ分別為所述第三時間段內(nèi)占用CPU的總時間和磁盤讀寫次數(shù)的總次數(shù)。
6.如權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長之前,所述方法還包括: 獲取所述目標(biāo)進(jìn)程在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)。
7.如權(quán)利要求6所述的方法,其特征在于,所述根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長,包括: 確定啟動所述目標(biāo)進(jìn)程所耗費的第三時長為:
T3 = (a*T33/Tcpu+(l-a)*N33/N10)*t ; 其中,a為加權(quán)因子,O彡a彡I。^和N33分別為所述目標(biāo)進(jìn)程在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù);t為所述第三時刻與所述第二時刻的時間差;Tepi^PNIQ分別為所述第三時間段內(nèi)占用CPU的總時間和磁盤讀寫次數(shù)的總次數(shù)。
8.如權(quán)利要求4所述的方法,其特征在于,所述獲取所述目標(biāo)服務(wù)在所述第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)之前,所述方法還包括: 獲取開機(jī)啟動完畢的第三時刻。
9.如權(quán)利要求8所述的方法,其特征在于,所述獲取開機(jī)啟動完畢的第三時刻,包括: 監(jiān)控到啟動所述第二預(yù)設(shè)進(jìn)程時,檢測第一預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程; 若否,檢測所述第一預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第一預(yù)設(shè)值; 若所述CPU使用率低于所述第一預(yù)設(shè)值,獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻。
10.如權(quán)利要求9所述的方法,其特征在于,所述檢測所述第一預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第一預(yù)設(shè)值之后,所述方法還包括: 若所述CPU使用率不低于所述第一預(yù)設(shè)值,檢測第二預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程; 若否,檢測所述第二預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第二預(yù)設(shè)值,所述第二預(yù)設(shè)值大于所述第一預(yù)設(shè)值; 若所述CPU使用率低于所述第二預(yù)設(shè)值,執(zhí)行所述獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻的步驟。
11.如權(quán)利要求8所述的方法,其特征在于,所述獲取開機(jī)啟動完畢的第三時刻,包括: 監(jiān)控到啟動所述第二預(yù)設(shè)進(jìn)程時,檢測第三預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第三預(yù)設(shè)值; 若所述CPU使用率低于所述第三預(yù)設(shè)值,獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻。
12.一種獲取應(yīng)用程序的啟動時間的裝置,其特征在于,包括: 第一獲取模塊,用于獲取啟動目標(biāo)應(yīng)用程序所需要啟動的目標(biāo)驅(qū)動、目標(biāo)服務(wù)和目標(biāo)進(jìn)程,所述目標(biāo)應(yīng)用程序為開機(jī)自啟動應(yīng)用程序; 監(jiān)控模塊,用于監(jiān)控開機(jī)啟動過程中加載的驅(qū)動和服務(wù); 第二獲取模塊,用于根據(jù)各驅(qū)動的加載時刻,獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長; 第三獲取模塊,用于根據(jù)所述目標(biāo)服務(wù)的加載時長、占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)服務(wù)所耗費的第二時長; 第四獲取模塊,用于根據(jù)所述目標(biāo)進(jìn)程占用的CPU時間和磁盤讀寫次數(shù),獲取啟動所述目標(biāo)進(jìn)程所耗費的第三時長; 確定模塊,用于確定所述目標(biāo)應(yīng)用程序的啟動時間為所述第一時長、所述第二時長和所述第三時長之和。
13.如權(quán)利要求12所述的裝置,其特征在于,所述監(jiān)控模塊具體用于: 監(jiān)控開機(jī)時刻到啟動第一預(yù)設(shè)進(jìn)程的第一時刻的第一時間段內(nèi)所加載的驅(qū)動,所述啟動第一預(yù)設(shè)進(jìn)程表示啟動用戶登錄程序; 監(jiān)控所述第一時刻到啟動第二預(yù)設(shè)進(jìn)程的第二時刻的第二時間段內(nèi)所加載的服務(wù),所述啟動第二預(yù)設(shè)進(jìn)程表示啟動桌面顯示程序。
14.如權(quán)利要求13所述的裝置,其特征在于,所述第二獲取模塊具體用于: 根據(jù)所述第一時間段內(nèi)所加載的驅(qū)動的加載時刻,將所述驅(qū)動的加載時刻按時間先后順序進(jìn)行升序排列; 從升序排列的加載時刻中選取所述目標(biāo)驅(qū)動的加載時刻和所述目標(biāo)驅(qū)動的加載時刻的下一個加載時刻; 獲取啟動所述目標(biāo)驅(qū)動所耗費的第一時長為所述下一個加載時刻與所述目標(biāo)驅(qū)動的加載時刻的時間差。
15.如權(quán)利要求13所述的裝置,其特征在于,所述第三獲取模塊具體用于: 獲取所述目標(biāo)服務(wù)在所述第二時間段內(nèi)所耗費的加載時長; 獲取所述目標(biāo)服務(wù)在所述第二時刻到開機(jī)啟動完畢的第三時刻的第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)。
16.如權(quán)利要求15所述的裝置,其特征在于,所述第三獲取模塊還具體用于: 確定啟動所述目標(biāo)服務(wù)所耗費的第二時長為:
T2 = T21+ (a*T22/Tcpu+ (1-a) *N22/N10) ; 其中,T21為所述目標(biāo)服務(wù)在所述第二時間段內(nèi)所耗費的加載時長;a為加權(quán)因子,O彡a彡I仏和^分別為所述目標(biāo)服務(wù)在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù);t為所述第三時刻與所述第二時刻的時間差;Tepi^PNIQ分別為所述第三時間段內(nèi)占用CPU的總時間和磁盤讀寫次數(shù)的總次數(shù)。
17.如權(quán)利要求15所述的裝置,其特征在于,所述第四獲取模塊具體用于: 獲取所述目標(biāo)進(jìn)程在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù)。
18.如權(quán)利要求17所述的裝置,其特征在于,所述第四獲取模塊還具體用于: 確定啟動所述目標(biāo)進(jìn)程所耗費的第三時長為:
T3 = (a*T33/Tcpu+(l-a)*N33/N10)*t ; 其中,a為加權(quán)因子,O彡a彡I。^和N33分別為所述目標(biāo)進(jìn)程在所述第三時間段內(nèi)所占用的CPU時間和磁盤讀寫次數(shù);t為所述第三時刻與所述第二時刻的時間差;Tepi^PNIQ分別為所述第三時間段內(nèi)占用CPU的總時間和磁盤讀寫次數(shù)的總次數(shù)。
19.如權(quán)利要求15所述的裝置,其特征在于,所述裝置還包括第五獲取模塊,用于: 獲取開機(jī)啟動完畢的第三時刻。
20.如權(quán)利要求19所述的裝置,其特征在于,所述第五獲取模塊具體用于: 監(jiān)控到啟動所述第二預(yù)設(shè)進(jìn)程時,檢測第一預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程; 若否,檢測所述第一預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第一預(yù)設(shè)值; 若所述CPU使用率低于所述第一預(yù)設(shè)值,獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻。
21.如權(quán)利要求20所述的裝置,其特征在于,所述第五獲取模塊還具體用于: 若所述第一預(yù)設(shè)時長內(nèi)未啟動新的進(jìn)程,所述第一預(yù)設(shè)時長內(nèi)的所述CPU使用率不低于所述第一預(yù)設(shè)值,檢測第二預(yù)設(shè)時長內(nèi)是否已啟動新的進(jìn)程; 若否,檢測所述第二預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第二預(yù)設(shè)值,所述第二預(yù)設(shè)值大于所述第一預(yù)設(shè)值; 若所述CPU使用率低于所述第二預(yù)設(shè)值,執(zhí)行所述獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻的步驟。
22.如權(quán)利要求19所述的裝置,其特征在于,所述第五獲取模塊還具體用于: 監(jiān)控到啟動所述第二預(yù)設(shè)進(jìn)程時,檢測第三預(yù)設(shè)時長內(nèi)的CPU使用率是否低于第三預(yù)設(shè)值; 若所述CPU使用率低于所述第三預(yù)設(shè)值,獲取當(dāng)前時刻為開機(jī)啟動完畢的第三時刻。
23.—種終端,其特征在于,包括如權(quán)利要求12-22任一項所述的裝置。
【文檔編號】G06F11/34GK104199692SQ201410422439
【公開日】2014年12月10日 申請日期:2014年8月25日 優(yōu)先權(quán)日:2014年8月25日
【發(fā)明者】趙昱, 陶智飛, 劉桂峰, 姚輝 申請人:北京金山安全軟件有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
石柱| 肇庆市| 昌都县| 关岭| 孟津县| 吉木萨尔县| 九江县| 鱼台县| 离岛区| 乌拉特中旗| 曲阜市| 江都市| 乌鲁木齐县| 交口县| 海阳市| 永丰县| 河东区| 周宁县| 永清县| 天全县| 阳谷县| 临朐县| 吴江市| 远安县| 托里县| 兴国县| 新沂市| 固阳县| 陵川县| 游戏| 读书| 谷城县| 手游| 武功县| 天峻县| 金门县| 崇左市| 长沙市| 兴文县| 宝鸡市| 共和县|