本申請涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種游戲數(shù)據(jù)的分析、處理方法和裝置。
背景技術(shù):
隨著計算機(jī)技術(shù)的發(fā)展,游戲應(yīng)用受到了廣大用戶的喜愛。一般而言,用戶需要在終端設(shè)備上安裝游戲客戶端,并通過所述游戲客戶端進(jìn)行登錄,以啟動游戲程序。當(dāng)用戶點擊游戲客戶端啟動登錄程序時,客戶端會自動加載相應(yīng)的游戲數(shù)據(jù)到內(nèi)存中,當(dāng)所有的游戲數(shù)據(jù)都加載完畢,用戶即成功登陸游戲。這個過程對用戶來說是不可見的。當(dāng)加載的游戲數(shù)據(jù)不合理時,給用戶的感知就是游戲啟動時間特別長,給用戶帶來非常不好的體驗。此外,加載的游戲數(shù)據(jù)不合理,也會造成系統(tǒng)資源的浪費,降低系統(tǒng)數(shù)據(jù)處理效率。然而,現(xiàn)有技術(shù)存在的常規(guī)測試方法,無法獲取在啟動游戲客戶端時究竟加載了哪些游戲數(shù)據(jù),因此也無法解決游戲數(shù)據(jù)加載不合理導(dǎo)致的系統(tǒng)資源浪費、處理效率低、用戶登陸時間長、用戶體驗不佳的問題。
技術(shù)實現(xiàn)要素:
本申請的目的是,提供一種游戲數(shù)據(jù)的分析、處理方法和裝置,可以獲取啟動游戲客戶端系統(tǒng)時加載的游戲數(shù)據(jù),并對其進(jìn)行分析處理,減少游戲客戶端系統(tǒng)啟動時間,降低系統(tǒng)資源浪費,提高系統(tǒng)數(shù)據(jù)處理效率,提升用戶體驗。
一方面,本申請?zhí)峁┝艘环N游戲數(shù)據(jù)分析和處理方法,所述方法包括:
當(dāng)啟動游戲客戶端系統(tǒng)時,通過預(yù)置的監(jiān)控程序獲取加載的游戲數(shù)據(jù)的信息;所述游戲數(shù)據(jù)的信息包括所述游戲數(shù)據(jù)的文件列表、所述游戲數(shù)據(jù)的加載時長、所述游戲數(shù)據(jù)的處理時長、所述游戲數(shù)據(jù)的處理順序中的一種或多種;
分析所述游戲數(shù)據(jù)信息,獲得分析結(jié)果;
根據(jù)所述分析結(jié)果對所述游戲客戶端系統(tǒng)進(jìn)行優(yōu)化處理。
另一方面,本申請?zhí)峁┝艘环N游戲數(shù)據(jù)分析和處理裝置,所述裝置應(yīng)用于游戲客戶端系統(tǒng)中,所述裝置包括:
數(shù)據(jù)獲取單元,用于當(dāng)啟動所述游戲客戶端系統(tǒng)時,通過預(yù)置的監(jiān)控程序獲取加載的游戲數(shù)據(jù)的信息;所述游戲數(shù)據(jù)的信息包括所述游戲數(shù)據(jù)的文件列表、所述游戲數(shù)據(jù)的加載時長、所述游戲數(shù)據(jù)的處理時長、所述游戲數(shù)據(jù)的處理順序中的一種或多種;
數(shù)據(jù)分析單元,用于分析所述游戲數(shù)據(jù)信息,獲得分析結(jié)果;
數(shù)據(jù)處理單元,用于根據(jù)所述分析結(jié)果對所述游戲客戶端系統(tǒng)進(jìn)行優(yōu)化處理。
本申請實施例提供的游戲數(shù)據(jù)分析、處理方法和裝置,可以通過預(yù)置的監(jiān)控程序獲取啟動游戲客戶端系統(tǒng)時加載的游戲數(shù)據(jù)的信息,并可以分析所述游戲數(shù)據(jù)信息,獲得分析結(jié)果,根據(jù)所述分析結(jié)果對所述游戲客戶端系統(tǒng)進(jìn)行優(yōu)化處理,從而減少了游戲客戶端系統(tǒng)啟動時間,降低了系統(tǒng)資源浪費,提高了系統(tǒng)數(shù)據(jù)處理效率,提升了用戶體驗。
附圖說明
為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性 的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請實施例提供的一種游戲數(shù)據(jù)分析、處理方法流程圖;
圖2為本申請實施例提供的預(yù)置監(jiān)控程序的方法流程圖;
圖3為本申請實施例中獲取入口函數(shù)的一個示例;
圖4為hook函數(shù)的一個示例性說明;
圖5為本申請實施例提供的一種游戲數(shù)據(jù)分析、處理裝置示意圖。
具體實施方式
根據(jù)本申請的實施方式,提出了一種游戲數(shù)據(jù)分析、處理方法和裝置。
為使得本申請的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而非全部實施例。基于本申請中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護(hù)的范圍。
本申請實施例提供的游戲數(shù)據(jù)分析、處理方法和裝置,可以應(yīng)用于游戲客戶端系統(tǒng)。所述裝置可以放置于游戲客戶端系統(tǒng)內(nèi)部,也可以是一個獨立的實體與所述游戲客戶端系統(tǒng)數(shù)據(jù)連接,也可以作為與所述游戲客戶端系統(tǒng)網(wǎng)絡(luò)連接的服務(wù)器系統(tǒng)的內(nèi)部構(gòu)件而存在,也可以一部分安裝在游戲客戶端系統(tǒng)中,一部分安裝在服務(wù)器系統(tǒng)中,其具體實現(xiàn)方式可以是靈活多樣的,在此不進(jìn)行限制。所述游戲客戶端可以應(yīng)用于各類終端設(shè)備中,所述終端設(shè)備包括但不限于計算機(jī)、智能手機(jī)、平板電腦Pad、智能穿戴設(shè)備等終端設(shè)備,在此不進(jìn)行限制。
圖1是本申請實施例提供的游戲數(shù)據(jù)分析和處理方法流程圖,如圖1所示,本申請實施例的游戲數(shù)據(jù)分析和處理方法包括:
S101,當(dāng)啟動游戲客戶端系統(tǒng)時,通過預(yù)置的監(jiān)控程序獲取加載的游戲 數(shù)據(jù)的信息。
S102,分析所述游戲數(shù)據(jù)信息,獲得分析結(jié)果。
S103,根據(jù)所述分析結(jié)果對所述游戲客戶端系統(tǒng)進(jìn)行優(yōu)化處理。
其中,所述監(jiān)控程序用于獲取啟動所述游戲客戶端系統(tǒng)時加載的游戲數(shù)據(jù)的信息。所述游戲數(shù)據(jù)包括但不限于圖片、文字、數(shù)值、音頻、視頻、動畫等數(shù)據(jù)。所述游戲數(shù)據(jù)的信息包括所述游戲數(shù)據(jù)的文件列表、所述游戲數(shù)據(jù)的加載時長、所述游戲數(shù)據(jù)的處理時長、所述游戲數(shù)據(jù)的處理順序中的一種或多種。
在本申請具體實現(xiàn)時,所述監(jiān)控程序具體可以通過hook(又可以稱為鉤子程序)技術(shù)實現(xiàn),通過hook技術(shù)改變系統(tǒng)調(diào)用,將其掛入游戲客戶端系統(tǒng),當(dāng)主程序在調(diào)用操作系統(tǒng)的底層API(英文全稱為Application Programming Interface,中文全稱為應(yīng)用程序編程接口)時,則通過預(yù)置的監(jiān)控程序復(fù)制一份記錄出來,從而得到系統(tǒng)在啟動過程中加載的游戲數(shù)據(jù)的詳細(xì)情況。在通過預(yù)置的監(jiān)控程序獲取加載的游戲數(shù)據(jù)的信息后,即分析所述游戲數(shù)據(jù)信息,并獲得分析結(jié)果,進(jìn)而根據(jù)所述分析結(jié)果對所述游戲客戶端系統(tǒng)進(jìn)行優(yōu)化處理。根據(jù)獲取的游戲數(shù)據(jù)的信息的不同,對所述游戲數(shù)據(jù)的分析和處理方式可以是多樣的。
下面將對本申請的具體實現(xiàn)進(jìn)行詳細(xì)介紹以下僅是本申請具體實現(xiàn)時的一些實施方式的示例,并不視為對本申請的限制。
在一些實施方式中,本申請還進(jìn)一步包括預(yù)置監(jiān)控程序的步驟,所述監(jiān)控程序用于獲取啟動所述游戲客戶端系統(tǒng)時加載的游戲數(shù)據(jù)信息。
其中,如圖2所示,預(yù)置監(jiān)控程序可以包括下列步驟:
S201,獲取游戲客戶端系統(tǒng)主程序的入口函數(shù)。
在本申請具體實現(xiàn)時,可以通過hook技術(shù)來實現(xiàn)對加載的游戲數(shù)據(jù)的監(jiān)控、獲取。其中,hook是Windows消息處理機(jī)制的一個平臺,應(yīng)用程序可以 在上面設(shè)置子程序以監(jiān)視指定窗口的某種消息,而且所監(jiān)視的窗口可以是其他進(jìn)程所創(chuàng)建的。當(dāng)消息到達(dá)后,在目標(biāo)窗口處理函數(shù)之前處理它。鉤子機(jī)制允許應(yīng)用程序截獲處理windows消息或特定事件。Hook實際上是一個處理消息的程序段,通過系統(tǒng)調(diào)用,把它掛入系統(tǒng)。每當(dāng)特定的消息發(fā)出,在沒有到達(dá)目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數(shù)先得到控制權(quán)。這時鉤子函數(shù)即可以加工處理(改變)該消息,也可以不作處理而繼續(xù)傳遞該消息,還可以強(qiáng)制結(jié)束消息的傳遞。在本申請中,正是應(yīng)用了hook技術(shù),改變了系統(tǒng)調(diào)用,將其掛入游戲客戶端系統(tǒng),當(dāng)主程序在調(diào)用操作系統(tǒng)的底層API時,則通過預(yù)置的監(jiān)控程序復(fù)制一份記錄出來,從而得到系統(tǒng)在啟動過程中加載的游戲數(shù)據(jù)的詳細(xì)情況。
具體實現(xiàn)時,首先需要獲取游戲客戶端系統(tǒng)主程序的入口函數(shù)(例如WinMain函數(shù))。具體地,可以通過IDA(英文全稱為Interactive Disassembler,中文全稱為交互式反匯編器)打開文件,獲取WinMain函數(shù)的地址。如圖3所示,為本申請實施例中獲取入口函數(shù)的一個示例,如圖3所示,入口地址為00586350。
S202,修改游戲客戶端系統(tǒng)主程序文件,在所述游戲客戶端主程序文件中植入包含所述監(jiān)控程序的動態(tài)鏈接庫DLL文件。
在獲取主程序的入口函數(shù)后,即可以修改游戲客戶端系統(tǒng)主程序文件,并在所述游戲客戶端主程序文件中植入包含所述監(jiān)控程序的DLL文件,在啟動游戲客戶端程序時,加載所述DLL文件,即可以運(yùn)行監(jiān)控程序以獲得在啟動游戲客戶端程序過程中加載的游戲數(shù)據(jù)的信息。
具體實現(xiàn)時,修改主程文件的操作可以通過二進(jìn)制工具實現(xiàn),也可以直接通過Ollydbg(反匯編)工具來修改,修改的方法一般在文件尾部的使用一個空白JMP(一種跳轉(zhuǎn)指令)來實現(xiàn)。其作用是可以跳轉(zhuǎn)到主程序的最末尾,以改變程序的執(zhí)行順序,防止主程序的保護(hù)程序運(yùn)行。然后,將包括編寫好 的hook函數(shù)的DLL文件植入主程序文件中。其主要功能是在游戲客戶端系統(tǒng)創(chuàng)建文件或讀取文件時獲取所述文件的名稱、保存路徑、時間參數(shù)信息。其中,時間參數(shù)可以包括文件的創(chuàng)建時間、讀取時間、運(yùn)行處理時間、修改時間等,具體可以根據(jù)需要設(shè)置。如圖4所示,為hook函數(shù)的一個示例性說明。
監(jiān)控程序設(shè)置成功后,即可以啟動游戲客戶端系統(tǒng),加載預(yù)置的監(jiān)控程序以獲取加載的游戲數(shù)據(jù)的信息。在通過預(yù)置的監(jiān)控程序獲取加載的游戲數(shù)據(jù)的信息時,即可以根據(jù)獲取的所述文件的名稱、保存路徑、時間參數(shù)信息獲取加載的游戲數(shù)據(jù)的文件列表、所述游戲數(shù)據(jù)的加載時長、所述游戲數(shù)據(jù)的處理時長、所述游戲數(shù)據(jù)的處理順序中的一種或多種。
在通過預(yù)置的監(jiān)控程序獲取加載的游戲數(shù)據(jù)的信息后,即可以對所述游戲數(shù)據(jù)的信息進(jìn)行分析,并獲得分析結(jié)果,進(jìn)而根據(jù)所述分析結(jié)果對所述游戲客戶端系統(tǒng)進(jìn)行優(yōu)化處理。根據(jù)獲取的游戲數(shù)據(jù)的信息的不同,對所述游戲數(shù)據(jù)的分析和處理方式可以是多樣的。
在一種可能的實現(xiàn)方式中,當(dāng)所述游戲數(shù)據(jù)的信息包括加載的游戲數(shù)據(jù)的文件列表時,所述分析所述游戲數(shù)據(jù)信息,獲得分析結(jié)果包括:比較所述文件列表中各文件的名稱,判斷是否存在相同的名稱;當(dāng)判斷存在相同的名稱時,確定在啟動游戲客戶端系統(tǒng)時存在游戲數(shù)據(jù)重復(fù)加載。舉例說明,在啟動游戲客戶端系統(tǒng)時,在第一階段加載了A文件,在第二階段又加載了A文件,這時第二階段加載A文件就是多余的,即存在重復(fù)加載文件的問題。在本申請中,由于通過監(jiān)控程序獲取了游戲數(shù)據(jù)加載階段所加載的全部文件的列表,因此可以通過比較文件列表中各文件的文件名,判斷是否存在相同的文件名。如果存在相同的文件名時,則確定存在重復(fù)加載,并進(jìn)行相應(yīng)的優(yōu)化處理。具體地,當(dāng)確定啟動游戲客戶端系統(tǒng)時存在游戲數(shù)據(jù)重復(fù)加載時,所述根據(jù)所述分析結(jié)果對所述客戶端系統(tǒng)進(jìn)行優(yōu)化處理包括:將所述游戲客戶端系統(tǒng)配置成在第一次加載所述游戲數(shù)據(jù)時,從本地磁盤讀取所述游戲數(shù) 據(jù),并將其保存在內(nèi)存中,在第二次加載所述游戲數(shù)據(jù)時,直接從內(nèi)存中讀取所述游戲數(shù)據(jù)。這樣,則無需重復(fù)加載相同的文件,節(jié)省了系統(tǒng)資源,并提高了數(shù)據(jù)處理速度。
在另外一種可能的實現(xiàn)方式中,當(dāng)所述游戲數(shù)據(jù)的信息包括游戲數(shù)據(jù)的加載時長時,所述分析所述游戲數(shù)據(jù)信息,獲得分析結(jié)果包括:判斷獲取的所述游戲數(shù)據(jù)的加載時長是否大于第一時間閾值;如果是,確定所述游戲數(shù)據(jù)的加載時間過長。具體實現(xiàn)時,根據(jù)經(jīng)驗設(shè)置第一時間閾值,所述第一時間閾值為加載游戲數(shù)據(jù)的合理時長,如果加載時間超過第一時間閾值,則表明加載時間過長。這時,則可以對加載的游戲數(shù)據(jù)進(jìn)行優(yōu)化處理。
一般地,造成游戲數(shù)據(jù)加載時間過長的因素可以包括:數(shù)據(jù)存儲格式不合理、數(shù)據(jù)加載來源(讀取方式)不合理、數(shù)據(jù)未經(jīng)過預(yù)處理等。在確定所述游戲數(shù)據(jù)的加載時間過長時,所述根據(jù)所述分析結(jié)果對所述游戲客戶端系統(tǒng)進(jìn)行優(yōu)化處理包括以下所列中的一種或任意結(jié)合:
(1)改變所述游戲數(shù)據(jù)的存儲格式,將所述游戲數(shù)據(jù)存儲成容量小的格式。由于圖片的存儲格式不同,其容量不同??梢酝ㄟ^分析具體的應(yīng)用場景,將數(shù)據(jù)存儲成不同的格式。舉例說明,同樣對于圖片數(shù)據(jù),有些應(yīng)用場景對圖片質(zhì)量要求較高,則需要將圖片存儲成高清的格式;有些應(yīng)用場景對圖片質(zhì)量要求不高,則可以將圖片存儲成普通的、容量較小的格式。根據(jù)分析結(jié)果,可以改變部分游戲數(shù)據(jù)的存儲格式,將所述游戲數(shù)據(jù)存儲成容量小的格式,以減少加載時間,提高數(shù)據(jù)的處理效率。
(2)改變所述游戲數(shù)據(jù)的讀取方式,將所述游戲數(shù)據(jù)配置成從本地文件服務(wù)器或者本地游戲安裝包中進(jìn)行數(shù)據(jù)讀取。數(shù)據(jù)的加載來源或者讀取方式不合理,也是造成數(shù)據(jù)加載時間過長的重要因素。這時,可以將部分?jǐn)?shù)據(jù)配置成從網(wǎng)絡(luò)讀取的方式,將部分游戲數(shù)據(jù)配置成從本地文件服務(wù)器或者本地游戲安裝包中進(jìn)行數(shù)據(jù)讀取。這樣,可以有效減少數(shù)據(jù)加載時間,提高系 統(tǒng)數(shù)據(jù)處理效率。
(3)壓縮所述游戲數(shù)據(jù)。部分?jǐn)?shù)據(jù)未經(jīng)過壓縮進(jìn)行加載,也是造成數(shù)據(jù)加載時間過長的原因。因此,可以預(yù)先對加載數(shù)據(jù)進(jìn)行壓縮、排序等處理。
在有一種可能的實現(xiàn)方式中,當(dāng)所述游戲數(shù)據(jù)的信息包括游戲數(shù)據(jù)的處理時長時,所述分析所述游戲數(shù)據(jù)信息,獲得分析結(jié)果包括:判斷獲取的所述游戲數(shù)據(jù)的處理時長是否大于第二時間閾值;如果是,確定所述游戲數(shù)據(jù)的處理時間過長。根據(jù)經(jīng)驗設(shè)置第二時間閾值,所述第二時間閾值為處理游戲數(shù)據(jù)的合理時長,如果處理時間超過第二時間閾值,則表明處理時間過長。這時,則可以對處理的游戲數(shù)據(jù)進(jìn)行優(yōu)化處理。
一般地,造成游戲數(shù)據(jù)處理時間過長的因素可以包括:數(shù)據(jù)未經(jīng)過處理,處理數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)、處理邏輯、算法不合理,數(shù)據(jù)的輸入輸出、讀取方式不合理等。因此,根據(jù)上述因素,在確定所述游戲數(shù)據(jù)的處理時間過長時,所述根據(jù)所述分析結(jié)果對所述游戲客戶端系統(tǒng)進(jìn)行優(yōu)化處理包括以下所列中的一種或任意結(jié)合:
(1)對所述游戲數(shù)據(jù)進(jìn)行預(yù)處理,所述預(yù)處理包括對所述游戲數(shù)據(jù)進(jìn)行排序、壓縮或者格式轉(zhuǎn)換。舉例說明,如果數(shù)據(jù)未經(jīng)過排序,從文件中查找數(shù)據(jù)可能會消耗非常多的時間,對數(shù)據(jù)進(jìn)行排序后,查找數(shù)據(jù)將變得更為容易。因此,在對游戲數(shù)據(jù)進(jìn)行預(yù)處理時,可以對數(shù)據(jù)進(jìn)行排序處理。此外,如果游戲數(shù)據(jù)被保存成多種不同的格式,將會導(dǎo)致文件的讀取、處理困難,需要將其轉(zhuǎn)換成標(biāo)準(zhǔn)格式再進(jìn)行處理,由此造成處理時間過長。在本申請中,可以預(yù)先將非標(biāo)準(zhǔn)格式的文件轉(zhuǎn)換成標(biāo)準(zhǔn)格式的文件,例如將文件保存成標(biāo)準(zhǔn)的XML文件,這樣,在啟動游戲客戶端系統(tǒng)時,處理數(shù)據(jù)將變得更為容易,有效減少了數(shù)據(jù)的處理時間。同樣地,對數(shù)據(jù)進(jìn)行壓縮,也可以有效減少數(shù)據(jù)的處理時間。當(dāng)然,這僅是對數(shù)據(jù)進(jìn)行預(yù)處理的示例性說明,其他對數(shù)據(jù)進(jìn)行預(yù)處理的方式也包含在本申請中,在此不進(jìn)行限制。
(2)對所述游戲客戶端系統(tǒng)進(jìn)行性能優(yōu)化處理,所述性能優(yōu)化處理包括優(yōu)化所述游戲客戶端系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)、處理邏輯或者算法。具體實現(xiàn)時,數(shù)據(jù)結(jié)構(gòu)不合理也是造成數(shù)據(jù)處理時間長的一個因素。因此,可以通過優(yōu)化數(shù)據(jù)結(jié)果減少數(shù)據(jù)處理時間。此外,對系統(tǒng)的算法、處理邏輯進(jìn)行優(yōu)化,也可以減少數(shù)據(jù)的處理時間。
(3)對所述游戲客戶端系統(tǒng)的數(shù)據(jù)處理順序進(jìn)行調(diào)整。通過調(diào)整數(shù)據(jù)的處理順序,將會有效提升系統(tǒng)的數(shù)據(jù)處理效率。
(4)對所述游戲客戶端系統(tǒng)的數(shù)據(jù)輸入輸出、存儲方式、讀取方式進(jìn)行優(yōu)化處理。舉例說明,數(shù)據(jù)的讀取方式是從內(nèi)存中讀取還是從網(wǎng)絡(luò)中讀取都將會影響系統(tǒng)的數(shù)據(jù)處理效率。這時,就可以通過配置數(shù)據(jù)的讀取方式,將部分?jǐn)?shù)據(jù)配置成從內(nèi)存中讀取,部分?jǐn)?shù)據(jù)配置成從網(wǎng)絡(luò)中讀取。此外,還可以將常用的部分?jǐn)?shù)據(jù)配置成常駐內(nèi)存,其他數(shù)據(jù)就可以在處理完成后即從內(nèi)存中刪除。具體的優(yōu)化方法可以是靈活多樣的,只要能夠提高數(shù)據(jù)的處理效率即可。
在再一種可能的實現(xiàn)方式中,當(dāng)所述游戲數(shù)據(jù)的信息包括加載的游戲數(shù)據(jù)的文件列表時,所述分析所述游戲數(shù)據(jù)信息,獲得分析結(jié)果包括:當(dāng)所述游戲數(shù)據(jù)的信息包括加載的游戲數(shù)據(jù)的文件列表時,根據(jù)所述文件列表各文件的屬性確定各文件是否為啟動所述游戲客戶端系統(tǒng)的必要文件;如果存在至少一個文件不是啟動所述游戲客戶端系統(tǒng)的必要文件,則確定所述游戲數(shù)據(jù)加載不合理。具體實現(xiàn)時,通過分析加載的文件列表,分析出哪些文件是否必須啟動階段的時候加載,哪是文件是否可以啟動后加載,例如,A文件是啟動的時候必須要加用的,那就在啟動階段加載,B文件是啟動后才會用到,這樣就可以讓B文件在啟動的時候不加載。這樣,就可以區(qū)分出哪些文件是啟動所述游戲客戶端系統(tǒng)的必要文件,哪些不是啟動所述游戲客戶端系統(tǒng)的必要文件。如果存在至少個文件不是啟動所述游戲客戶端系統(tǒng)的必要文件, 則確定所述游戲數(shù)據(jù)加載不合理。
當(dāng)確定所述游戲數(shù)據(jù)加載不合理時,所述根據(jù)所述分析結(jié)果對所述游戲客戶端系統(tǒng)進(jìn)行優(yōu)化處理包括:創(chuàng)建必要文件列表,所述必要文件列表包括啟動所述游戲客戶端系統(tǒng)的必要文件;將所述游戲客戶端配置成在啟動所述游戲客戶端系統(tǒng)時,僅加載所述必要文件列表中的文件所對應(yīng)的游戲數(shù)據(jù)。這樣,就可以在啟動階段僅加載必要的文件,有效減少了加載的數(shù)據(jù)量,提高系統(tǒng)數(shù)據(jù)處理速度和效率。
如圖5所示,為本申請?zhí)峁┑囊环N游戲數(shù)據(jù)分析和處理裝置示意圖,所述裝置500應(yīng)用于游戲客戶端系統(tǒng)中,所述裝置包括:
數(shù)據(jù)獲取單元501,用于當(dāng)啟動所述游戲客戶端系統(tǒng)時,通過預(yù)置的監(jiān)控程序獲取加載的游戲數(shù)據(jù)的信息;所述游戲數(shù)據(jù)的信息包括所述游戲數(shù)據(jù)的文件列表、所述游戲數(shù)據(jù)的加載時長、所述游戲數(shù)據(jù)的處理時長、所述游戲數(shù)據(jù)的處理順序中的一種或多種;
數(shù)據(jù)分析單元502,用于分析所述游戲數(shù)據(jù)信息,獲得分析結(jié)果;
數(shù)據(jù)處理單元503,用于根據(jù)所述分析結(jié)果對所述游戲客戶端系統(tǒng)進(jìn)行優(yōu)化處理。
其中,所述裝置還包括:
預(yù)置單元,用于預(yù)置監(jiān)控程序,所述監(jiān)控程序用于獲取啟動所述游戲客戶端系統(tǒng)時加載的游戲數(shù)據(jù)信息。
其中,所述預(yù)置單元具體包括:
獲取子單元,用于獲取游戲客戶端系統(tǒng)主程序的入口函數(shù);
修改子單元,用于修改游戲客戶端系統(tǒng)主程序文件,使得所述監(jiān)控程序在游戲客戶端系統(tǒng)創(chuàng)建文件或讀取文件時獲取所述文件的名稱、保存路徑、時間參數(shù)信息;
所述數(shù)據(jù)獲取單元具體用于:
根據(jù)獲取的所述文件的名稱、保存路徑、時間參數(shù)信息獲取加載的游戲數(shù)據(jù)的文件列表、所述游戲數(shù)據(jù)的加載時長、所述游戲數(shù)據(jù)的處理時長、所述游戲數(shù)據(jù)的處理順序中的一種或多種。
其中,所述數(shù)據(jù)分析單元包括:
第一數(shù)據(jù)分析子單元,用于當(dāng)所述游戲數(shù)據(jù)的信息包括加載的游戲數(shù)據(jù)的文件列表時,比較所述文件列表中各文件的名稱,判斷是否存在相同的名稱;當(dāng)判斷存在相同的名稱時,確定在啟動游戲客戶端系統(tǒng)時存在游戲數(shù)據(jù)重復(fù)加載。
其中,所述數(shù)據(jù)處理單元包括:
第一數(shù)據(jù)處理子單元,用于當(dāng)確定啟動游戲客戶端系統(tǒng)時存在游戲數(shù)據(jù)重復(fù)加載時,將所述游戲客戶端系統(tǒng)配置成在第一次加載所述游戲數(shù)據(jù)時,從本地磁盤讀取所述游戲數(shù)據(jù),并將其保存在內(nèi)存中,在第二次加載所述游戲數(shù)據(jù)時,直接從內(nèi)存中讀取所述游戲數(shù)據(jù)。
所述數(shù)據(jù)分析單元包括:
第二數(shù)據(jù)分析子單元,用于當(dāng)所述游戲數(shù)據(jù)的信息包括加載的游戲數(shù)據(jù)的文件列表時,根據(jù)所述文件列表各文件的屬性確定各文件是否為啟動所述游戲客戶端系統(tǒng)的必要文件;如果存在至少一個文件不是啟動所述游戲客戶端系統(tǒng)的必要文件,則確定所述游戲數(shù)據(jù)加載不合理。
14、根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述數(shù)據(jù)處理單元包括:
第二數(shù)據(jù)處理子單元,用于當(dāng)確定所述游戲數(shù)據(jù)加載不合理時,創(chuàng)建必要文件列表,所述必要文件列表包括啟動所述游戲客戶端系統(tǒng)的必要文件;將所述游戲客戶端配置成在啟動所述游戲客戶端系統(tǒng)時,僅加載所述必要文件列表中的文件所對應(yīng)的游戲數(shù)據(jù)。
其中,所述數(shù)據(jù)分析單元包括:
第三數(shù)據(jù)分析子單元,用于判斷獲取的所述游戲數(shù)據(jù)的加載時長是否大于第一時間閾值;如果是,確定所述游戲數(shù)據(jù)的加載時間過長。
其中,所述數(shù)據(jù)處理單元包括以下所列中的一種或任意結(jié)合:
第三數(shù)據(jù)處理子單元,用于當(dāng)確定所述游戲數(shù)據(jù)的加載時間過長時,改變所述游戲數(shù)據(jù)的存儲格式,將所述游戲數(shù)據(jù)存儲成容量小的格式;
第四數(shù)據(jù)處理子單元,用于當(dāng)確定所述游戲數(shù)據(jù)的加載時間過長時,改變所述游戲數(shù)據(jù)的讀取方式,將所述游戲數(shù)據(jù)配置成從本地文件服務(wù)器或者本地游戲安裝包中進(jìn)行數(shù)據(jù)讀取;
第五數(shù)據(jù)處理子單元,用于當(dāng)確定所述游戲數(shù)據(jù)的加載時間過長時,壓縮所述游戲數(shù)據(jù)。
其中,所述數(shù)據(jù)分析單元包括:
第四數(shù)據(jù)分析子單元,用于判斷獲取的所述游戲數(shù)據(jù)的處理時長是否大于第二時間閾值;如果是,確定所述游戲數(shù)據(jù)的處理時間過長。
其中,所述數(shù)據(jù)處理單元包括以下所列中的一種或任意結(jié)合:
第六處理子單元,用于當(dāng)確定所述游戲數(shù)據(jù)的處理時間過長時,對所述游戲數(shù)據(jù)進(jìn)行預(yù)處理,所述預(yù)處理包括對所述游戲數(shù)據(jù)進(jìn)行排序、壓縮或者格式轉(zhuǎn)換;
第七處理子單元,用于當(dāng)確定所述游戲數(shù)據(jù)的處理時間過長時,對所述游戲客戶端系統(tǒng)進(jìn)行性能優(yōu)化處理,所述性能優(yōu)化處理包括優(yōu)化所述游戲客戶端系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)、處理邏輯或者算法;
第八處理子單元,用于當(dāng)確定所述游戲數(shù)據(jù)的處理時間過長時,對所述游戲客戶端系統(tǒng)的數(shù)據(jù)處理順序進(jìn)行調(diào)整;
第九處理子單元,用于當(dāng)確定所述游戲數(shù)據(jù)的處理時間過長時,對所述游戲客戶端系統(tǒng)的數(shù)據(jù)輸入輸出進(jìn)行優(yōu)化處理。
上述各單元的功能可對應(yīng)于圖1詳細(xì)描述的上述游戲數(shù)據(jù)分析和處理方 法的處理步驟,于此不再贅述。
本申請實施例提供的游戲數(shù)據(jù)分析、處理方法和裝置,可以通過預(yù)置的監(jiān)控程序獲取啟動游戲客戶端系統(tǒng)時加載的游戲數(shù)據(jù)的信息,并可以分析所述游戲數(shù)據(jù)信息,獲得分析結(jié)果,根據(jù)所述分析結(jié)果對所述游戲客戶端系統(tǒng)進(jìn)行優(yōu)化處理,從而減少了游戲客戶端系統(tǒng)啟動時間,降低了系統(tǒng)資源浪費,提高了系統(tǒng)數(shù)據(jù)處理效率,提升了用戶體驗。
專業(yè)人員應(yīng)該還可以進(jìn)一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機(jī)軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本申請的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機(jī)存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
以上所述的具體實施方式,對本申請的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本申請的具體實施方式而已,并不用于限定本申請的保護(hù)范圍,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的保護(hù)范圍之內(nèi)。