專利名稱:一種應(yīng)用程序的進(jìn)程的性能確定方法和計(jì)算機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及應(yīng)用程序的進(jìn)程的性能確定方法和計(jì)算機(jī)系統(tǒng)。
背景技術(shù):
一個(gè)應(yīng)用程序的進(jìn)程的性能可以用多種參數(shù)來衡量,其中,應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)是一個(gè)比較重要的衡量參數(shù),如果該啟動(dòng)耗時(shí)能準(zhǔn)確地獲取到,則可以準(zhǔn)確地衡量應(yīng)用程序的進(jìn)程的啟動(dòng)性能。
現(xiàn)有技術(shù)中,在獲取一個(gè)應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)時(shí),可以獲取該應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻t2與進(jìn)程啟動(dòng)時(shí)刻tl,并計(jì)算時(shí)刻t2和時(shí)刻tl的差值,從而確定了一個(gè)應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)。其中在獲取應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻t2時(shí),可以將該應(yīng)用程序?qū)?yīng)的用戶交互窗口的開啟時(shí)刻作為應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻tl,但是有些應(yīng)用程序的進(jìn)程是沒有用戶交互窗口的,比如命令行界面(Command Line Interface,⑶I)的應(yīng)用程序,這樣使得現(xiàn)有技術(shù)中獲得的應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)不是很準(zhǔn)確,從而確定的應(yīng)用程序的進(jìn)程的啟動(dòng)性能也不是很準(zhǔn)確。發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供應(yīng)用程序的進(jìn)程的性能確定方法和計(jì)算機(jī)系統(tǒng),使得確定的應(yīng)用程序的進(jìn)程的啟動(dòng)性能更為準(zhǔn)確。
本發(fā)明實(shí)施例提供一種應(yīng)用程序的進(jìn)程的性能確定方法,包括:
當(dāng)應(yīng)用程序的進(jìn)程啟動(dòng)時(shí),獲取所述應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻;
確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻;
將所述能響應(yīng)用戶輸入的時(shí)刻作為所述應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻,根據(jù)所述進(jìn)程啟動(dòng)時(shí)刻和所述進(jìn)程啟動(dòng)結(jié)束時(shí)刻獲取所述應(yīng)用程序的啟動(dòng)耗時(shí),以確定所述應(yīng)用程序的進(jìn)程的啟動(dòng)性能。
本發(fā)明實(shí)施例提供一種計(jì)算機(jī)系統(tǒng),包括:
進(jìn)程啟動(dòng)單元,用于啟動(dòng)應(yīng)用程序的進(jìn)程;
啟動(dòng)時(shí)刻獲取單元,用于當(dāng)所述進(jìn)程啟動(dòng)單元啟動(dòng)應(yīng)用程序的進(jìn)程時(shí),獲取所述應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻;
響應(yīng)時(shí)刻確定單元,用于確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻;
性能確定單元,用于將所述能響應(yīng)用戶輸入的時(shí)刻作為所述應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻,根據(jù)所述進(jìn)程啟動(dòng)時(shí)刻和所述進(jìn)程啟動(dòng)結(jié)束時(shí)刻獲取所述應(yīng)用程序的啟動(dòng)耗時(shí),以確定所述應(yīng)用程序的進(jìn)程的啟動(dòng)性能。
本發(fā)明實(shí)施例的方法中,當(dāng)應(yīng)用程序的進(jìn)程啟動(dòng)時(shí),應(yīng)用程序的進(jìn)程的性能確定裝置會(huì)獲取該應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻,確定應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻,將能響應(yīng)用戶輸入的時(shí)刻作為應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻,根據(jù)進(jìn)程啟動(dòng)時(shí)刻和進(jìn)程啟動(dòng)結(jié)束時(shí)刻獲取應(yīng)用程序的啟動(dòng)耗時(shí),以確定應(yīng)用程序的進(jìn)程的啟動(dòng)性能。這樣即使有些應(yīng)用程序的進(jìn)程沒有用戶交互界面,也不會(huì)影響到對(duì)于應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)的計(jì)算,從而使得獲得的應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)較為準(zhǔn)確,進(jìn)而確定的應(yīng)用程序的進(jìn)程的啟動(dòng)性能也比較準(zhǔn)確。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的一種應(yīng)用程序的進(jìn)程的性能確定方法的流程圖2是本發(fā)明實(shí)施例提供的另一種應(yīng)用程序的進(jìn)程的性能確定方法的流程圖3是本發(fā)明實(shí)施例提供的另一種應(yīng)用程序的進(jìn)程的性能確定方法的流程圖4是本發(fā)明實(shí)施例提供的一種計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖5是本發(fā)明實(shí)施例提供的另一種計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖6是本發(fā)明實(shí)施例提供的另一種計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖7是本發(fā)明實(shí)施例提供的一種應(yīng)用程序的進(jìn)程的性能確定方法應(yīng)用于的終端的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供一種應(yīng)用程序的進(jìn)程的性能確定方法,主要是通過對(duì)應(yīng)用程序的進(jìn)程的啟動(dòng)時(shí)間來確定,本發(fā)明實(shí)施例的方法是應(yīng)用程序的進(jìn)程的性能確定裝置所執(zhí)行的方法,流程圖如圖1所示,包括:
步驟101,當(dāng)應(yīng)用程序的進(jìn)程啟動(dòng)時(shí),獲取應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻tl。
可以理解,應(yīng)用程序的進(jìn)程的性能確定裝置在確定一個(gè)應(yīng)用程序的進(jìn)程的啟動(dòng)性能時(shí),需要獲取該應(yīng)用程序的進(jìn)程的多個(gè)參數(shù)來確定,其中如果要確定該應(yīng)用程序的進(jìn)程啟動(dòng)的性能時(shí),需要先獲取該應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí),首先應(yīng)用程序的進(jìn)程的性能確定裝置獲取該應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻。
在具體實(shí)現(xiàn)的過程中,應(yīng)用程序的進(jìn)程的性能確定裝置可以首先調(diào)用創(chuàng)建進(jìn)程(CreateProcess)的應(yīng)用程序編程接口(Application Programming Interface,API),來創(chuàng)建該應(yīng)用程序的進(jìn)程;而對(duì)于有些不能創(chuàng)建的應(yīng)用程序的進(jìn)程,應(yīng)用程序的進(jìn)程的性能確定裝置可以提示用戶手動(dòng)啟動(dòng)應(yīng)用程序,比如通過點(diǎn)擊應(yīng)用程序的進(jìn)程的圖標(biāo)。然后應(yīng)用程序的進(jìn)程的性能確定裝置可以調(diào)用獲取啟動(dòng)時(shí)刻(GetTickCount)的API,來獲取該應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻。
步驟102,確定應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻,有些應(yīng)用程序的進(jìn)程能接收用戶輸入的信息,并根據(jù)該用戶輸入的信息執(zhí)行一定的操作,這里應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入是指該應(yīng)用程序的進(jìn)程能接收用戶輸入的信息,具體地,可以判斷該應(yīng)用程序的進(jìn)程是否能接收鼠標(biāo)和/或鍵盤的輸入等,即鼠標(biāo)或鍵盤是否能打斷該應(yīng)用程序的進(jìn)程,如果可以,則說明應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入。
步驟103,將步驟102中確定的能響應(yīng)用戶輸入的時(shí)刻作為應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻t2,根據(jù)進(jìn)程啟動(dòng)時(shí)刻11和進(jìn)程啟動(dòng)結(jié)束時(shí)刻t2獲取應(yīng)用程序的啟動(dòng)耗時(shí),即該啟動(dòng)耗時(shí)為進(jìn)程啟動(dòng)結(jié)束時(shí)刻t2與進(jìn)程啟動(dòng)時(shí)刻tl之差,以確定應(yīng)用程序的進(jìn)程的啟動(dòng)性能,如果一個(gè)應(yīng)用程序的啟動(dòng)耗時(shí)較長,則該應(yīng)用程序的進(jìn)程的啟動(dòng)性能較差,需要進(jìn)行進(jìn)一步地優(yōu)化。
需要說明的是,上述應(yīng)用程序的進(jìn)程就是一個(gè)活躍著的應(yīng)用程序,即應(yīng)用程序的進(jìn)程的性能確定裝置已經(jīng)將應(yīng)用程序的代碼放到應(yīng)用程序的進(jìn)程的性能確定裝置的存儲(chǔ)模塊中,占有了一定的系統(tǒng)資源的應(yīng)用程序,一個(gè)應(yīng)用程序在沒有被調(diào)用到內(nèi)存空間之前叫做為程序,被調(diào)用并得到了資源后就可以稱為進(jìn)程,每個(gè)應(yīng)用程序的代碼對(duì)應(yīng)儲(chǔ)存在存儲(chǔ)模塊中的一段空間中,且一個(gè)應(yīng)用程序的進(jìn)程可以包括多個(gè)執(zhí)行線程。一個(gè)應(yīng)用程序的進(jìn)程啟動(dòng)是指將執(zhí)行該應(yīng)用程序的進(jìn)程時(shí)所需要的代碼及其它信息加載到應(yīng)用程序的進(jìn)程的性能確定裝置的存儲(chǔ)模塊,則該應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻為開始加載代碼及其它信息的時(shí)刻,而該應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻為代碼及其它信息加載完成的時(shí)刻。
可見,本發(fā)明實(shí)施例的方法中,當(dāng)應(yīng)用程序的進(jìn)程啟動(dòng)時(shí),應(yīng)用程序的進(jìn)程的性能確定裝置會(huì)獲取該應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻,確定應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)亥|J,將能響應(yīng)用戶輸入的時(shí)刻作為應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻,根據(jù)進(jìn)程啟動(dòng)時(shí)刻和進(jìn)程啟動(dòng)結(jié)束時(shí)刻獲取應(yīng)用程序的啟動(dòng)耗時(shí),以確定應(yīng)用程序的進(jìn)程的啟動(dòng)性能。這樣即使有些應(yīng)用程序的進(jìn)程沒有用戶交互界面,也不會(huì)影響到對(duì)于應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)的計(jì)算,從而使得獲得的應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)較為準(zhǔn)確,進(jìn)而確定的應(yīng)用程序的進(jìn)程的啟動(dòng)性能也比較準(zhǔn)確。
參考圖2所示,在一個(gè)具體的實(shí)施例中,如果應(yīng)用程序是CUI的應(yīng)用程序,比如實(shí)現(xiàn)Ping命令的應(yīng)用程序,該應(yīng)用程序通常不支持鼠標(biāo),用戶通過鍵盤輸入指令,當(dāng)該應(yīng)用程序的進(jìn)程接收到用戶輸入的指令后執(zhí)行該指令,應(yīng)用程序的進(jìn)程的性能確定裝置可以通過如下的步驟來實(shí)現(xiàn)上述步驟102:
Al:調(diào)用等待空閑輸入(WaitForIdleInput)接口,以便確定應(yīng)用程序的進(jìn)程是否能響應(yīng)用戶輸入,當(dāng)應(yīng)用程序的進(jìn)程的性能確定裝置調(diào)用等待空閑輸入接口時(shí),當(dāng)該等待空閑輸入接口確認(rèn)應(yīng)用程序的進(jìn)程有空閑能力處理用戶輸入時(shí)會(huì)返回,如果該應(yīng)用程序的進(jìn)程還沒有空閑能力處理用戶輸入時(shí),該等待空閑輸入接口則不會(huì)返回。
A2:將等待空閑輸入接口返回的時(shí)刻作為應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
進(jìn)一步地,當(dāng)該等待空閑輸入接口在預(yù)置的第一超時(shí)時(shí)間內(nèi)沒有返回,則應(yīng)用程序的進(jìn)程的性能確定裝置會(huì)停止執(zhí)行上述步驟102,即確定應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。這樣在該應(yīng)用程序的進(jìn)程的啟動(dòng)過程中,由于一些原因比如有些執(zhí)行線程處于死循環(huán)中而使得該應(yīng)用程序的進(jìn)程不能響應(yīng)用戶輸入,則應(yīng)用程序的進(jìn)程的性能確定裝置會(huì)停止獲取該應(yīng)用程序的進(jìn)程啟動(dòng)耗時(shí)的過程,從而不會(huì)影響該應(yīng)用程序的進(jìn)程的執(zhí)行。
可見,本實(shí)施例中,由于CUI的應(yīng)用程序的進(jìn)程的啟動(dòng)不會(huì)被其它執(zhí)行線程打斷,則通過等待空閑輸入接口即可較為方便地確定該應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻,從而獲取該應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)。
參考圖3所示,在另一個(gè)具體的實(shí)施例中,如果應(yīng)用程序是圖形用戶界面(Graphical User Interface,⑶I)的應(yīng)用程序,比如資源管理器等,該應(yīng)用程序的進(jìn)程在啟動(dòng)的過程中,不僅需要加載該應(yīng)用程序的代碼及其它信息,還需要采用圖形方式顯示用戶交互的窗口(包括主窗口和非主窗口),則在這種類型應(yīng)用程序的進(jìn)程啟動(dòng)過程中包括多個(gè)執(zhí)行線程,應(yīng)用程序的進(jìn)程的性能確定裝置可以通過如下的步驟來實(shí)現(xiàn)上述步驟102:
B1:監(jiān)聽?wèi)?yīng)用程序?qū)?yīng)的用戶交互的主窗口是否開啟。
B2:當(dāng)監(jiān)聽到應(yīng)用程序?qū)?yīng)的用戶交互的主窗口開啟后,向應(yīng)用程序?qū)?yīng)的主窗口發(fā)送一個(gè)消息,其中主窗口是指應(yīng)用程序的進(jìn)程最外層的窗口,通常為面積最大的一個(gè)窗P。
應(yīng)用程序的進(jìn)程的性能確定裝置具體可以調(diào)用消息監(jiān)聽(SetWindowsHookEx)接口或事件監(jiān)聽(SetWinEventHook)接口,以等待應(yīng)用程序的消息或事件的通知。如果應(yīng)用程序的進(jìn)程的性能確定裝置調(diào)用消息監(jiān)聽接口時(shí),該消息監(jiān)聽接口會(huì)選擇監(jiān)聽?wèi)?yīng)用程序?qū)?yīng)的窗口顯示的消息,也可以選擇監(jiān)聽其它消息,并在監(jiān)聽到這些消息時(shí)判斷是否是用戶交互的主窗口的顯示消息,如果是,則說明該應(yīng)用程序?qū)?yīng)的主窗口已經(jīng)顯示;如果應(yīng)用程序的進(jìn)程的性能確定裝置調(diào)用事件監(jiān)聽接口時(shí),該事件監(jiān)聽接口會(huì)監(jiān)聽該應(yīng)用程序?qū)?yīng)的主窗口顯示事件,并選擇監(jiān)聽?wèi)?yīng)用程序?qū)?yīng)的主窗口顯示的消息等,并在監(jiān)聽到這些顯示事件時(shí)判斷是否是用戶交互的主窗口的顯示事件,如果是,則說明該應(yīng)用程序?qū)?yīng)的主窗口已經(jīng)顯示。
當(dāng)監(jiān)聽到該應(yīng)用程序?qū)?yīng)的主窗口已經(jīng)顯示,則應(yīng)用程序的進(jìn)程的性能確定裝置會(huì)向該主窗口發(fā)送一個(gè)消息,該消息的隨意一個(gè)消息,具體地,應(yīng)用程序的進(jìn)程的性能確定裝置可以調(diào)用消息發(fā)送(SendMessage)接口來發(fā)送該消息,如果主窗口響應(yīng)該消息時(shí),則說明應(yīng)用程序的進(jìn)程也可以響應(yīng)用戶輸入了,則將主窗口的響應(yīng)時(shí)刻作為應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
B3:確定應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻為應(yīng)用程序?qū)?yīng)的主窗口對(duì)上述發(fā)送的消息的響應(yīng)時(shí)刻。
進(jìn)一步地,當(dāng)該應(yīng)用程序?qū)?yīng)的用戶交互的主窗口在預(yù)置的第二超時(shí)時(shí)間內(nèi)沒有響應(yīng)步驟B2中應(yīng)用程序的進(jìn)程的性能確定裝置發(fā)送的消息,則應(yīng)用程序的進(jìn)程的性能確定裝置會(huì)停止執(zhí)行上述步驟102,即確定應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。這樣在該應(yīng)用程序的進(jìn)程的啟動(dòng)過程中,由于一些原因比如有些執(zhí)行線程處于死循環(huán)中而使得該應(yīng)用程序的進(jìn)程不能響應(yīng)用戶輸入,則應(yīng)用程序的進(jìn)程的性能確定裝置會(huì)停止獲取該應(yīng)用程序的進(jìn)程啟動(dòng)耗時(shí)的過程,從而不會(huì)影響該應(yīng)用程序的進(jìn)程的執(zhí)行。
可見,本實(shí)施例中,由于GUI的應(yīng)用程序的進(jìn)程的啟動(dòng)過程中包括多個(gè)執(zhí)行線程,該應(yīng)用程序?qū)?yīng)的用戶交互的主窗口在顯示后的一段時(shí)間內(nèi),有可能無法響應(yīng)用戶輸入,這種情況下,該應(yīng)用程序的進(jìn)程并沒有完全啟動(dòng)。則本實(shí)施例中,需要確定在主窗口顯示后且能響應(yīng)用戶輸入的時(shí)刻作為該應(yīng)用應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻,從而獲取的該應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)也較為準(zhǔn)確。
本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)系統(tǒng),即上述的應(yīng)用程序的進(jìn)程的性能確定裝置,該計(jì)算機(jī)系統(tǒng)中各個(gè)單元之間可以按照上述方法實(shí)施例來確定應(yīng)用程序的進(jìn)程的啟動(dòng)性能,計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖可以如圖4所示,包括:
進(jìn)程啟動(dòng)單元10,用于啟動(dòng)應(yīng)用程序的進(jìn)程。
啟動(dòng)時(shí)刻獲取單元11,用于當(dāng)所述進(jìn)程啟動(dòng)單元11啟動(dòng)應(yīng)用程序的進(jìn)程時(shí),獲取所述應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻,具體地,啟動(dòng)時(shí)刻獲取單元11可以調(diào)用獲取啟動(dòng)時(shí)刻的API,來獲取進(jìn)程啟動(dòng)單元10開始啟動(dòng)應(yīng)用程序的進(jìn)程的時(shí)刻。
響應(yīng)時(shí)刻確定單元12,用于確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
性能確定單元13,用于將所述響應(yīng)時(shí)刻確定單元12確定的應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻作為所述應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻,即該啟動(dòng)耗時(shí)為進(jìn)程啟動(dòng)結(jié)束時(shí)刻t2與進(jìn)程啟動(dòng)時(shí)刻tl之差,根據(jù)所述啟動(dòng)時(shí)刻獲取單元11獲取的進(jìn)程啟動(dòng)時(shí)刻和所述進(jìn)程啟動(dòng)結(jié)束時(shí)刻獲取所述應(yīng)用程序的啟動(dòng)耗時(shí),以確定所述應(yīng)用程序的進(jìn)程的啟動(dòng)性倉泛。
本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)中,當(dāng)進(jìn)程啟動(dòng)單元10啟動(dòng)應(yīng)用程序的進(jìn)程時(shí),啟動(dòng)時(shí)刻獲取單元11會(huì)獲取該應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻,響應(yīng)時(shí)刻確定單元12確定應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻,性能確定單元13將能響應(yīng)用戶輸入的時(shí)刻作為應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻,根據(jù)進(jìn)程啟動(dòng)時(shí)刻和進(jìn)程啟動(dòng)結(jié)束時(shí)刻獲取應(yīng)用程序的啟動(dòng)耗時(shí),以確定應(yīng)用程序的進(jìn)程的啟動(dòng)性能。這樣即使有些應(yīng)用程序的進(jìn)程沒有用戶交互界面,也不會(huì)影響到對(duì)于應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)的計(jì)算,從而使得獲得的應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)較為準(zhǔn)確,進(jìn)而確定的應(yīng)用程序的進(jìn)程的啟動(dòng)性能也比較準(zhǔn)確。
參考圖5所示,在一個(gè)具體的實(shí)施例中,當(dāng)應(yīng)用程序是命令行界面CUI的應(yīng)用程序,則計(jì)算機(jī)系統(tǒng)除了可以包括如圖4所示的結(jié)構(gòu)外,還可以包括第一停止單元14,且其中的響應(yīng)時(shí)刻確定單元12具體可以通過輸入調(diào)用單元120和第一時(shí)刻確定單元121來實(shí)現(xiàn),具體地:
輸入調(diào)用單元120,用于調(diào)用等待空閑輸入接口,以便確定所述進(jìn)程啟動(dòng)單元10啟動(dòng)的應(yīng)用程序的進(jìn)程是否能響應(yīng)用戶輸入。
第一時(shí)刻確定單元121,用于將所述輸入調(diào)用單元120調(diào)用的等待空閑輸入接口返回的時(shí)刻作為所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
第一停止單元14,用于當(dāng)所述輸入調(diào)用單元120調(diào)用的等待空閑輸入接口在預(yù)置的第一超時(shí)時(shí)間內(nèi)沒有返回,則通知所述響應(yīng)時(shí)刻確定單元12停止確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
本實(shí)施例的計(jì)算機(jī)系統(tǒng)中,響應(yīng)時(shí)刻確定單元12中的輸入調(diào)用單元120可以調(diào)用等待空閑輸入接口,由第一時(shí)刻確定單元121來統(tǒng)計(jì)該等待空閑輸入接口返回的時(shí)刻,則性能確定單元13會(huì)將第一時(shí)刻確定單元121確定的時(shí)刻作為應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)亥IJ。如果等待空閑輸入接口在預(yù)置的第一超時(shí)時(shí)間內(nèi)沒有返回,則第一停止單元14會(huì)通知響應(yīng)時(shí)刻確定單元12停止確定該應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
參考圖6所示,在一個(gè)具體的實(shí)施例中,當(dāng)應(yīng)用程序是圖形用戶界面GUI的應(yīng)用程序,計(jì)算機(jī)系統(tǒng)除了可以包括如圖4所示的結(jié)構(gòu)外,還可以包括第二停止單元15,且其中的響應(yīng)時(shí)刻確定單元12具體可以通過消息發(fā)送單元122和第二時(shí)刻確定單元123和監(jiān)聽單元124來實(shí)現(xiàn),具體地:
監(jiān)聽單元124,用于監(jiān)聽所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口是否開啟;該監(jiān)聽單元124具體可以調(diào)用消息監(jiān)聽接口或事件監(jiān)聽接口,以等待所述應(yīng)用程序的消息或者事件的通知;當(dāng)所述消息監(jiān)聽接口或事件監(jiān)聽接口收到所述應(yīng)用程序的消息或者事件通知時(shí),判斷是否是用戶交互的主窗口顯示消息或事件,如果是,則說明該監(jiān)聽單元124監(jiān)聽到所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口開啟。
消息發(fā)送單元122,用于當(dāng)監(jiān)聽單元124監(jiān)聽到所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口開啟后,向所述進(jìn)程啟動(dòng)單元10啟動(dòng)的應(yīng)用程序?qū)?yīng)的主窗口發(fā)送一個(gè)消息;
第二時(shí)刻確定單元123,用于將到所述應(yīng)用程序?qū)?yīng)的主窗口對(duì)所述消息發(fā)送單元122發(fā)送的消息的響應(yīng)時(shí)刻作為所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
第二停止單元15,用于當(dāng)所述主窗口在預(yù)置的第二超時(shí)時(shí)間內(nèi)沒有響應(yīng)所述消息發(fā)送單元122發(fā)送的消息時(shí),則停止確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
本實(shí)施例的計(jì)算機(jī)系統(tǒng)中,響應(yīng)時(shí)刻確定單元12中的消息發(fā)送單元122可以在監(jiān)聽到應(yīng)用程序?qū)?yīng)的用戶交互的主窗口開啟后,發(fā)送隨意一個(gè)消息,由第二時(shí)刻確定單元123來統(tǒng)計(jì)上述開啟的主窗口對(duì)該消息的響應(yīng)時(shí)刻,則性能確定單元13會(huì)將第二時(shí)刻確定單元123確定的時(shí)刻作為應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻。如果主窗口在預(yù)置的第一超時(shí)時(shí)間內(nèi)沒有返回對(duì)該消息的響應(yīng),則第二停止單元15會(huì)通知響應(yīng)時(shí)刻確定單元12停止確定該應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
以下主要以本發(fā)明實(shí)施例的應(yīng)用程序的進(jìn)程的性能確定方法應(yīng)用于終端中來舉例說明,該終端可以包括智能手機(jī)、平板電腦、電子書閱讀器、動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面 3(Moving Picture Experts Group Audio Layer III, MP3)播放器、動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面4(Moving Picture Experts Group Audio Layer IV,MP4)播放器、膝上型便攜計(jì)算機(jī)和臺(tái)式計(jì)算機(jī)等等。
請(qǐng)參考圖7,其示出了本發(fā)明實(shí)施例所涉及的終端的結(jié)構(gòu)示意圖,具體來講:
終端可以包括射頻(Radio Frequency, RF)電路20、包括有一個(gè)或一個(gè)以上計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的存儲(chǔ)器21、輸入單元22、顯示單元23、傳感器24、音頻電路25、無線保真(wireless fidelity,WiFi)模塊26、包括有一個(gè)或者一個(gè)以上處理核心的處理器27、以及電源28等部件。本領(lǐng)域技術(shù)人員可以理解,圖7中示出的終端結(jié)構(gòu)并不構(gòu)成對(duì)終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
RF電路20可用于收發(fā)信息或通話過程中,信號(hào)的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個(gè)或者一個(gè)以上處理器27處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路20包括但不限于天線、至少一個(gè)放大器、調(diào)諧器、一個(gè)或多個(gè)振蕩器、用戶身份模塊(SIM)卡、收發(fā)信機(jī)、耦合器、低噪聲放大器(Low Noise Amplifier,LNA)、雙工器等。此外,RF電路20還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。所述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于全球移動(dòng)通訊系統(tǒng)(Global System of Mobilecommunication, GSM)、通用分組無線服務(wù)(General Packet Radio Service, GPRS)、碼分多址(Code Division Multiple Access, CDMA)、寬帶碼分多址(Wideband Code DivisionMultiple Access, WCDMA)、長期演進(jìn)(Long Term Evolution, LTE)、電子郵件、短消息服務(wù)(Short Messaging Service, SMS)等。
存儲(chǔ)器21可用于存儲(chǔ)軟件程序以及模塊,處理器27通過運(yùn)行存儲(chǔ)在存儲(chǔ)器21的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲(chǔ)器21可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)終端的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器21可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。相應(yīng)地,存儲(chǔ)器21還可以包括存儲(chǔ)器控制器,以提供處理器27和輸入單元22對(duì)存儲(chǔ)器21的訪問。
輸入單元22可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標(biāo)、操作桿、光學(xué)或者軌跡球信號(hào)輸入。具體地,在一個(gè)具體的實(shí)施例中,輸入單元22可包括觸敏表面221以及其他輸入設(shè)備222。觸敏表面221,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面221上或在觸敏表面221附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置。可選的,觸敏表面221可包括觸摸檢測(cè)裝置和觸摸控制器兩個(gè)部分。其中,觸摸檢測(cè)裝置檢測(cè)用戶的觸摸方位,并檢測(cè)觸摸操作帶來的信號(hào),將信號(hào)傳送給觸摸控制器;觸摸控制器從觸摸檢測(cè)裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器27,并能接收處理器27發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸敏表面221。除了觸敏表面221,輸入單元22還可以包括其他輸入設(shè)備222。具體地,其他輸入設(shè)備222可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
顯示單元23可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標(biāo)、視頻和其任意組合來構(gòu)成。顯示單元23可包括顯示面板231,可選的,可以采用液晶顯示器(Liquid Crystal Display,IXD)、有機(jī)發(fā)光二極管(Organic Light-Emitting Diode, OLED)等形式來配置顯示面板231。進(jìn)一步的,觸敏表面221可覆蓋顯示面板231,當(dāng)觸敏表面221檢測(cè)到在其上或附近的觸摸操作后,傳送給處理器27以確定觸摸事件的類型,隨后處理器27根據(jù)觸摸事件的類型在顯示面板231上提供相應(yīng)的視覺輸出。雖然在圖7中,觸敏表面221與顯示面板231是作為兩個(gè)獨(dú)立的部件來實(shí)現(xiàn)輸入和輸入功能,但是在某些實(shí)施例中,可以將觸敏表面221與顯示面板231集成而實(shí)現(xiàn)輸入和輸出功能。
終端還可包括至少一種傳感器24,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板231的亮度,接近傳感器可在終端移動(dòng)到耳邊時(shí),關(guān)閉顯示面板231和/或背光。作為運(yùn)動(dòng)傳感器的一種,重力加速度傳感器可檢測(cè)各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測(cè)出重力的大小及方向,可用于識(shí)別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識(shí)別相關(guān)功能(比如計(jì)步器、敲擊)等;至于終端還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路25、揚(yáng)聲器251,傳聲器252可提供用戶與終端之間的音頻接口。音頻電路25可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號(hào),傳輸?shù)綋P(yáng)聲器251,由揚(yáng)聲器251轉(zhuǎn)換為聲音信號(hào)輸出;另一方面,傳聲器252將收集的聲音信號(hào)轉(zhuǎn)換為電信號(hào),由音頻電路25接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器27處理后,經(jīng)RF電路20以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲(chǔ)器21以便進(jìn)一步處理。音頻電路25還可能包括耳塞插孔,以提供外設(shè)耳機(jī)與終端的通信。
WiFi屬于短距離無線傳輸技術(shù),終端通過WiFi模塊26可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖7示出了WiFi模塊26,但是可以理解的是,其并不屬于終端的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器27是終端的控制中心,利用各種接口和線路連接整個(gè)手機(jī)的各個(gè)部分,通過運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器21內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器21內(nèi)的數(shù)據(jù),執(zhí)行終端的各種功能和處理數(shù)據(jù),從而對(duì)手機(jī)進(jìn)行整體監(jiān)控??蛇x的,處理器27可包括一個(gè)或多個(gè)處理核心;優(yōu)選的,處理器27可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器27中。
終端還包括給各個(gè)部件供電的電源28(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器27邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。電源28還可以包括一個(gè)或一個(gè)以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測(cè)電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
盡管未示出,終端還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。具體在本實(shí)施例中,終端中的處理器27會(huì)按照如下的指令,執(zhí)行存儲(chǔ)器21中儲(chǔ)存的一個(gè)或一個(gè)以上的應(yīng)用程序,從而實(shí)現(xiàn)各種功能:
當(dāng)應(yīng)用程序的進(jìn)程啟動(dòng)時(shí),獲取應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻;
確定應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻;
將能響應(yīng)用戶輸入的時(shí)刻作為應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻,根據(jù)進(jìn)程啟動(dòng)時(shí)刻和進(jìn)程啟動(dòng)結(jié)束時(shí)刻獲取應(yīng)用程序的啟動(dòng)耗時(shí),以確定應(yīng)用程序的進(jìn)程的啟動(dòng)性能。
進(jìn)一步地,如果該應(yīng)用程序是命令行界面CUI的應(yīng)用程序時(shí),則處理器27在確定應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻時(shí),可以調(diào)用等待空閑輸入接口,以便確定所述應(yīng)用程序的進(jìn)程是否能響應(yīng)用戶輸入;將所述等待空閑輸入接口返回的時(shí)刻作為所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。如果等待空閑輸入接口在預(yù)置的第一超時(shí)時(shí)間內(nèi)沒有返回,則停止確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
另外一方面,如果該應(yīng)用程序是圖形用戶界面GUI的應(yīng)用程序時(shí),則處理器27在確定應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻時(shí),會(huì)監(jiān)聽所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口是否開啟,當(dāng)監(jiān)聽到所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口開啟后,向所述應(yīng)用程序?qū)?yīng)的主窗口發(fā)送一個(gè)消息;將到所述應(yīng)用程序?qū)?yīng)的主窗口的響應(yīng)時(shí)刻作為所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。如果所述主窗口在預(yù)置的第二時(shí)間內(nèi)沒有響應(yīng)所述消息時(shí),則停止確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
其中,處理器27在監(jiān)聽所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口開啟時(shí),具體可以調(diào)用消息監(jiān)聽接口或事件監(jiān)聽接口,,以等待所述應(yīng)用程序的消息或者事件的通知;當(dāng)所述消息監(jiān)聽接口或事件監(jiān)聽接口收到所述應(yīng)用程序的消息或者事件通知時(shí),判斷是否是用戶交互的主窗口顯示消息或事件,如果是,則監(jiān)聽到所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口開啟。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、磁盤或光盤等。
以上對(duì)本發(fā)明實(shí)施例所提供的應(yīng)用程序的進(jìn)程的性能確定方法和計(jì)算機(jī)系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種應(yīng)用程序的進(jìn)程的性能確定方法,其特征在于,包括: 當(dāng)應(yīng)用程序的進(jìn)程啟動(dòng)時(shí),獲取所述應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻; 確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻; 將所述能響應(yīng)用戶輸入的時(shí)刻作為所述應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻,根據(jù)所述進(jìn)程啟動(dòng)時(shí)刻和所述進(jìn)程啟動(dòng)結(jié)束時(shí)刻獲取所述應(yīng)用程序的啟動(dòng)耗時(shí),以確定所述應(yīng)用程序的進(jìn)程的啟動(dòng)性能。
2.如權(quán)利要求1所述的方法,其特征在于,當(dāng)所述應(yīng)用程序是命令行界面CUI的應(yīng)用程序,則所述確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻,具體包括: 調(diào)用等待空閑輸入接口,以便確定所述應(yīng)用程序的進(jìn)程是否能響應(yīng)用戶輸入; 將所述等待空閑輸入接口返回的時(shí)刻作為所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
3.如權(quán)利要求2所述的方法,其特征在于,當(dāng)所述等待空閑輸入接口在預(yù)置的第一超時(shí)時(shí)間內(nèi)沒有返回,則停止確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
4.如權(quán)利要求1所述的方法,其特征在于,當(dāng)所述應(yīng)用程序是圖形用戶界面GUI的應(yīng)用程序,則所述確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻,具體包括: 監(jiān)聽所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口是否開啟; 當(dāng)監(jiān)聽到所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口開啟后,向所述應(yīng)用程序?qū)?yīng)的主窗口發(fā)送一個(gè)消息; 將到所述應(yīng)用程序?qū)?yīng)的主窗口的響應(yīng)時(shí)刻作為所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
5.如權(quán)利要求4所述的方法,其特征在于,所述監(jiān)聽所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口是否開啟,具體包括: 調(diào)用消息監(jiān)聽接口或事件監(jiān)聽接口,以等待所述應(yīng)用程序的消息或者事件的通知; 當(dāng)所述消息監(jiān)聽接口或事件監(jiān)聽接口收到所述應(yīng)用程序的消息或者事件通知時(shí),判斷是否是用戶交互的主窗口顯示消息或事件,如果是,則監(jiān)聽到所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口開啟。
6.如權(quán)利要求4或5所述的方法,其特征在于,當(dāng)所述主窗口在預(yù)置的第二超時(shí)時(shí)間內(nèi)沒有響應(yīng)所述消息時(shí),則停止確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
7.一種計(jì)算機(jī)系統(tǒng),其特征在于,包括: 進(jìn)程啟動(dòng)單元,用于啟動(dòng)應(yīng) 用程序的進(jìn)程; 啟動(dòng)時(shí)刻獲取單元,用于當(dāng)所述進(jìn)程啟動(dòng)單元啟動(dòng)應(yīng)用程序的進(jìn)程時(shí),獲取所述應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻; 響應(yīng)時(shí)刻確定單元,用于確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻; 性能確定單元,用于將所述能響應(yīng)用戶輸入的時(shí)刻作為所述應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻,根據(jù)所述進(jìn)程啟動(dòng)時(shí)刻和所述進(jìn)程啟動(dòng)結(jié)束時(shí)刻獲取所述應(yīng)用程序的啟動(dòng)耗時(shí),以確定所述應(yīng)用程序的進(jìn)程的啟動(dòng)性能。
8.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其特征在于,當(dāng)所述應(yīng)用程序是命令行界面CUI的應(yīng)用程序,則所述響應(yīng)時(shí)刻確定單元,具體包括: 輸入調(diào)用單元,用于調(diào)用等待空閑輸入接口,以便確定所述應(yīng)用程序的進(jìn)程是否能響應(yīng)用戶輸入; 第一時(shí)刻確定單元,用于將所述等待空閑輸入接口返回的時(shí)刻作為所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
9.如權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述系統(tǒng)還包括: 第一停止單元,用于當(dāng)所述等待空閑輸入接口在預(yù)置的第一超時(shí)時(shí)間內(nèi)沒有返回,則通知所述響應(yīng)時(shí)刻確定單元停止確定所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
10.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其特征在于,當(dāng)所述應(yīng)用程序是圖形用戶界面GUI的應(yīng)用程序,則所述響應(yīng)時(shí)刻確定單元,具體包括: 監(jiān)聽單元,用于監(jiān)聽所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口是否開啟; 消息發(fā)送單元,用于當(dāng)所述監(jiān)聽單元監(jiān)聽到所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口開啟后,向所述應(yīng)用程序?qū)?yīng)的主窗口發(fā)送一個(gè)消息; 第二時(shí)刻確定單元,用于將到所述應(yīng)用程序?qū)?yīng)的主窗口的響應(yīng)時(shí)刻作為所述應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻。
11.如權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),其特征在于, 所述監(jiān)聽單元,具體用于調(diào)用消息監(jiān)聽接口或事件監(jiān)聽接口,以等待所述應(yīng)用程序的消息或者事件的通知;當(dāng)所述消息監(jiān)聽接口或事件監(jiān)聽接口收到所述應(yīng)用程序的消息或者事件通知時(shí),判斷是否是用戶交互的主窗口顯示消息或事件,如果是,則監(jiān)聽到所述應(yīng)用程序?qū)?yīng)的用戶交互的主窗口開啟。
12.如權(quán)利要求10或11所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述系統(tǒng)還包括: 第二停止單元,用于當(dāng)所述主窗口在預(yù)置的第二超時(shí)時(shí)間內(nèi)沒有響應(yīng)所述消息時(shí),則停止確定所述應(yīng)用程序的進(jìn)程 能響應(yīng)用戶輸入的時(shí)刻。
全文摘要
本發(fā)明實(shí)施例公開了應(yīng)用程序的進(jìn)程的性能確定方法和計(jì)算機(jī)系統(tǒng),應(yīng)用于計(jì)算機(jī)技術(shù)領(lǐng)域。本發(fā)明實(shí)施例的方法中,當(dāng)應(yīng)用程序的進(jìn)程啟動(dòng)時(shí),應(yīng)用程序的進(jìn)程的性能確定裝置會(huì)獲取該應(yīng)用程序的進(jìn)程啟動(dòng)時(shí)刻,確定應(yīng)用程序的進(jìn)程能響應(yīng)用戶輸入的時(shí)刻,將能響應(yīng)用戶輸入的時(shí)刻作為應(yīng)用程序的進(jìn)程啟動(dòng)結(jié)束時(shí)刻,根據(jù)進(jìn)程啟動(dòng)時(shí)刻和進(jìn)程啟動(dòng)結(jié)束時(shí)刻獲取應(yīng)用程序的啟動(dòng)耗時(shí),以確定應(yīng)用程序的進(jìn)程的啟動(dòng)性能。這樣即使有些應(yīng)用程序的進(jìn)程沒有用戶交互界面,也不會(huì)影響到對(duì)于應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)的計(jì)算,從而使得獲得的應(yīng)用程序的進(jìn)程的啟動(dòng)耗時(shí)較為準(zhǔn)確,進(jìn)而確定的應(yīng)用程序的進(jìn)程的啟動(dòng)性能也比較準(zhǔn)確。
文檔編號(hào)G06F9/445GK103197944SQ20131012499
公開日2013年7月10日 申請(qǐng)日期2013年4月11日 優(yōu)先權(quán)日2013年4月11日
發(fā)明者畢廷禮, 聶科峰 申請(qǐng)人:騰訊科技(深圳)有限公司