專利名稱:一種移動富媒體播放器的緩存優化方法
技術領域:
本發明屬于富媒體技術領域,更為具體地講,涉及一種移動富媒體播放器的緩存 優化方法
背景技術:
目前隨著移動互聯網技術的發展,基于移動終端的移動富媒體應用也如雨后春筍 般不斷涌現,它們為人們的生活和工作帶來了極大的便利。與此同時,隨著移動富媒體應用 的增多,人們對移動富媒體播放器性能的要求也越來越高,移動富媒體應用的響應時間、反 應速度、流暢度等成為評價一個應用好壞的重要指標。運行于PC客戶端的移動富媒體播放器由于具備可觀的硬件條件,幾乎可以不用 考慮緩存等方面的優化就可以較順暢的運行。然而,移動富媒體播放器由于受到移動終端 設備處理器和內存等方面的限制,若不采取有效的優化措施,很容易導致移動富媒體應用 響應緩慢、延遲明顯而影響用戶體驗。通常的移動富媒體播放器在不使用緩存區的時候,基于其上的應用可以將本地資 源文件中所有需要的字符點陣信息全部讀取到內存中,然后再確定字符點陣的尺寸并用于 給頁面布局,最終進行顯示。這樣做有兩個明顯的缺點1、將頁面上的所有字符點陣全部讀入內存會帶來很多重復字符信息的冗余數據, 給內存資源帶來極大的浪費,這對于手機等受限設備來講是極為不現實的,很有可能會導 致內存資源消耗殆盡;2、應用每顯示一個字符都要從資源文件所有字符的點陣中查找所需字符的點陣 信息,這將耗費掉大量的時間,必然會造成應用顯示緩慢。此外,根據文獻提供的數據,移動富媒體應用中手機游戲、手機閱讀、手機搜索、手 機瀏覽器列在了移動互聯網用戶近半年使用過的手機應用服務的前四位,而這些應用中很 大一部分內容就是字符。因此,解決移動富媒體播放器的字符緩存問題是解決響應時間、反 應速度和流暢度的重點。
發明內容
本發明的目的在于克服現有檢測方法的不足,提出一種動富媒體播放器的緩存優 化方法,以有效地減少對移動設備的內存開銷,極大地加快了富媒體播放器的顯示時間和 響應速度,從而使得移動富媒體應用能夠在手機等移動終端上流暢的運行。為實現上述發明目的,本發明動富媒體播放器的緩存優化方法,其特征在于,包括 以下步驟(1)、在移動富媒體播放器與本地資源文件之間設置字符緩存區,用來緩存移動富 媒體播放器常用的字符點陣信息;同時,字符緩沖區內還存有字符點陣的寬高信息;(2)、移動富媒體播放器首先到字符緩存區中搜索所需顯示的字符,如果字符緩存 區中已經有了該字符,則將字符緩存區中存儲的字符點陣、寬、高信息直接讀取出來并進行排版顯示;否則,從本地資源文件中讀取并顯示;(3)、字符緩存區字符的置換設置一緩存管理器,用于維護富媒體播放器使用過的字符點陣信息的日志表來決 定置換緩存中的哪個字符,該日志表內容包括字符關鍵字K、總使用次數Cl、第一次使用 時的時刻Tl、權值V、上次計算權值的時刻T2、周期內使用次數C2;每當一個字符被請求時, 該字符所對應的總使用次數Cl和周期內使用次數C2分別加1,T時刻計算各個字符的權值 V,那么某一字符所對應的權值V = d*Cl/(T-Tl)+ (l-d)*C2/(T_T2) ; (0 ≤ d ≤ 1)其中d是一個介于0跟1之間的常量,用來平衡總的使用頻率和T-T2周期內使用
頻率;當權值V計算完成以后,上次計算權值的時刻T2置為時刻T,而周期內使用次數 C2置為0 ;設置一個閾值p,如果某個字符的權值V > P,則該字符將被換入緩沖區并取代具 有最小權值的那個字符。本發明的發明目的是這樣實現的由于受到移動終端硬件設備的限制,移動富媒體播放器性能往往較差,針對移動 富媒體應用數據量大、占用內存空間多、響應時間較長等問題,本發明提出了一種基于移 動富媒體播放器的緩存優化方法,在移動富媒體播放器與本地資源文件之間設置字符緩存 區,用來緩存播放器常用的字符點陣信息以及字符點陣的寬高信息;移動富媒體播放器首 先到字符緩存區中搜索所需顯示的字符,如果字符緩存區中已經有了該字符,則將字符緩 存區中存儲的字符點陣、寬、高信息直接讀取出來并進行排版顯示;否則,從本地資源文件 中讀取并顯示。這樣避免了頻繁地訪問本地資源文件,減小了時間消耗,同時,也避免了冗 余數據的出現,可以一定程度的降低內存的開銷。另外,為字符緩存區中儲存了字符點陣的 寬高信息,這樣就可以直接讀出字符的尺寸,而避免了每次都去進行運算獲取,使頁面的繪 制速度更快。在字符緩存區字符的置換方面,本發明設置一緩存管理器,用于維護播放器使用 過的字符點陣信息的日志表來決定置換緩存中的哪個字符,如果某個字符的權值V > P,則 該字符將被換入緩沖區并取代具有最小權值的那個字符。字符的置換同時顧及到總的使用 次數和最近的使用次數,因此,該置換策略不僅能夠反映程序局部性原理,而且能夠提高命 中率,從而優化字符緩存區字符,進一步提高了字符的顯示速度和頁面的繪制速度。本發明通過對移動富媒體引擎增加頁面字符緩存的機制來有效地減少對移動設 備的內存開銷,極大地加快應用的顯示時間和響應速度,從而使得移動富媒體應用能夠在 手機等移動終端上流暢的運行。通過與UCWEB等移動TOB播放器的性能比較發現,在打開 同樣一個網絡頁面時,本發明的方法的確能夠有效地降低頁面的顯示時間,由此也證明了 增加頁面字符緩存機制能夠優化應用的性能。
圖1是移動富媒體播放器、字符緩存區與本地資源文件的關系圖;圖2是字符哈希表結構圖3是緩存管理器的結構圖;圖4是有無字符緩存區的字符平均顯示時間對比圖。
具體實施例方式下面結合附圖對本發明的具體實施方式
進行描述,以便本領域的技術人員更好地 理解本發明。需要特別提醒注意的是,在以下的描述中,當已知功能和設計的詳細描述也許 會淡化本發明的主要內容時,這些描述在這里將被忽略。圖1是移動富媒體播放器、字符緩存區與本地資源文件的關系圖。在本實施例中,如圖1所示,在移動富媒體播放器與本地資源文件之間設置字符 緩存區,用來緩存來自本地資源文件的移動播放器常用的字符點陣信息以及字符點陣的寬 尚fn息。在本實施例中,字符緩存區的一個字符結構內容如下typedef struct_F0NT{void^data ;/* 字符點陣信息 */int width ;/* 字符的寬 */int height ;/* 字符的高 */} FONT ;移動富媒體播放器在播放時,首先到字符緩存區中搜索所需顯示的字符,如果字 符緩存區中已經有了該字符,則將字符緩存區中存儲的字符點陣、寬、高信息直接讀取出來 并進行排版顯示;否則,從本地資源文件中讀取并顯示。避免了頻繁地訪問本地資源文件, 減小了時間消耗、避免了冗余數據的出現并降低內存的開銷,同時使頁面的繪制速度更快。圖2是字符哈希表結構圖;在本實施例中,如圖2所示,在建立的字符緩沖區中,將移動富媒體播放器常用 的,即使用次數較多和較頻繁的字符建立一個哈希表,表項中內容包括關鍵字Key,相關的 字符ID鏈表指針,它指向Key對應的字符的點陣信息。關鍵字Key代表著字符的編碼,如 UTF-8、ASCII、Unicode 等。移動富媒體播放器搜索字符緩存區時首先檢查這個表,如果請求的字符存在于此 表之中,則將通過對應的鏈表指針將字符的點陣、字符寬、字符高等信息讀取出來,否則,搜 索請求將被提交給本地資源文件再搜索一次。由于字符緩存區存儲在有限的內存中,必須對緩存區大小有所限制,同時,建立字 符緩存區的還有一個目的是提高應用的緩存命中率,富媒體播放器的搜索請求將影響字符 緩存區中存儲的內容,字符緩存區中將只存儲使用較多和頻率較高的內容,這樣就必須要 有一個字符緩存區字符的置換策略,即設置一緩存管理器,用于維護富媒體播放器使用過的字符點陣信息的日志表來決 定置換緩存中的哪個字符,該日志表內容包括字符關鍵字K、總使用次數Cl、第一次使用 時的時刻Tl、權值V、上次計算權值的時刻T2、周期T-T2內,使用次數C2 ;每當一個字符被 請求時,該字符所對應的總使用次數Cl和周期內使用次數C2分別加1,在T時刻計算各個 字符的權值V,那么某一字符所對應的權值
V = d*Cl/ (T-Tl) + (l_d) *C2/ (T-T2) ; (0 彡 d 彡 1)其中d是一個介于0跟1之間的常量,用來平衡總的使用頻率和T-T2周期內使用
頻率;當權值V計算完成以后,上次計算權值的時刻T2置為時刻T,而周期內使用次數 C2置為0 ;設置一個閾值P,如果某個字符的權值V > p,則該字符將被換入緩沖區并取代具 有最小權值的那個字符。上述字符置換策略同時顧及到總的使用次數和最近的使用次數,因此,該策略不 僅能夠反映程序局部性原理,而且能夠提高命中率,從而優化字符緩存區字符,進一步提高 了字符的顯示速度和頁面的繪制速度。圖3是緩存管理器的結構圖在本實施例中,如圖3所示,整個字符緩存區通過緩存管理器來維護,緩存管理 器一字符管理模塊,用于接受來自富媒體播放器的字符請求并找到對應的字符點 陣信息首先在字符緩存區中查詢對應內容,若存在,則直接從字符緩存區中取出;若不存 在,則從本地資源文件中獲取;即實現本發明的步驟(2);一更新管理模塊,用于一定周期地查詢字符緩存區中的字符點陣信息并對其進行 更新;由于字符點陣信息變化概率較小,故而使緩存管理器按照一個較長的周期來更新字 符緩存區中的字符點陣信息。更新時,緩存管理器檢索字符緩存區,將需要更新的字符點陣 信息更新,這樣可以保證字符顯示的正確性。一置換管理模塊,用于維護日志表,建立初始字符緩存區,根據步驟(3)的置換策 略置換字符緩存區中的內容。以上三個模塊的協同合作保證了字符緩沖區中字符數據的準確和應用中字符顯 示的方便快捷。圖4是有無字符緩存區的字符平均顯示時間對比圖。在本實施中,本文以Windows Mobile平臺的手機多普達S900C為例進行了測試,該手機的性能
參數如下表所示
權利要求
一種移動富媒體播放器的緩存優化方法,其特征在于,包括以下步驟(1)、在移動富媒體播放器與本地資源文件之間設置字符緩存區,用來緩存移動富媒體播放器常用的字符點陣信息;同時,字符緩沖區內還存有字符點陣的寬高信息;(2)、移動富媒體播放器首先到字符緩存區中搜索所需顯示的字符,如果字符緩存區中已經有了該字符,則將字符緩存區中存儲的字符點陣、寬、高信息直接讀取出來并進行排版顯示;否則,從本地資源文件中讀取并顯示;(3)、字符緩存區字符的置換設置一緩存管理器,用于維護富媒體播放器使用過的字符點陣信息的日志表來決定置換緩存中的哪個字符,該日志表內容包括字符關鍵字K、總使用次數C1、第一次使用時的時刻T1、權值V、上次計算權值的時刻T2、周期內使用次數C2;每當一個字符被請求時,該字符所對應的總使用次數C1和周期內使用次數C2分別加1,T時刻計算各個字符的權值V,那么某一字符所對應的權值V=d*C1/(T T1)+(1 d)*C2/(T T2);(0≤d≤1)其中d是一個介于0跟1之間的常量,用來平衡總的使用頻率和T T2周期內使用頻率;當權值V計算完成以后,上次計算權值的時刻T2置為時刻T,而周期內使用次數C2置為0;設置一個閾值p,如果某個字符的權值V>p,則該字符將被換入緩沖區并取代具有最小權值的那個字符。
2.根據權利要求1所述的移動富媒體播放器的緩存優化方法,其特征在于,所述的緩 存管理器還包括一字符管理模塊,用于接受來自富媒體播放器的字符請求并找到對應的字符點陣信 息首先在字符緩存區中查詢對應內容,若存在,則直接從字符緩存區中取出;若不存在, 則從本地資源文件中獲取;一更新管理模塊,用于一定周期地查詢字符緩存區中的字符點陣信息并對其進行更 新;由于字符點陣信息變化概率較小,故而使緩存管理器按照一個較長的周期來更新字符 緩存區中的字符點陣信息。更新時,緩存管理器檢索字符緩存區,將需要更新的字符點陣信 息更新,這樣可以保證字符顯示的正確性。
3.根據權利要求1所述的移動富媒體播放器的緩存優化方法,其特征在于,在建立的 字符緩沖區中,將移動富媒體播放器的字符建立一個哈希表,表項中內容包括關鍵字Key, 相關的字符ID鏈表指針,它指向Key對應的字符的點陣信息,關鍵字Key代表著字符的編 碼;移動富媒體播放器搜索字符緩存區時首先檢查這個表,如果請求的字符存在于此表之 中,則將通過對應的鏈表指針將字符的點陣、字符寬、字符高信息讀取出來,否則,搜索請求 將被提交給本地資源文件再搜索一次。
全文摘要
本發明公開了一種移動富媒體播放器的緩存優化方法,通過在移動富媒體播放器與本地資源文件之間設置字符緩存區來緩存常用的字符點陣信息以及字符點陣的寬高信息;移動富媒體播放器首先到字符緩存區中搜索所需顯示的字符,如果字符緩存區中有該字符,則將字符緩存區中存儲的字符點陣、寬、高信息直接讀取出來并進行排版顯示;否則,從本地資源文件中讀取并顯示。這樣避免了頻繁地訪問本地資源文件,減小了時間消耗、避免了冗余數據的出現并降低內存的開銷,同時使頁面的繪制速度更快。另外,字符的置換同時顧及到總的使用次數和最近的使用次數,不僅能夠反映程序局部性原理,而且能夠提高命中率,從而優化字符緩存區字符,進一步提高了字符的顯示速度和頁面的繪制速度。
文檔編號G06F17/21GK101963953SQ201010276370
公開日2011年2月2日 申請日期2010年9月8日 優先權日2010年9月8日
發明者姜帆, 申杰 申請人:東莞電子科技大學電子信息工程研究院