本發(fā)明涉及電子技術(shù),尤其涉及一種檢測軟件運行卡慢的方法及裝置、電子設(shè)備。
背景技術(shù):
電子設(shè)備如手機、筆記本電腦、臺式機電腦、平板電腦等設(shè)備已經(jīng)成為人們生活中必不可少的組成部分,人們利用電子設(shè)備進行工作和生活。隨著科技的發(fā)展,電子設(shè)備的功能越來越強大,人們可以使用手機進行看視頻、瀏覽網(wǎng)頁、玩游戲和進行電子商務(wù)交易等活動。人們在使用電子設(shè)備的時候,往往需要安裝一些應(yīng)用程序(APP,Application,簡稱應(yīng)用)來進行,例如,用戶如果需要進行社交活動,那么用戶需要在電子設(shè)備上安裝社交類應(yīng)用如QQ,如果用戶需要與朋友聊天,那么用戶需要在電子設(shè)備上安裝聊天類應(yīng)用。
隨著用戶安裝的應(yīng)用越來越多,用戶同時使用的應(yīng)用也會越多,例如有時候用戶會同時開啟社交應(yīng)用、聊天應(yīng)用、金融應(yīng)用、視頻應(yīng)用、金融應(yīng)用等應(yīng)用。當(dāng)用戶同時開啟很多應(yīng)用的時候,電子設(shè)備就會出現(xiàn)運行很卡和運行變慢的情況(簡稱卡慢),這是因為電子設(shè)備的硬件只能同時運行有限的應(yīng)用,而且有些應(yīng)用如游戲應(yīng)用和視頻在開啟的時候,在開啟的時候非常耗資源(硬盤和內(nèi)存),那么就更容易導(dǎo)致電子設(shè)備出現(xiàn)卡慢的情況。當(dāng)電子設(shè)備出現(xiàn)卡慢的時候,必然導(dǎo)致目前已經(jīng)開啟的和將要開啟的應(yīng)用運行卡慢。
現(xiàn)有技術(shù)中,檢測應(yīng)用運行卡慢沒有成熟的方法,目前主要通過檢測電子設(shè)備的系統(tǒng)資源的占用情況?,F(xiàn)有技術(shù)1,通過檢測電子設(shè)備的系統(tǒng)資源的占用情況,并采用百分比來表示系統(tǒng)資源的占用情況,參見圖1-1,在一種情況下,系統(tǒng)資源的占用情況為45%,電子設(shè)備的上傳和下載速率都能夠正常運行(參 見圖1-1的A圖);在另一種情況下,系統(tǒng)資源的占用情況為88%,電子設(shè)備的上傳和下載速率都比較慢(參見圖1-1的B圖)。現(xiàn)有技術(shù)2,也是通過檢測電子設(shè)備的系統(tǒng)資源的占用情況,與現(xiàn)有技術(shù)1類似地,采用顏色條的多少來表示系統(tǒng)資源的占用情況,參見圖1-2,在一種情況下,系統(tǒng)資源的占用情況大概是一半(參見圖1-2的A圖);在另一種情況下,系統(tǒng)資源的占用情況幾乎快滿格(參見圖1-1的B圖)。
現(xiàn)有技術(shù)的缺點在于,1)準(zhǔn)確性不高,當(dāng)系統(tǒng)CPU或者內(nèi)存等資源占用過高時,軟件并不一定會運行卡慢,例如參見圖1-1的C圖,系統(tǒng)資源的占用情況為90%,但是電子設(shè)備的上傳和下載速率都能夠正常運行。2)用戶使用門檻高,現(xiàn)有技術(shù)中有些方案并不對用戶進行提示,而需要用戶主動地去優(yōu)化。通過檢測電子設(shè)備的系統(tǒng)資源的占用情況來提示用戶需要進行系統(tǒng)優(yōu)化,當(dāng)需要提示用戶進行優(yōu)化時,將通過相關(guān)的產(chǎn)品表現(xiàn)引導(dǎo)用戶進行優(yōu)化;參見圖1-3的A圖,當(dāng)系統(tǒng)運行卡慢的時候,會在電子設(shè)備的顯示屏上彈出提示信息130,然后用戶再進行點擊進入優(yōu)化產(chǎn)品(也可以是一個應(yīng)用)從而進行系統(tǒng)優(yōu)化;可見,現(xiàn)有技術(shù)中需要用戶注意到產(chǎn)品相關(guān)的提示,并主動地進行優(yōu)化。3)現(xiàn)有技術(shù)中并不主動提示用戶關(guān)閉哪些軟件以便進行系統(tǒng)優(yōu)化。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例為解決現(xiàn)有技術(shù)中存在的至少一個問題而提供一種檢測軟件運行卡慢的方法及裝置、電子設(shè)備,能夠提高檢測應(yīng)用運行卡慢的準(zhǔn)確性,從而提升用戶體驗。
本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的:
第一方面,本發(fā)明實施例提供一種檢測軟件運行卡慢的方法,所述方法包括:
確定正在運行在電子設(shè)備上的第一進程集合,所述第一進程集合至少包括一個第一進程;
確定所述第一進程集合中每一所述第一進程的響應(yīng)時間;
根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;
根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件。
第二方面,本發(fā)明實施例提供一種檢測軟件運行卡慢的裝置,所述裝置包括第一確定單元、第二確定單元、第三確定單元和第四確定單元,其中:
所述第一確定單元,用于確定正在運行在電子設(shè)備上的第一進程集合,所述第一進程集合至少包括一個第一進程;
所述第二確定單元,用于確定所述第一進程集合中每一所述第一進程的響應(yīng)時間;
所述第三確定單元,用于根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;
所述第四確定單元,用于根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件。
第三方面,本發(fā)明實施例提供一種電子設(shè)備,所述電子設(shè)備包括處理器和顯示屏,其中:
所述處理器,用于:
確定正在運行在所述電子設(shè)備上的第一進程集合,所述第一進程集合至少包括一個第一進程,所述第一進程對應(yīng)的軟件運行時的顯示界面顯示在所述顯示屏上;
確定所述第一進程集合中每一所述第一進程的響應(yīng)時間;
根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;
根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件。
本發(fā)明實施例提供一種檢測軟件運行卡慢的方法及裝置、電子設(shè)備,其中,先確定正在運行在電子設(shè)備上的第一進程集合,所述第一進程集合至少包括一個第一進程;然后確定所述第一進程集合中每一所述第一進程的響應(yīng)時間;再 根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;最后根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件;如此,能夠提高檢測應(yīng)用運行卡慢的準(zhǔn)確性,從而提升用戶體驗。
附圖說明
圖1-1為現(xiàn)有技術(shù)中檢測軟件運行卡慢的示意圖一;
圖1-2為現(xiàn)有技術(shù)中檢測軟件運行卡慢的示意圖二;
圖1-3為現(xiàn)有技術(shù)中優(yōu)化界面的示意圖;
圖1-4為本發(fā)明實施例一檢測軟件運行卡慢的方法的實現(xiàn)流程示意圖;
圖2為本發(fā)明實施例三檢測軟件運行卡慢的方法的實現(xiàn)流程示意圖;
圖3為本發(fā)明實施例四檢測軟件運行卡慢的方法的實現(xiàn)流程示意圖;
圖4為本發(fā)明實施例四優(yōu)化界面的示意圖一;
圖5為本發(fā)明實施例四優(yōu)化界面的示意圖二;
圖6為本發(fā)明實施例四優(yōu)化過程中和完成時的界面的示意圖;
圖7為本發(fā)明實施例六中線程的消息隊列結(jié)構(gòu)示意圖;
圖8為本發(fā)明實施例六中Windows操作系統(tǒng)從線程的隊列中提取消息的實現(xiàn)流程示意圖;
圖9為本發(fā)明實施例六檢測軟件運行卡慢的方法的實現(xiàn)流程示意圖;
圖10為本發(fā)明實施例七檢測軟件運行卡慢的裝置的組成結(jié)構(gòu)示意圖;
圖11為本發(fā)明實施例八電子設(shè)備的組成結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明的技術(shù)方案進一步詳細(xì)闡述。
實施例一
為了解決前述背景技術(shù)中存在的問題,本發(fā)明實施例提供一種檢測軟件運行卡慢的方法,該方法應(yīng)用于電子設(shè)備,該方法所實現(xiàn)的功能可以通過電子設(shè) 備中的處理器調(diào)用程序代碼(例如優(yōu)化軟件)來實現(xiàn),當(dāng)然程序代碼可以保存在計算機存儲介質(zhì)中,可見,該電子設(shè)備至少包括處理器和存儲介質(zhì)。
圖1-4為本發(fā)明實施例一檢測軟件運行卡慢的方法的實現(xiàn)流程示意圖,如圖1-4所示,該方法包括:
步驟S101,確定正在運行在電子設(shè)備上的第一進程集合,所述第一進程集合至少包括一個第一進程;
這里,所述電子設(shè)備包括固定電子設(shè)備和移動電子設(shè)備,其中,固定電子設(shè)備可以包括個人電腦(PC)、臺式機電腦、集群服務(wù)器、電視機等設(shè)備,移動電子設(shè)備可以包括手機、個人數(shù)字助理(PDA)、平板電腦等設(shè)備。
這里,電子設(shè)備上安裝的每一個軟件在運行的過程中體現(xiàn)為一個接一個的進程(Process)。舉例來說,在第一時刻t1,假設(shè)電子設(shè)備上運行有5個軟件(A1、A2、A3、A4和A5),那么電子設(shè)備當(dāng)前能夠確定有5個進程(PA1t1、PA2t1、PA3t1、PA4t1和PA5t1),這5個進程分別對應(yīng)于5個軟件,例如進程PA1t1為軟件A1在t1時刻活動的進程,進程PA3t1為軟件序A3在t1時刻活動的進程;在第二時刻t2,假設(shè)電子設(shè)備上關(guān)閉了軟件A5,電子設(shè)備上運行有4個軟件(A1、A2、A3和A4),那么電子設(shè)備當(dāng)前能夠確定有4個進程(PA1t2、PA2t2、PA3t2和PA4t2),這4個進程分別對應(yīng)于4個軟件(A1、A2、A3和A4),例如進程PA1t2為軟件A1在t2時刻活動的進程,進程PA3t2為軟件A3在t2時刻活動的進程。對于一個軟件來說,當(dāng)前時刻運行的進程可能與上一時刻運行的進程相同,也可能不同,當(dāng)兩個不同時刻對應(yīng)的進程不同時,那么后面時刻的進程必然是接續(xù)前一時刻的進程,換句話說,對應(yīng)同一個軟件而言,在一個固定的時刻,只有一個進程與其對應(yīng)。例如對應(yīng)軟件A1,進程PA1t2與進程PA2t1可能相同也可能不同,但是當(dāng)進程PA1t2與進程PA2t1不同時,進程PA1t2和進程PA2t1不能同時共存。
一般而言,電子設(shè)備上的程序管理器可以確定當(dāng)前電子設(shè)備的進程,對于不同的操作系統(tǒng),程序管理器可能叫做不同的名稱,但是本質(zhì)上都是對軟件進程管理,其中所述管理包括確定當(dāng)前運行的進程;例如,對于windows操作系 統(tǒng)而言,程序管理器通常叫做任務(wù)管理器。本實施例中的步驟S101,可以是程序管理器確定第一進程集合,也可以是從程序管理器去獲取第一進程集合,從而確定出第一進程集合。
步驟S102,確定所述第一進程集合中每一所述第一進程的響應(yīng)時間;
這里,所述響應(yīng)時間是指對進程對事件的響應(yīng)所花費的時間,其中事件可以是消息事件。一般來說,固定電子設(shè)備如PC機安裝的操作系統(tǒng)一般包括微軟公司的Windows操作系統(tǒng)、蘋果公司的iOS操作系統(tǒng)等,對于移動電子設(shè)備如手機安裝的操作系統(tǒng)一般包括安卓操作系統(tǒng)和蘋果公司的iOS操作系統(tǒng)等,當(dāng)軟件運行時,都是基于電子設(shè)備的操作系統(tǒng)來實現(xiàn)。例如PC機上安裝的軟件程序就是基本PC機上的操作系統(tǒng)來實現(xiàn)運行的,因此,對于操作系統(tǒng)而言,軟件屬于上層,而操作系統(tǒng)屬于下層,本步驟S102可以通過調(diào)用下層的操作系統(tǒng)的相關(guān)模塊或函數(shù)來確定上層軟件的響應(yīng)時間。
步驟S103,根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;
這里,所述第二進程集合中可以包括至少一個第二進程,當(dāng)然也可以不包括一個第二進程,即第二進程集合為空。
這里,所述第二進程集合顯然是所述第一進程集合的子集,繼續(xù)承接步驟S101中的例子,假設(shè)第一進程集合包括5個進程PA1t1、PA2t1、PA3t1、PA4t1和PA5t1,而第二進程集合包括的進程為上述5個進程中的至少任意之一,或者沒有。
步驟S104,根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件。
這里,步驟S104,根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件,可以采用各種現(xiàn)有技術(shù)來實現(xiàn),除此之外,本發(fā)明實施例再提供一種實現(xiàn)方法,具體地,先設(shè)置一個關(guān)聯(lián)信息,所述關(guān)聯(lián)信息用于表明第二進程與待優(yōu)化的軟件之間的對應(yīng)關(guān)系,獲取所述第二進程的標(biāo)識信息,根據(jù)所述第二進程的標(biāo)識信息查詢關(guān)聯(lián)信息,得到待優(yōu)化的軟件的標(biāo)識信息,所述標(biāo)識信息可以是進程的名稱或編號等信息,其中,所述關(guān)聯(lián)信息在具體實施的過程中可以采用映射 表或者配置表或配置文件來實現(xiàn)。
本發(fā)明實施例中,步驟S103,所述根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程包括:
步驟S1031,針對每一所述第一進程,判斷每一所述第一進程的響應(yīng)時間是否大于等于對應(yīng)的第一閾值;
步驟S1032,將所述響應(yīng)時間大于等于對應(yīng)的所述第一閾值的第一進程作為所述第二進程。
這里,繼續(xù)承接上述步驟S101中例子,假設(shè)第一進程集合包括5個進程PA1t1、PA2t1、PA3t1、PA4t1和PA5t1,其中進程的響應(yīng)時間大于對應(yīng)的第一閾值的進程包括進程PA1t1和PA2t1,那么第二進程集合即包括進程PA1t1和PA2t1。
本發(fā)明實施例中的第一進程集合、第二進程集合以及第一進程、第二進程等中的第一、第二等僅用于表示區(qū)別,并不表示順序的含義。
本發(fā)明實施例中,所述軟件包括安裝在固定電子設(shè)備如PC機上的軟件程序,也包括安裝在移動電子設(shè)備如手機上的應(yīng)用;移動電子設(shè)備運行的應(yīng)用可以是移動電子設(shè)備系統(tǒng)中自帶的應(yīng)用,例如,時鐘應(yīng)用、相機應(yīng)用、通訊錄應(yīng)用等,也可以是由用戶安裝的第三方應(yīng)用,例如,微信應(yīng)用、游戲應(yīng)用、瀏覽器應(yīng)用、即時聊天應(yīng)用、郵件應(yīng)用、管理應(yīng)用等。換句話說,在本實施例的軟件包括軟件程序和應(yīng)用程序。
本發(fā)明實施例中涉及軟件和進程兩個概念,一般來說,進程就是一個軟件在處理器上的一次執(zhí)行過程,它是一個動態(tài)的概念,進一步劃分進程,進程又可以被分為多個線程,即進程包含多個線程在運行。具體來說,進程是一個具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運行活動,它可以申請和擁有系統(tǒng)資源,是一個動態(tài)的概念,是一個活動的實體。它不只是程序的代碼,還包括當(dāng)前的活動,通過程序計數(shù)器的值和處理寄存器的內(nèi)容來表示。進程是一個“執(zhí)行中的程序”,程序是一個沒有生命的實體,只有處理器賦予程序生命時,它才 能成為一個活動的實體,稱其為進程。通常在一個進程中可以包含若干個線程,它們可以利用進程所擁有的資源。
本發(fā)明實施例中提出一種檢測軟件運行卡慢的方法,該方法利用進程的響應(yīng)時間來判斷該進程對應(yīng)的軟件是否卡慢,而現(xiàn)有技術(shù)中是利用系統(tǒng)資源的占用情況來判斷軟件是否卡慢,現(xiàn)有技術(shù)實際上是判斷電子設(shè)備運行是否卡慢而不是軟件運行是否卡慢,而且現(xiàn)有技術(shù)提供的方法有時候電子設(shè)備的系統(tǒng)資源占用很高,但是軟件依然運行很流暢而不是卡慢,可見現(xiàn)有技術(shù)的檢測方法不夠準(zhǔn)確,而本發(fā)明實施例提供一種不同于現(xiàn)有技術(shù)的新方法,能夠提高檢測應(yīng)用運行卡慢的準(zhǔn)確性,從而提升用戶體驗。
本發(fā)明實施例中提供的檢測軟件運行卡慢的方法,在具體實現(xiàn)的過程中,對于固定電子設(shè)備而言,該方法可以采用軟件程序的形式來體現(xiàn),對于移動電子設(shè)備而言,該方法可以采用應(yīng)用程序的形式來體現(xiàn)。
本發(fā)明實施例中,先確定正在運行在電子設(shè)備上的第一進程集合,所述第一進程集合至少包括一個第一進程;然后確定所述第一進程集合中每一所述第一進程的響應(yīng)時間;再根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;最后根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件;如此,能夠提高檢測應(yīng)用運行卡慢的準(zhǔn)確性,從而提升用戶體驗。
實施例二
基于實施例一,本發(fā)明實施例提供一種檢測軟件運行卡慢的方法,該方法應(yīng)用于電子設(shè)備,該方法所實現(xiàn)的功能可以通過電子設(shè)備中的處理器調(diào)用程序代碼來實現(xiàn),當(dāng)然程序代碼可以保存在計算機存儲介質(zhì)中,可見,該電子設(shè)備至少包括處理器和存儲介質(zhì)。軟件在運行的過程中,有些進程都對應(yīng)有一個窗口,因此,在具體實施的過程中,所述第一進程的響應(yīng)時間可以是每一個窗口的響應(yīng)時間,本實施例中將基于窗口的響應(yīng)時間來確定進程的響應(yīng)時間。
該方法包括:
步驟S201,根據(jù)預(yù)設(shè)的第一條件確定第一窗口集合,所述第一窗口集合中的每一窗口對應(yīng)的進程正在運行在所述電子設(shè)備上;
這里,所述根據(jù)預(yù)設(shè)的第一條件確定第一窗口集合,包括:根據(jù)預(yù)設(shè)的第一條件從正在運行的進程對應(yīng)的窗口中確定第一窗口集合。
這里,所述第一條件用于從正在運行在所述電子設(shè)備上的進程確定出第一窗口集合,所述第一條件可以是用戶設(shè)置的條件或者默認(rèn)設(shè)置的條件,第一條件可以對于一些軟件有例外的情況,例如設(shè)置某些軟件不被優(yōu)化;或者設(shè)置某些軟件是屬于被優(yōu)化的范圍。在實現(xiàn)的過程中,第一條件可以采用黑白名單來實現(xiàn),也可以采用參數(shù)來設(shè)置,例如可以是針對可視窗口的參數(shù);以Windows操作系統(tǒng)為例進行說明,進程在運行的時候有對應(yīng)一個窗口,但是窗口可以分為可視窗口和不可視窗口,那么第一條件可以是針對可視窗口的,因為不可視窗口對于用戶而言是無感覺的。
步驟S202,將所述第一窗口集合中的每一窗口對應(yīng)的進程確定為所述第一進程集合;
這里,步驟S201和步驟S202實際上提供了一種實現(xiàn)實施例一中步驟S101“確定正在運行在電子設(shè)備上的第一進程集合”的具體實現(xiàn)方式。
步驟S203,將所述第一窗口集合中每一窗口的響應(yīng)時間對應(yīng)地確定為每一所述第一進程的響應(yīng)時間;
這里,步驟S203實際上提供了一種實現(xiàn)實施例一中步驟S102“確定所述第一進程集合中每一所述第一進程的響應(yīng)時間”的具體實現(xiàn)方式。
步驟S204,根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;
這里,所述根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,包括:
步驟S2041,針對每一所述第一進程,判斷每一所述第一進程的響應(yīng)時間是否大于等于對應(yīng)的所述第一閾值;
步驟S2042,將所述響應(yīng)時間大于等于對應(yīng)的所述第一閾值的第一進程作 為所述第二進程。
步驟S205,根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件。
在本發(fā)明的其他實施例中,步驟S203,所述確定所述第一窗口集合中每一窗口的響應(yīng)時間,包括:通過發(fā)送應(yīng)答消息和接收響應(yīng)消息確定所述第一窗口集合中每一窗口的響應(yīng)時間。其中以windows為例,應(yīng)答消息可以采用WM_NULL來實現(xiàn)。
這里,步驟S205,根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件,可以采用各種現(xiàn)有技術(shù)來實現(xiàn),除此之外,本發(fā)明實施例再提供一種實現(xiàn)方法,具體地,先設(shè)置一個關(guān)聯(lián)信息,所述關(guān)聯(lián)信息用于表明第二進程與待優(yōu)化的軟件之間的對應(yīng)關(guān)系,獲取所述第二進程的標(biāo)識信息,根據(jù)所述第二進程的標(biāo)識信息查詢關(guān)聯(lián)信息,得到待優(yōu)化的軟件的標(biāo)識信息,所述標(biāo)識信息可以是進程的名稱或編號等信息,其中,所述關(guān)聯(lián)信息在具體實施的過程中可以采用映射表或者配置表或配置文件來實現(xiàn)。
本發(fā)明實施例提供一種通過檢測進程對應(yīng)的窗口的響應(yīng)時間來確定進程的響應(yīng)時間,從而來確定正在運行的軟件是否出現(xiàn)卡慢的情況。對于操作系統(tǒng)而言,檢測窗口的響應(yīng)時間有現(xiàn)成的函數(shù),因此,只需要調(diào)用操作系統(tǒng)的函數(shù)即可完成窗口響應(yīng)時間的確定,因此,本發(fā)明實施例提供的方法具有易于實現(xiàn)的優(yōu)點。
實施例三
基于前述的實施例,本發(fā)明實施例提供一種檢測軟件運行卡慢的方法,該方法應(yīng)用于電子設(shè)備,該方法所實現(xiàn)的功能可以通過電子設(shè)備中的處理器調(diào)用程序代碼來實現(xiàn),當(dāng)然程序代碼可以保存在計算機存儲介質(zhì)中,可見,該電子設(shè)備至少包括處理器和存儲介質(zhì)。本實施例中將基于窗口的響應(yīng)時間來確定進程的響應(yīng)時間。
本發(fā)明實施例中提供的檢測軟件運行卡慢的方法,將以優(yōu)化軟件的形式來體現(xiàn),圖2為本發(fā)明實施例三檢測軟件運行卡慢的方法的實現(xiàn)流程示意圖,圖 2示出了本發(fā)明實施例中優(yōu)化軟件、應(yīng)答消息發(fā)送函數(shù)以及窗口之間的聯(lián)系示意圖,從圖2可以看出,應(yīng)答消息發(fā)送函數(shù)為操作系統(tǒng)的一部分,窗口是運行在電子設(shè)備上的不同的應(yīng)用程序的當(dāng)前進程所對應(yīng)的界面,操作系統(tǒng)中的應(yīng)答消息發(fā)送函數(shù)可以向不同的窗口(1至N)發(fā)送應(yīng)答消息,然后接收響應(yīng)消息,根據(jù)應(yīng)答消息與響應(yīng)消息之間的時間差確定窗口的響應(yīng)時間。如圖2所示,該方法包括:
步驟S301,優(yōu)化軟件根據(jù)預(yù)設(shè)的第一條件確定第一窗口集合,所述第一窗口集合中的每一窗口對應(yīng)的進程正在運行在所述電子設(shè)備上;
步驟S302,優(yōu)化軟件將所述第一窗口集合中的每一窗口對應(yīng)的進程確定為所述第一進程集合;
步驟S303,優(yōu)化軟件調(diào)用應(yīng)答消息發(fā)送函數(shù)向所述第一窗口集合的每一窗口發(fā)送應(yīng)答消息,記錄發(fā)送所述應(yīng)答消息的第一時間戳;
這里,所述應(yīng)答消息發(fā)送函數(shù)是所述電子設(shè)備上安裝的操作系統(tǒng)中的一個模塊,用于向電子設(shè)備上運行的進程對應(yīng)的窗口發(fā)送應(yīng)答消息。以Windows操作系統(tǒng)為例進行說明,所述應(yīng)答消息發(fā)送函數(shù)可以是SendMessageTimeout函數(shù)。
步驟S304,優(yōu)化軟件接收述第一窗口集合的每一窗口發(fā)送的響應(yīng)消息,記錄接收所述響應(yīng)消息的第二時間戳;
步驟S305,優(yōu)化軟件根據(jù)第一時間戳和所述第二時間戳對應(yīng)地確定為每一所述第一進程的響應(yīng)時間。
這里,步驟S303至步驟S305實際上提供了一種實現(xiàn)實施例一中步驟S102“將所述第一窗口集合中每一窗口的響應(yīng)時間對應(yīng)地確定為每一所述第一進程的響應(yīng)時間”的具體實現(xiàn)方式。
步驟S306,優(yōu)化軟件根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;
步驟S307,優(yōu)化軟件根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件。
實施例四
基于前述的實施例,本發(fā)明實施例提供一種檢測軟件運行卡慢的方法,該方法應(yīng)用于電子設(shè)備,該方法所實現(xiàn)的功能可以通過電子設(shè)備中的處理器調(diào)用程序代碼來實現(xiàn),當(dāng)然程序代碼可以保存在計算機存儲介質(zhì)中,可見,該電子設(shè)備至少包括處理器和存儲介質(zhì)。
圖3為本發(fā)明實施例四檢測軟件運行卡慢的方法的實現(xiàn)流程示意圖,如圖3所示,該方法包括:
步驟S101,確定正在運行在電子設(shè)備上的第一進程集合,所述第一進程集合至少包括一個第一進程;
步驟S102,確定所述第一進程集合中每一所述第一進程的響應(yīng)時間;
這里,所述響應(yīng)時間是指對進程對事件的響應(yīng)所花費的時間,其中事件可以是消息。
本發(fā)明實施例中,對于軟件而運行的時候有些進程都對應(yīng)有一個窗口,因此,在具體實施的過程中,所述第一進程的響應(yīng)時間可以是每一個窗口的響應(yīng)時間。
步驟S103,根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;
這里,所述第二進程集合中可以包括至少一個第二進程,當(dāng)然也可以不包括一個第二進程,即第二進程集合為空。
步驟S104,根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件;
步驟S401,獲取正在運行的軟件的第一信息,所述正在運行的軟件包括所述待優(yōu)化的軟件,所述第一信息至少包括第二信息;
這里,所述第二信息作為第一信息的主要參數(shù),用于表明所述待優(yōu)化的軟件當(dāng)前的響應(yīng)時間超出對應(yīng)的第一閾值的相對數(shù)值或絕對數(shù)值;其中,所述絕對數(shù)值可以是第一時間,所述第一時間是指所述待優(yōu)化的軟件當(dāng)前的響應(yīng)時間超出對應(yīng)的第一閾值的時間,例如,假設(shè)所述待優(yōu)化的軟件當(dāng)前的響應(yīng)時間是 500毫秒(ms),而對應(yīng)的第一閾值為400ms,則絕對數(shù)值是指100ms。所述相對數(shù)值可以是絕對數(shù)值與第一閾值的比例或百分比,假設(shè)所述待優(yōu)化的軟件當(dāng)前的響應(yīng)時間是500毫秒(ms),而對應(yīng)的第一閾值為400ms,則絕對數(shù)值是指100ms,那么相對數(shù)值是100ms與第一閾值的比值0.25或者25%。
步驟S402,按照所述第二信息從大到小對所述待優(yōu)化的軟件進行排序,得到排序結(jié)果;
步驟S403,根據(jù)所述排序結(jié)果生成優(yōu)化界面,所述優(yōu)化界面用于顯示待優(yōu)化的軟件;
步驟S404,顯示所述優(yōu)化界面。
這里,參見圖4所示,假設(shè)應(yīng)用401的軟件名稱為迅迅,該軟件401的響應(yīng)時間超過410毫秒(即響應(yīng)時間超過對應(yīng)的第一閾值的時間為410ms,其余的相同),假設(shè)應(yīng)用402的軟件名稱為WP,該軟件402的響應(yīng)時間超過400毫秒;假設(shè)應(yīng)用403的軟件名稱為QQ音樂,該軟件403的響應(yīng)時間超過310毫秒;假設(shè)應(yīng)用404的軟件名稱為筆記,該軟件404的響應(yīng)時間超過300毫秒;假設(shè)應(yīng)用405的軟件名稱為暴風(fēng),該軟件405的響應(yīng)時間超過100毫秒。
本實施例提供的技術(shù)方案與現(xiàn)有技術(shù)相比,當(dāng)系統(tǒng)運行卡慢的時候,會在電子設(shè)備的顯示屏上彈出是提示信息而不是優(yōu)化界面,當(dāng)彈出的是提示信息時,現(xiàn)有技術(shù)還需要用戶再進行點擊進入優(yōu)化產(chǎn)品(也可以是一個應(yīng)用)從而進行系統(tǒng)優(yōu)化。而本實施例中,當(dāng)有需要優(yōu)化的軟件時,主動彈出優(yōu)化界面,從而提高優(yōu)化功能的使用率。
本發(fā)明實施例中,所述第一信息還包括第三信息,所述第三信息用于表明所述待優(yōu)化的軟件的資源占用信息;所述第一信息還包括標(biāo)簽信息,所述標(biāo)簽信息用于表明所述軟件是否因為軟件卡慢而被關(guān)閉的結(jié)論。
這里,資源占用信息作為第一信息的一個輔助參數(shù),用于對熟悉資源占用信息的用戶提供一個輔助指示,在具體實現(xiàn)的過程中,所述資源占用信息可以采用百分比這類的相對數(shù)值來表示,當(dāng)然還可以采用絕對數(shù)值如吉字節(jié)(GB)或兆字節(jié)(MB)等來表示。參見圖5所示,圖5所示的軟件與圖4所示的軟件 相同,在圖4中全部使用響應(yīng)時間來表示,在圖5中,對于部分軟件的來說,它的響應(yīng)時間雖然超出第一閾值時間比較少,但是占用的系統(tǒng)資源比較多,因此,在優(yōu)化界面還可以顯示資源占用信息,例如對于軟件403來說,其資源占用信息為500M,對于軟件404來說,其資源占用信息為644M;除了資源占用信息之外,所述第一信息還可以包括軟件未使用的時間,例如圖5中暴風(fēng)405的未使用時間為3小時45分鐘。
這里,與現(xiàn)有技術(shù)相比,現(xiàn)有技術(shù)中并未給出結(jié)論,而是需要用戶自己確定哪些軟件需要關(guān)閉(參見圖1-3的B所示),現(xiàn)有技術(shù)中的優(yōu)化界面列出的都是資源占用信息,直接給出一些數(shù)據(jù),然后用戶通過勾選對應(yīng)的軟件,最后點擊一鍵加速,最終實現(xiàn)完成優(yōu)化。而本發(fā)明實施例提供的技術(shù)方案直接給出的是標(biāo)簽,該標(biāo)簽用于是否需要直接關(guān)閉該軟件。在具體實現(xiàn)的過程中,所述標(biāo)簽信息可以采用如圖5所示的“卡系統(tǒng)”501或“高占用”502來表示,在圖5中,電子設(shè)備發(fā)現(xiàn)當(dāng)前使用的Word較卡慢,然后就執(zhí)行了圖3所示的流程,最終在優(yōu)化界面上軟件401和402可以因為卡系統(tǒng)而被關(guān)閉,而軟件403和404可以因為高占用而被關(guān)閉。當(dāng)用戶通過勾選對應(yīng)的軟件401至405,最后點擊“立即加速”503,那么電子設(shè)備將開始優(yōu)化,優(yōu)化的過程參見圖6中的A圖所示,最終優(yōu)化完成的界面參見圖6的B圖所示。從圖5可以看出,本發(fā)明實施例提供的技術(shù)方案,能夠通過軟件標(biāo)簽主動提示用戶關(guān)閉哪些軟件進行系統(tǒng)優(yōu)化,從而降低用戶使用的復(fù)雜度。
實施例五
基于前述的實施例,本發(fā)明實施例提供一種檢測軟件運行卡慢的方法,該方法應(yīng)用于電子設(shè)備,該方法所實現(xiàn)的功能可以通過電子設(shè)備中的處理器調(diào)用程序代碼來實現(xiàn),當(dāng)然程序代碼可以保存在計算機存儲介質(zhì)中,可見,該電子設(shè)備至少包括處理器和存儲介質(zhì)。
該方法包括:
步驟S501,確定所述電子設(shè)備的系統(tǒng)占用信息;
步驟S502,判斷所述系統(tǒng)占用信息是否大于等于預(yù)設(shè)的第二閾值,是時,進入步驟S101,反之,進入步驟S501;
這里,如果所述系統(tǒng)占用信息大于等于所述第二閾值,根據(jù)預(yù)設(shè)的第一條件確定正在運行在電子設(shè)備上的第一進程集合;如果所述系統(tǒng)占用信息小于所述第二閾值,繼續(xù)確定所述電子設(shè)備的系統(tǒng)占用信息。
步驟S101,確定正在運行在電子設(shè)備上的第一進程集合,所述第一進程集合至少包括一個第一進程;
步驟S102,確定所述第一進程集合中每一所述第一進程的響應(yīng)時間;
這里,所述響應(yīng)時間是指對進程對事件的響應(yīng)所花費的時間,其中事件可以是消息。
本發(fā)明實施例中,對于軟件而運行的時候有些進程都對應(yīng)有一個窗口,因此,在具體實施的過程中,所述第一進程的響應(yīng)時間可以是每一個窗口的響應(yīng)時間。
步驟S103,根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;
這里,所述第二進程集合中可以包括至少一個第二進程,當(dāng)然也可以不包括一個第二進程,即第二進程集合為空。
步驟S104,根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件。
本發(fā)明實施例中的步驟S501至步驟S502實際上提供一種觸發(fā)電子設(shè)備檢測軟件卡慢的方式。在本發(fā)明的其他實施例中,還可以采用周期性檢測的方式,例如每隔10分鐘或者5分鐘就執(zhí)行步驟S101至步驟S104。
本發(fā)明實施例中的步驟S101至步驟S104分別對應(yīng)于實施例一中的步驟S101至步驟S104,因此,本領(lǐng)域的技術(shù)人員可以參閱實施例一而理解上述的步驟S101至步驟S104。
實施例六
基于前述的實施例,本發(fā)明實施例提供一種檢測軟件運行卡慢的方法,先 來介紹一下本發(fā)明實施例的基本原理,本發(fā)明實施例的基本原理包括:軟件卡慢可以看作是用戶使用軟件的一種主觀體驗,軟件卡慢主要取決于軟件響應(yīng)用戶操作的時間。當(dāng)用戶在一個窗口上進行某項操作,如果響應(yīng)時間超過某一個閥值(假設(shè)為400ms)時,用戶就會感覺到明顯的卡頓或卡慢。
下面以Windows操作系統(tǒng)為例進行說明,需要說明的是,本發(fā)明實施例所提供的思想可以應(yīng)用于對于其他的電子設(shè)備的操作系統(tǒng)如安卓系統(tǒng),因此不再贅述。為了更好地進行說明,先簡要介紹一下Windows操作系統(tǒng)的窗口消息工作原理:對于Windows操作系統(tǒng)的窗口而言,窗口只屬于創(chuàng)建它的線程,線程擁有自己的消息循環(huán),每個窗口對于的線程都有自己的消息隊列,其中,線程的消息隊列結(jié)構(gòu)如圖7所示,該結(jié)構(gòu)包括:對于線程名稱(TRREADINFO)的消息隊列包括:登記消息隊列指針、虛擬輸入隊列指針、發(fā)送消息隊列指針、應(yīng)答消息隊列指針、退出狀態(tài)碼(nExitCode)、喚醒標(biāo)志和局部輸入狀態(tài)變量,其中登記消息隊列指針又包括登記的消息(message,MSG),虛擬輸入隊列指針又包括輸入的MSG,發(fā)送消息隊列指針又包括發(fā)送的MSG,應(yīng)答消息隊列指針又包括應(yīng)答的MSG。其中,在上述的消息隊列中,本發(fā)明實施例中的主要涉及應(yīng)答消息。
圖8為本發(fā)明實施例六Windows操作系統(tǒng)從線程的隊列中提取消息的實現(xiàn)流程示意圖,如圖8所示,該流程包括:
步驟S1,獲取消息;
這里,獲取消息可以采用GetMessage(...)命令;
步驟S2,判斷是否滿足QS_SENDMESSAGE設(shè)定;如果否,則進入步驟S3;如果是,則進行下面的步驟:1)發(fā)送消息;2)如果不再有發(fā)送的信息,關(guān)閉QS_SENDMESSAGE;3)GetMessage不返回。
步驟S3,判斷是否滿足QS_POSTMESSAGE設(shè)定;如果否,則進入步驟S4;如果是,則進行下面的步驟:1)填充傳遞到GetMessage的MSG結(jié)構(gòu);2)如果不再有登記的信息,關(guān)閉QS_POSTMESSAGE;3)GetMessage返回TRUE。
步驟S4,判斷是否滿足QS_SQUIT設(shè)定;如果否,則進入步驟S5;如果 是,則進行下面的步驟:1)填充傳遞到GetMessage的MSG結(jié)構(gòu);2)關(guān)閉QS_QUIT;3)GetMessage返回FALSE。
步驟S5,判斷是否滿足QS_INPUT設(shè)定;如果否,則進入步驟S6;如果是,則進行下面的步驟:1)填充傳遞到GetMessage的MSG結(jié)構(gòu);2)如果隊列中再沒有鍵盤消息,關(guān)閉QS_KEY;如果隊列中再沒有鼠標(biāo)按鈕消息,關(guān)閉QS_MOUSEBUTTON;如果隊列中不再有鼠標(biāo)移動消息,關(guān)閉QS_MOUSEMOVE;3)GetMessage返回TRUE。
步驟S6,判斷是否滿足QS_PAINT設(shè)定;如果否,則進入步驟S7;如果是,則進行下面的步驟:1)填充傳遞到GetMessage的MSG結(jié)構(gòu);2)GetMessage返回TRUE(如果窗口過程確認(rèn)窗口,則關(guān)閉QS_PAINT)。
步驟S7,判斷是否滿足QS_TIMER設(shè)定;如果否,則進入步驟S1;如果是,則進行下面的步驟:1)填充傳遞到GetMessage的MSG結(jié)構(gòu);2)復(fù)位定時器;3)如果沒有定時器報時,關(guān)閉QS_TIMER;4)GetMessage返回TRUE。
在圖8中上述縮寫的含義是:
GetMessage(…):Windows API,獲取消息;
QS_SENDMESS AGE:消息隊列有同步消息;
QS_QUIT:消息隊列有退出消息;
QS_INPUT:消息隊列有輸入消息;
QS_PAINT:消息隊列有繪制消息;
QS_TIMER:消息隊列有定時器消息;
QS_KEY:消息隊列有鍵盤消息;
QS_MOUSEBUTTON:消息隊列有鼠標(biāo)按鍵消息;
QS_MOUSEMOVE:消息隊列有鼠標(biāo)移動消息。
從以上可以看出,Windows操作系統(tǒng)從線程的隊列中提取消息或者說Windows系統(tǒng)處理Windnows消息的優(yōu)先級的順序如下:發(fā)送(SEND)消息>投遞(POST)消息>放棄或退出(QUIT)消息>鍵盤和鼠標(biāo)輸入消息>繪制(WM_PAINT)消息>定時器(WM_TIMER)消息。如果Windows操作系 統(tǒng)正在處理一個低優(yōu)先級的消息,這時一個高優(yōu)先級的消息到來,Windows不會中斷當(dāng)前消息的處理,直到該消息處理完成之后才會處理高優(yōu)先級消息。本發(fā)明利用了這個機制,通過發(fā)送WM_NULL消息(Send WM_NULL消息)來測試窗口對消息的響應(yīng)處理速度。
基于上述的描述,本發(fā)明實施例先提供一種檢測軟件運行卡慢的方法,如圖9所示,該優(yōu)化軟件600包括應(yīng)用加速模塊601和窗口檢測模塊602,其中:應(yīng)用加速模塊屬于與用戶交互的模塊,而窗口檢測模塊屬于與底層的操作系統(tǒng)進行交互的模塊?;谏鲜龅膬?yōu)化軟件,本發(fā)明實施例提供的一種檢測軟件運行卡慢的方法包括:
步驟S600,應(yīng)用加速模塊定時(例如每小時一次)調(diào)用窗口檢測模塊的窗口檢測函數(shù)(SendMessageTimeout)啟動窗口檢測;
步驟S601,窗口檢測模塊首先枚舉系統(tǒng)的所有可視窗口;
這里,所述Windows窗口包括可視窗口和不可視窗口,所述方法還包括:設(shè)置窗口檢測超時時間;
步驟S602,窗口檢測模塊調(diào)用SendMessageTimeout函數(shù)逐個給窗口發(fā)送應(yīng)答(WM_NULL)消息,
步驟S603,窗口檢測模塊記錄下窗口的響應(yīng)時間以及對應(yīng)的進程。
步驟S604,檢測完成之后,窗口檢測模塊通過通知消息通知上層的應(yīng)用加速模塊。
這里,所述通知消息用于表明窗口檢測流程已經(jīng)完成。
步驟S605,應(yīng)用加速模塊響應(yīng)所述通知消息,從窗口檢測模塊主動獲取窗口卡慢的進程列表;
步驟S606,應(yīng)用加速模塊把卡慢進程映射成待優(yōu)化的軟件;
步驟S607,應(yīng)用加速模塊根據(jù)一定的產(chǎn)品策略給待優(yōu)化的軟件上打上相關(guān)標(biāo)簽(第一信息);
步驟S608,應(yīng)用加速模塊主動彈出優(yōu)化界面。
從以上流程可以看出,本發(fā)明實施例提供的技術(shù)方案包括:1)建立衡量軟 件卡慢標(biāo)準(zhǔn),即采用響應(yīng)時間來衡量軟件是否卡慢,而非系統(tǒng)的資源占用情況,從而提高軟件卡慢檢測準(zhǔn)確性;2)通過主動彈出優(yōu)化界面,從而提高優(yōu)化軟件的使用率;3)通過軟件標(biāo)簽主動提示用戶關(guān)閉那些軟件進行系統(tǒng)優(yōu)化,從而降低用戶使用的復(fù)雜度。
實施例七
基于前述的實施例,本發(fā)明實施例提供一種檢測軟件運行卡慢的裝置,該裝置所包括的各單元,以及各單元所包括的各模塊,都可以通過電子設(shè)備中的處理器來實現(xiàn);當(dāng)然也可通過具體的邏輯電路實現(xiàn);在具體實施例的過程中,處理器可以為中央處理器(CPU)、微處理器(MPU)、數(shù)字信號處理器(DSP)或現(xiàn)場可編程門陣列(FPGA)等。在具體實現(xiàn)的過程中,所述裝置可以采用軟件的形式來體現(xiàn)。圖10為本發(fā)明實施例七檢測軟件運行卡慢的裝置的組成結(jié)構(gòu)示意圖,如圖10所示,該裝置700包括第一確定單元701、第二確定單元702、第三確定單元703和第四確定單元704,其中:
所述第一確定單元701,用于確定正在運行在電子設(shè)備上的第一進程集合,所述第一進程集合至少包括一個第一進程;
所述第二確定單元702,用于確定所述第一進程集合中每一所述第一進程的響應(yīng)時間;
所述第三確定單元703,用于根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;
所述第四確定單元704,用于根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件。
在本發(fā)明的其他實施例中,所述第一確定單元包括第一確定模塊和第二確定模塊,其中:
所述第一確定模塊,用于根據(jù)預(yù)設(shè)的第一條件確定第一窗口集合,所述第一窗口集合中的每一窗口對應(yīng)的進程正在運行在所述電子設(shè)備上;
所述第二確定模塊,用于將所述第一窗口集合中的每一窗口對應(yīng)的進程確定為所述第一進程集合;
所述第二確定單元,用于將所述第一窗口集合中每一窗口的響應(yīng)時間對應(yīng)地確定為每一所述第一進程的響應(yīng)時間。
在本發(fā)明的其他實施例中,所述第二確定單元,用于通過發(fā)送應(yīng)答消息和接收響應(yīng)消息確定所述第一窗口集合中每一窗口的響應(yīng)時間。
在本發(fā)明的其他實施例中,所述第二確定單元包括發(fā)送模塊、接收模塊和第三確定模塊,其中:
所述發(fā)送模塊,用于調(diào)用應(yīng)答消息發(fā)送函數(shù)向所述第一窗口集合的每一窗口發(fā)送應(yīng)答消息,記錄發(fā)送所述應(yīng)答消息的第一時間戳;
所述接收模塊,用于接收述第一窗口集合的每一窗口發(fā)送的響應(yīng)消息,記錄接收所述響應(yīng)消息的第二時間戳;
所述第三確定模塊,用于根據(jù)第一時間戳和所述第二時間戳確定所述響應(yīng)時間。
在本發(fā)明的其他實施例中,所述裝置還包括獲取單元、排序單元、生成單元和顯示單元,其中:
所述獲取單元,用于獲取正在運行的軟件的第一信息,所述正在運行的軟件包括所述待優(yōu)化的軟件,所述第一信息至少包括第二信息,所述第二信息用于表明所述待優(yōu)化的軟件當(dāng)前的響應(yīng)時間超出對應(yīng)的第一閾值的相對數(shù)值或絕對數(shù)值;
所述排序單元,用于按照所述第二信息從大到小對所述待優(yōu)化的軟件進行排序,得到排序結(jié)果;
所述排序單元,用于根據(jù)所述排序結(jié)果生成優(yōu)化界面,所述優(yōu)化界面用于顯示待優(yōu)化的軟件;
所述顯示單元,用于顯示所述優(yōu)化界面。
在本發(fā)明的其他實施例中,所述第一信息還包括第三信息,所述第三信息用于表明所述待優(yōu)化的軟件的資源占用信息;所述第一信息還包括標(biāo)簽信息, 所述標(biāo)簽信息用于表明所述軟件是否因為軟件卡慢而被關(guān)閉的結(jié)論。
在本發(fā)明的其他實施例中,所述第三確定單元包括判斷模塊和第四確定模塊,其中:
所述判斷模塊,用于針對每一所述第一進程,判斷每一所述第一進程的響應(yīng)時間是否大于等于對應(yīng)的所述第一閾值;
所述第四確定模塊,用于將所述響應(yīng)時間大于等于對應(yīng)的所述第一閾值的第一進程確定為所述第二進程。
在本發(fā)明的其他實施例中,所述裝置還包括第五確定單元、判斷單元和第六確定單元,其中:
所述第五確定單元,用于確定所述電子設(shè)備的系統(tǒng)占用信息;
所述判斷單元,用于判斷所述系統(tǒng)占用信息是否大于等于預(yù)設(shè)的第二閾值;如果所述系統(tǒng)占用信息小于所述第二閾值,繼續(xù)觸發(fā)所述第五確定單元;如果所述系統(tǒng)占用信息大于等于所述第二閾值,觸發(fā)所述第一確定單元。
這里需要指出的是:以上裝置實施例項的描述,與上述方法描述是類似的,具有同方法實施例相同的有益效果,因此不做贅述。對于本發(fā)明裝置實施例中未披露的技術(shù)細(xì)節(jié),本領(lǐng)域的技術(shù)人員請參照本發(fā)明方法實施例的描述而理解,為節(jié)約篇幅,這里不再贅述。
實施例八
基于前述的實施例,本發(fā)明實施例提供一種電子設(shè)備,圖11示為本發(fā)明實施例八電子設(shè)備1100的組成結(jié)構(gòu)示意圖,如圖11所示,該電子設(shè)備1100包括處理器1101和顯示屏1102,其中:
所述處理器1101,用于:
確定正在運行在所述電子設(shè)備上的第一進程集合,所述第一進程集合至少包括一個第一進程,所述第一進程對應(yīng)的軟件運行時的顯示界面顯示在所述顯示屏1102上;
確定所述第一進程集合中每一所述第一進程的響應(yīng)時間;
根據(jù)每一所述第一進程的響應(yīng)時間和對應(yīng)的第一閾值從所述第一進程集合中確定第二進程集合,所述第二進程集合包括第二進程;
根據(jù)所述第二進程集合中的第二進程確定待優(yōu)化的軟件。
在本發(fā)明的其他實施例中,所述確定正在運行在電子設(shè)備上的第一進程集合,包括:
根據(jù)預(yù)設(shè)的第一條件確定第一窗口集合,所述第一窗口集合中的每一窗口對應(yīng)的進程正在運行在所述電子設(shè)備上;
將所述第一窗口集合中的每一窗口對應(yīng)的進程確定為所述第一進程集合;
所述確定所述第一進程集合中每一所述第一進程的響應(yīng)時間,包括:將所述第一窗口集合中每一窗口的響應(yīng)時間對應(yīng)地確定為每一所述第一進程的響應(yīng)時間。
在本發(fā)明的其他實施例中,所述確定所述第一窗口集合中每一窗口的響應(yīng)時間,包括:
通過發(fā)送應(yīng)答消息和接收響應(yīng)消息確定所述第一窗口集合中每一窗口的響應(yīng)時間。
在本發(fā)明的其他實施例中,所述通過發(fā)送應(yīng)答消息和接收響應(yīng)消息確定所述第一窗口集合中每一窗口的響應(yīng)時間,包括:
調(diào)用應(yīng)答消息發(fā)送函數(shù)向所述第一窗口集合的每一窗口發(fā)送應(yīng)答消息,記錄發(fā)送所述應(yīng)答消息的第一時間戳;
接收述第一窗口集合的每一窗口發(fā)送的響應(yīng)消息,記錄接收所述響應(yīng)消息的第二時間戳;
根據(jù)第一時間戳和所述第二時間戳確定所述響應(yīng)時間。
當(dāng)電子設(shè)備1100為移動電子設(shè)備時,可選地,所述電子設(shè)備1100還可以包括內(nèi)置的天線,用于接收廣播信號并通過電子設(shè)備1100的揚聲器1108輸出為聲音。當(dāng)然還可以包括蜂窩模塊1103、無線保真(WiFi)模塊1104、藍(lán)牙模塊1105和定位模塊1106、麥克風(fēng)1107、揚聲器1108和存儲器1109,其中:
蜂窩模塊1103以接入基站的建立鏈路的方式承載電子設(shè)備1100的移動通 信,例如語音(視頻)通信和數(shù)據(jù)通信,通信制式可以采用碼分多址(CDMA)、寬帶碼分多址(WCDMA)、時分-同步碼分多址(TD-SCDMA)以及演進制式。
無線保真(WiFi)模塊1104支持電子設(shè)備1100接入無線互聯(lián)網(wǎng)。
藍(lán)牙模塊1105用于支持電子設(shè)備1100的近距離通信,可以替換地,電子設(shè)備1100的近距離通信還可以使用基于紅外、紫蜂等技術(shù)的模塊實現(xiàn)。
定位模塊1106可以實施為基于美國的全球衛(wèi)星定位系統(tǒng)(GPS)的定位模塊1106,通過接收GPS信號來定位電子設(shè)備1100而輸出電子設(shè)備1100的位置信息、速度信息等;可以替換地,定位模塊1106可以實施為基于其他的衛(wèi)星定位系統(tǒng)的模塊,如基于中國北斗衛(wèi)星定位系統(tǒng)的定位模塊1106、基于俄羅斯的格洛納斯(GLONASS)全球定位系統(tǒng)的定位模塊1106,以及基于歐洲的伽利略(Galileo)全球定位系統(tǒng)的定位模塊1106。
麥克風(fēng)1107可以在電子設(shè)備1100經(jīng)由蜂窩模塊1103提供語音電話功能,并通過與基站之間的鏈路傳輸,以及,在電子設(shè)備1100工作于聲控模式時采集用戶的語音并處理為音頻數(shù)據(jù),由處理器1101解析音頻數(shù)據(jù)并執(zhí)行相應(yīng)的指令以觸發(fā)電子設(shè)備1100中的功能。
顯示屏1102可以顯示處理器1101實現(xiàn)的功能以及相關(guān)的信息。例如,顯示在電子設(shè)備1100中內(nèi)置功能的功能列表界面。
存儲器1109用于存儲由處理器1101可執(zhí)行的指令和應(yīng)用,還可以緩存待處理器1101以及電子設(shè)備1100中各模塊待處理或已經(jīng)處理的數(shù)據(jù)(例如,音頻數(shù)據(jù)、語音通信數(shù)據(jù)和視頻通信數(shù)據(jù)),可以通過閃存(FLASH)或隨機訪問存儲器1109(RAM)實現(xiàn)。
顯示屏1102可以實施為觸摸屏,輸出表征觸摸屏的操作特征(包括觸點位置、觸點數(shù)量、觸發(fā)壓力)的用戶操作數(shù)據(jù),處理器1101解析用戶操作數(shù)據(jù)確定用戶在功能列表界面中觸發(fā)的功能,生成對應(yīng)觸發(fā)的功能的顯示數(shù)據(jù)供顯示屏1102加載觸發(fā)功能的界面。
這里需要指出的是:以上電子設(shè)備實施例項的描述,與上述方法描述是類似的,具有同方法實施例相同的有益效果,因此不做贅述。對于本發(fā)明電子設(shè) 備實施例中未披露的技術(shù)細(xì)節(jié),本領(lǐng)域的技術(shù)人員請參照本發(fā)明方法實施例的描述而理解,為節(jié)約篇幅,這里不再贅述。
應(yīng)理解,說明書通篇中提到的“一個實施例”或“一實施例”意味著與實施例有關(guān)的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實施例中。因此,在整個說明書各處出現(xiàn)的“在一個實施例中”或“在一實施例中”未必一定指相同的實施例。此外,這些特定的特征、結(jié)構(gòu)或特性可以任意適合的方式結(jié)合在一個或多個實施例中。應(yīng)理解,在本發(fā)明的各種實施例中,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實施例的實施過程構(gòu)成任何限定。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過其它的方式實現(xiàn)。以上所描述的設(shè)備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,如:多個單元或組件可以結(jié)合,或可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機械的或其它形式的。
上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元;既可以位于一個地方,也可以分布到多個網(wǎng)絡(luò)單元上;可以根據(jù)實際的需要選擇其中的部分或全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各實施例中的各功能單元可以全部集成在一個處理單元中,也可以是各單元分別單獨作為一個單元,也可以兩個或兩個以上單元集成在一個單元中;上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:移動存儲設(shè)備、只讀存儲器(Read Only Memory,ROM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明實施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分。而前述的存儲介質(zhì)包括:移動存儲設(shè)備、ROM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準(zhǔn)。