應(yīng)用的預(yù)測預(yù)啟動的制作方法
【專利說明】應(yīng)用的預(yù)測預(yù)啟動
【背景技術(shù)】
[0001] 由于在初始化期間所使用的資源,所以啟動應(yīng)用是昂貴的操作。隨著可以趨向于 比傳統(tǒng)臺式機(jī)具有更多的硬件約束的低代價設(shè)備的普及,這個問題可能進(jìn)一步加重。在過 去,像高速緩存的解決方案已經(jīng)用于加速應(yīng)用啟動。雖然這些解決方案改善了應(yīng)用的啟動 時間,但是它們可能不足以給予用戶足夠的響應(yīng)或所期望的性能,并且當(dāng)高速緩存空間有 限時,可能不太有效。
【發(fā)明內(nèi)容】
[0002] 以下內(nèi)容呈現(xiàn)發(fā)明的簡化概述以便提供對本文中所描述的一些方面的基本理解。 該
【發(fā)明內(nèi)容】
不是要求保護(hù)的主題的廣泛概述。它既不旨在標(biāo)識要求保護(hù)的主題的關(guān)鍵元素 或必要元素,也不旨在描繪本主題發(fā)明的范圍。其唯一目的是以簡化形式呈現(xiàn)所要求保護(hù) 的主題的一些概念,以作為稍后呈現(xiàn)的【具體實施方式】的前序。
[0003] 公開了在計算機(jī)系統(tǒng)中預(yù)啟動應(yīng)用的系統(tǒng)和方法,所述應(yīng)用很可能從終止和/或 暫停進(jìn)程狀態(tài)由用戶激活。應(yīng)用的預(yù)啟動可以基于正在被激活的應(yīng)用的評估概率以及影響 這樣的預(yù)啟動的系統(tǒng)資源的可用性水平。應(yīng)用可以基于這些和其它條件/考慮被預(yù)啟動, 其被設(shè)計成改善后臺中的應(yīng)用的快速啟動的用戶體驗。若干個預(yù)測模型被呈現(xiàn)以提供正在 由用戶激活的應(yīng)用的似然性的良好估計。這樣的預(yù)測模型可以包括自適應(yīng)預(yù)測器(基于過 去的應(yīng)用使用情形)和/或切換速率預(yù)測器(基于被應(yīng)用到這樣的切換速率測量的正在被切 換的并且可能具有衰減速率(decayrate)的應(yīng)用的歷史數(shù)據(jù))。
[0004] 在一個實施例中,公開了一種用于在計算機(jī)系統(tǒng)內(nèi)預(yù)啟動應(yīng)用的方法。該方法可 以包括以下步驟:對于給定的應(yīng)用集合,所述應(yīng)用能夠由計算機(jī)系統(tǒng)的用戶激活,將所述應(yīng) 用何時可以由所述用戶激活的預(yù)測與所述應(yīng)用相關(guān)聯(lián);監(jiān)控所述計算機(jī)系統(tǒng)的系統(tǒng)資源; 將預(yù)啟動規(guī)則集合應(yīng)用于所述應(yīng)用集合,所述預(yù)啟動規(guī)則包括組的其中一個,所述組包括: 關(guān)于所述系統(tǒng)資源可用性的規(guī)則和關(guān)于與所述應(yīng)用相關(guān)聯(lián)的所述預(yù)測的規(guī)則;和基于所述 預(yù)啟動規(guī)則集合的滿足來預(yù)啟動一個所述應(yīng)用。
[0005] 在另一實施例中,公開了一種用于在計算機(jī)系統(tǒng)上預(yù)啟動應(yīng)用的系統(tǒng)。該系統(tǒng)可 以包括:預(yù)測引擎,所述預(yù)測引擎能夠提供給定應(yīng)用可以由所述計算機(jī)系統(tǒng)的用戶激活的 似然性的預(yù)測測量;資源監(jiān)控器,所述資源監(jiān)控器能夠提供所述計算機(jī)系統(tǒng)的系統(tǒng)資源利 用的測量;預(yù)啟動策略模塊,所述預(yù)啟動策略模塊能夠應(yīng)用預(yù)啟動策略規(guī)則集合,所述預(yù)啟 動策略規(guī)則包括組的其中一個,所述組包括:關(guān)于所述系統(tǒng)資源可用性的規(guī)則和關(guān)于與所 述應(yīng)用相關(guān)聯(lián)的所述預(yù)測測量的規(guī)則;和預(yù)啟動隊列模塊,所述預(yù)啟動隊列模塊能夠維護(hù) 用于在所述計算機(jī)系統(tǒng)預(yù)啟動的應(yīng)用列表,所述應(yīng)用列表取決于所述預(yù)啟動策略規(guī)則的滿 足。
[0006]當(dāng)結(jié)合在本申請中呈現(xiàn)的附圖閱讀時,下文在【具體實施方式】中呈現(xiàn)本系統(tǒng)的其它 特征和方面。
【附圖說明】
[0007] 在參照的附圖中圖示了示例性實施例。旨在使本文中所公開的實施例和附圖被認(rèn) 為是說明性的而非限制性的。
[0008] 圖1描繪了按照本申請的原理做出的本系統(tǒng)可以駐留在其中的許多個示例性環(huán) 境。
[0009] 圖2示出了按照本申請的原理做出的本系統(tǒng)的一個實施例。
[0010] 圖3是用于在其中預(yù)測預(yù)啟動是可能的應(yīng)用的狀態(tài)圖的一個實施例。
[0011] 圖4描繪了范例示例以圖示本系統(tǒng)和方法的使用。
[0012] 圖5和圖6描繪了可以在本申請的一些實施例中采用的自適應(yīng)預(yù)測器的一個實施 例和一個范例示例。
[0013] 圖7和圖8描繪了可以在本申請的一些實施例中采用的速率預(yù)測器的一個實施例 和一個范例示例。
【具體實施方式】
[0014] 如本文中所利用的,術(shù)語"組件"、"系統(tǒng)"、"接口"、"控制器"等旨在是指計算機(jī)相 關(guān)的實體,或者是硬件、軟件(例如,執(zhí)行中的)和/或固件。例如,這些術(shù)語的任一個都可 以是在處理器上運行的進(jìn)程、處理器、對象、可執(zhí)行程序、程序和/或計算機(jī)。通過圖示的方 式,在服務(wù)器上運行的應(yīng)用和服務(wù)器兩者可以是組件和/或控制器。一個或多個組件/控 制器可以駐留在進(jìn)程內(nèi),并且組件/控制器可以被定位在一個計算機(jī)上和/或分布在兩個 或更多個計算機(jī)之間。
[0015] 參照附圖對所要求保護(hù)的主題進(jìn)行描述,其中,相同的附圖標(biāo)記在全文中被用于 指代相同元件。在以下說明書中,出于解釋的目的,許多特定細(xì)節(jié)被闡述以便提供對本主題 發(fā)明的透徹理解。然而,明顯的是,所要求保護(hù)的主題可以在沒有這些具體細(xì)節(jié)的情況下被 實施。在其它實例中,眾所周知的結(jié)構(gòu)和設(shè)備以方框圖的形式示出,以便促進(jìn)描述本發(fā)明。
[0016] 預(yù)測預(yù)啟動的概述 在很多實施例中,可以期望操作系統(tǒng)提供快速且流暢的用戶體驗。如所提及的,其中該 愿望沒有完全實現(xiàn)的一個領(lǐng)域是現(xiàn)代應(yīng)用的啟動時間。一個可能的實施例影響以下方面: 因為啟動應(yīng)用趨向于比切換到暫停應(yīng)用更加昂貴,所以在應(yīng)用由用戶啟動(并且可能將它 置于暫停狀態(tài))之前預(yù)加載該應(yīng)用可能趨向于改善應(yīng)用的所感知的起動性能。在另一實施 例中,可以期望當(dāng)終止應(yīng)用時本系統(tǒng)做出正確的選擇一作為潛在地減少昂貴的新的應(yīng)用啟 動的實例的方式。另外,可以期望具有對用戶透明地工作的這些特征,例如,用戶可能僅注 意到改善的性能,而沒有注意到任何(或很多)實現(xiàn)方式細(xì)節(jié)。
[0017] 在考慮本文中的預(yù)測預(yù)啟動的各種實施例中,應(yīng)當(dāng)領(lǐng)會的是,預(yù)測預(yù)啟動的方法 和技術(shù)可以在許多不同場景中采用。在一些場景中,本系統(tǒng)可以執(zhí)行用于單獨應(yīng)用的其預(yù) 測預(yù)啟動,例如,一次考慮一個。在其它情形中,本系統(tǒng)可以考慮有關(guān)應(yīng)用的集合。例如,以 下是用戶應(yīng)用和在其中本系統(tǒng)可以采用本申請的技術(shù)的方式的示例的部分列舉: (1) 典型地一起使用而不管特定次序的應(yīng)用的組,例如,辦公應(yīng)用(例如,文字處理器、 演示軟件、電子表格軟件等)。 (2) 典型地以一定順序使用的應(yīng)用:由瀏覽器跟隨的新聞應(yīng)用、照片編輯器或pdf閱讀 器跟隨的電子郵件應(yīng)用等。 (3) 典型地在一天中的某些時間或一周中的某些天使用的應(yīng)用:查看新聞、電子郵件、 天氣預(yù)報、上班前早上交通、從會議/午餐(會議通常周復(fù)一周的重復(fù))回來后查看電子郵 件/頂、下午6點下班之前查看交通、星期五下班之前查看周末天氣、晚上在家查看新聞/體 育、查看用戶的日歷等。 (4) 在規(guī)律的時間間隔所使用的應(yīng)用:每天在午餐時期間查看新聞/股票。 (5) 位置特定的應(yīng)用使用(例如,經(jīng)由GPS/Wi-Fi、用戶輸入等收集的):平板設(shè)備在工 作時用于工作,但在家里用于孩子們的游戲。 (6) 響應(yīng)于計算機(jī)中的某些事件所使用的應(yīng)用:登錄之后或者從睡眠狀態(tài)喚醒計算機(jī) 之后,使用電子郵件應(yīng)用和頂應(yīng)用。
[0018] 示例性環(huán)境 圖1是預(yù)測預(yù)啟動可以駐留在其中的一些示例性環(huán)境的一個實施例。如在圖1中可以 看出,本系統(tǒng)的實施例可以安裝在計算機(jī)系統(tǒng)102內(nèi)。合適的計算機(jī)系統(tǒng)可以包括任意數(shù) 量的系統(tǒng),例如,PC/臺式機(jī)102a、膝上型計算機(jī)102b、平板計算機(jī)102c或者任何智能設(shè)備、 智能手機(jī)。該系統(tǒng)具有運行本系統(tǒng)的足夠的處理和存儲器能力可能就足夠了。
[0019] 如本領(lǐng)域已知的,計算機(jī)系統(tǒng)102還可以包括控制器104,該控制器104進(jìn)而可以 具有一個或多個處理器(例如,CPU和/或GPU)和計算機(jī)存儲器。計算機(jī)系統(tǒng)102還可以 具有安裝在存儲器中的和工作以控制可以由計算機(jī)系統(tǒng)的用戶激活的各種應(yīng)用的生命周 期的操作系統(tǒng)106。
[0020] 如本文所描述的,本申請的一個實施例可能已經(jīng)安裝預(yù)測預(yù)啟動108模塊,該預(yù) 測預(yù)啟動108模塊可以與操作系統(tǒng)106結(jié)合工作以影響本系統(tǒng)的方法和技術(shù)以及它們的各 種實施例。
[0021] 在本系統(tǒng)的其它實施例中(并且如將在下文中更詳細(xì)地討論的),預(yù)測預(yù)啟動可以 (整體或部分)遠(yuǎn)離任何具體計算機(jī)系統(tǒng)而被安裝。如圖1所示,預(yù)測預(yù)啟動模塊可以在客 戶端-服務(wù)器模型(或任何其它合適的模型)中經(jīng)由服務(wù)器110接入計算機(jī)系統(tǒng)。如下文將 要討論的,如果與應(yīng)用的用戶使用模式有關(guān)的某些數(shù)據(jù)和/或元數(shù)據(jù)可以被遠(yuǎn)程地共享, 那么任何一個用戶的預(yù)測預(yù)啟動的效果可以跟隨和/或迀移到用戶可以擁有和/或訪問的 任何其它計算機(jī)系統(tǒng)112。
[0022] 一個實施例 圖2描繪了按照本申請的原理做出的本系統(tǒng)的一個可能實施例。
[0023] 系統(tǒng)200包括可以駐留在操作系統(tǒng)中的許多(可能可選的)模塊,其在計算機(jī)系統(tǒng) (例如,智能電話、智能設(shè)備、平板設(shè)備、膝上型計算機(jī)、臺式機(jī)等)內(nèi)的處理器上運行。在可 替換的實施例中,這些模塊的一些(或全部)可以遠(yuǎn)離操作系統(tǒng)駐留,但與計算機(jī)系統(tǒng)的操 作系統(tǒng)通信。應(yīng)當(dāng)領(lǐng)會的是,存在許多本系統(tǒng)的可能實現(xiàn)方式,并且該本申請的范圍涵蓋所 有這樣的可能實現(xiàn)方式和/或?qū)嵤├?br>[0024] 預(yù)啟動服務(wù)模塊202包括處理模塊集合,例如,預(yù)測引擎204、資源監(jiān)控器206、預(yù) 啟動策略208和預(yù)啟動隊列210。預(yù)測引擎204可以包括可以幫助本系統(tǒng)評估計算機(jī)系統(tǒng) 的用戶所需要和/或期望運行特定應(yīng)用的概率規(guī)則和/或啟發(fā)式集合,如本文中更詳細(xì)地 描述的。預(yù)測引擎可以關(guān)聯(lián)任何給定應(yīng)用可以何時由用戶激活的預(yù)測。
[0025] 應(yīng)當(dāng)領(lǐng)會的是,與應(yīng)用相關(guān)聯(lián)的預(yù)測可以包括任何已知的數(shù)據(jù)結(jié)構(gòu)和/或元數(shù)據(jù) 結(jié)構(gòu)的形式。如果滿足用于預(yù)啟動的一些合適規(guī)則/啟發(fā)式集合,則預(yù)測可以被本系統(tǒng)利 用以幫助做出關(guān)于哪些應(yīng)用可以被預(yù)啟動的決定可能是足夠的。這些規(guī)則可以包括:監(jiān)控 和/或測試可用系統(tǒng)資源和/或預(yù)啟動策略規(guī)則/啟發(fā)式,如將在本文中進(jìn)一步討論的。
[0026] 資源監(jiān)控器206可以評估計算機(jī)系統(tǒng)的資源的利用,例如,用于應(yīng)用的潛在預(yù)啟 動的當(dāng)前可用的處理和/或存儲器資源。預(yù)啟動策略208可以將用于本系統(tǒng)可以何時期望 地預(yù)啟動一個或多個應(yīng)用的規(guī)則和/或啟發(fā)式通知給本系統(tǒng)。預(yù)啟動隊列210可以訪問關(guān) 于可能已經(jīng)預(yù)啟動和/或被期望預(yù)啟動的應(yīng)用的元數(shù)據(jù)和/或數(shù)據(jù)集合。
[0027] 將領(lǐng)會的是,出于本申請的目的,這些模塊的一個或多個可以是可選的。本系統(tǒng)