專利名稱:一種設(shè)備運(yùn)行速度優(yōu)化方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種設(shè)備運(yùn)行速度優(yōu)化方法和裝置。
背景技術(shù):
計(jì)算機(jī)開機(jī)慢和開機(jī)后運(yùn)行慢一直是困擾計(jì)算機(jī)用戶的一大難題。尤其是長(zhǎng)期運(yùn)行的計(jì)算機(jī),開機(jī)慢和運(yùn)行慢的問題更加嚴(yán)重。為解決該問題,很多軟件公司一直在找突破加快開機(jī)速度的方法。其中視窗(windows)系統(tǒng)的預(yù)取機(jī)制就是其中較為常用的方案。另夕卜,第三方廠家也提供了各種優(yōu)化工具,通過減輕第三方軟件給操作系統(tǒng)帶來的額外負(fù)擔(dān),并優(yōu)化系統(tǒng)的一些設(shè)置來達(dá)到加速的目的。但從現(xiàn)狀來看,第三方廠家應(yīng)該還沒有找到一個(gè)效果顯著并且具有普適性的提速方案。主要原因是操作系統(tǒng)本身已經(jīng)盡可能做了各種優(yōu)化,通過設(shè)置操作系統(tǒng)參數(shù)能達(dá)到的效果有限,而第三方軟件情況又太復(fù)雜,對(duì)系統(tǒng)性能造成的影響可能錯(cuò)綜復(fù)雜,因此很難在確保用戶使用性和系統(tǒng)性能兩者之間找到一個(gè)平衡點(diǎn)。在當(dāng)前的windows系統(tǒng)中,預(yù)取機(jī)制已經(jīng)成為必不可少的技術(shù),通過該技術(shù)可以大大改善用戶計(jì)算機(jī)開機(jī)速度,假如一個(gè)計(jì)算機(jī)沒有開啟預(yù)取時(shí)的開機(jī)時(shí)間為50秒,開啟預(yù)取后可能只有30秒。該技術(shù)主要包括兩點(diǎn):一、系統(tǒng)開機(jī)預(yù)取:操作系統(tǒng)通過捕獲開機(jī)過程中程序產(chǎn)生的hardfault (—種中斷處理函數(shù))計(jì)算出開機(jī)過程中需要讀取的文件內(nèi)容信息,將這些信息保存起來,等下次啟動(dòng)時(shí)由內(nèi)核模塊預(yù)先讀入這些內(nèi)容,盡可能減少開機(jī)過程中程序產(chǎn)生的hardfault,從而讓I/O (input/output,輸入輸出)對(duì)程序運(yùn)行產(chǎn)生的影響減至最低。二、應(yīng)用軟件啟動(dòng)預(yù)取:操作系統(tǒng)捕獲軟件啟動(dòng)后10秒內(nèi)的hardfault,并計(jì)算對(duì)應(yīng)的文件信息,在下次啟動(dòng)軟件前進(jìn)行提前預(yù)取到內(nèi)存中,減少程序運(yùn)行產(chǎn)生的hardfault,達(dá)到加速目的。該方案主要是解決程序運(yùn)行時(shí)的hardfault問題,因?yàn)樵诔绦蜻\(yùn)行過程中除了中央處理器(Central Processing Unit,CPU)和內(nèi)存外,影響運(yùn)行的主要因素是I/O問題,I/O問題主要體現(xiàn)在hardfault的產(chǎn)生上,每次hardfault意味著程序要暫停運(yùn)行,等待從物理存儲(chǔ)器中讀出對(duì)應(yīng)的內(nèi)容后才能繼續(xù)運(yùn)行。通過提前讀入的方法可以有效改善程序運(yùn)行階段的I/O問題,實(shí)現(xiàn)設(shè)備提速。在開機(jī)預(yù)取階段,上述預(yù)取機(jī)制的方案,操作系統(tǒng)保存了需要讀取的文件偏移信息,然后在開機(jī)過程中按照文件偏移信息保存的順序進(jìn)行讀入,同時(shí)程序也在同步運(yùn)行,如果程序需要的信息還沒來得及讀入,則仍然會(huì)產(chǎn)生hardfault。因此I/O效率較低,故而開機(jī)速度較慢。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了 一種設(shè)備運(yùn)行速度優(yōu)化方法和裝置,用于提供具有普適性并且效果顯著的設(shè)備提速方案。一種設(shè)備運(yùn)行速度優(yōu)化方法,包括:在可執(zhí)行文件啟動(dòng)前將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中;上述預(yù)取數(shù)據(jù)文件中存放有可執(zhí)行文件在本次啟動(dòng)之前的啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù),上述預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在上述預(yù)取數(shù)據(jù)文件中;攔截磁盤設(shè)備對(duì)象的輸入輸出請(qǐng)求包IRP處理,若IRP處理的內(nèi)容存放在上述預(yù)取數(shù)據(jù)文件中,則從內(nèi)存中讀取讀取上述IRP處理對(duì)應(yīng)的內(nèi)容。一種設(shè)備運(yùn)行速度優(yōu)化方法,包括:獲取可執(zhí)行文件在啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù);將預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在預(yù)取數(shù)據(jù)文件中;在上述可執(zhí)行文件啟動(dòng)前將上述預(yù)取數(shù)據(jù)文件以及上述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系,發(fā)送給上述可執(zhí)行文件所在的裝置。一種設(shè)備運(yùn)行速度優(yōu)化裝置,包括:加載單元,用于在可執(zhí)行文件啟動(dòng)前將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中;上述預(yù)取數(shù)據(jù)文件中存放有可執(zhí)行文件在本次啟動(dòng)之前的啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù),上述預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在上述預(yù)取數(shù)據(jù)文件中;攔截單元,用于攔截磁盤設(shè)備對(duì)象的輸入輸出請(qǐng)求包IRP處理;讀取單元,用于若攔截單元攔截的IRP處理的內(nèi)容存放在上述加載單元加載的預(yù)取數(shù)據(jù)文件中,則從內(nèi)存中讀取讀取上述IRP處理對(duì)應(yīng)的內(nèi)容。一種設(shè)備運(yùn)行速度優(yōu)化裝置,包括:數(shù)據(jù)獲取單元,用于獲取可執(zhí)行文件在啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù);文件生成單元,用于將預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在預(yù)取數(shù)據(jù)文件中;發(fā)送單元,用于在上述可執(zhí)行文件啟動(dòng)前將上述預(yù)取數(shù)據(jù)文件以及上述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系,發(fā)送給上述可執(zhí)行文件所在的裝置。從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):通過以上方案可將所有分散的I/o集中到一起,同時(shí)又為預(yù)取數(shù)據(jù)的壓縮提供了可能??梢源蟠筇岣哳A(yù)取數(shù)據(jù)的加載效率,是具有普適性并且效果顯著的設(shè)備提速方案。
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例方法流程示意圖;圖2為本發(fā)明實(shí)施例方法流程示意圖;圖3為本發(fā)明實(shí)施例方法流程示意圖;圖4為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖6為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例提供了一種設(shè)備運(yùn)行速度優(yōu)化方法,如圖1所示,包括:101:在可執(zhí)行文件啟動(dòng)前將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中;上述預(yù)取數(shù)據(jù)文件中存放有可執(zhí)行文件在本次啟動(dòng)之前的啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù),上述預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在上述預(yù)取數(shù)據(jù)文件中;可選地,加載的方式可以是使用引導(dǎo)啟動(dòng)類型的驅(qū)動(dòng)來加載,或者其他的方式加載也是可以的本發(fā)明實(shí)施例對(duì)比不予限定。可選地,上述可執(zhí)行文件包括:操作系統(tǒng)的可執(zhí)行文件和\或應(yīng)用程序文件。本發(fā)明實(shí)施例的方案適用于操作系統(tǒng)也適用于應(yīng)用程序的運(yùn)行加速,前者可以加快啟動(dòng)速度,后者可以加快應(yīng)用程序運(yùn)行速度。后續(xù)實(shí)施例將以操作系統(tǒng)為例進(jìn)行說明,本領(lǐng)域技術(shù)人員可以理解的是,操作系統(tǒng)的舉例不應(yīng)理解為對(duì)本發(fā)明實(shí)施例的限定??蛇x地,上述預(yù)取數(shù)據(jù)中連續(xù)的內(nèi)容及其對(duì)應(yīng)的磁盤物理偏移存放在同一數(shù)據(jù)結(jié)構(gòu),并作為一個(gè)元素存放在預(yù)取數(shù)據(jù)文件中。上述數(shù)據(jù)結(jié)構(gòu)可以是結(jié)構(gòu)體,本領(lǐng)域技術(shù)人員可以理解的是結(jié)構(gòu)體并不是數(shù)據(jù)結(jié)構(gòu)的窮舉,該優(yōu)選的實(shí)現(xiàn)方案不應(yīng)理解為對(duì)本發(fā)明實(shí)施例的唯一限定。進(jìn)一步地,若上述預(yù)取數(shù)據(jù)文件為壓縮后的預(yù)取數(shù)據(jù)文件;上述將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中之前還包括:獲取解壓規(guī)則,使用上述解壓規(guī)則對(duì)上述壓縮后的預(yù)取數(shù)據(jù)文件進(jìn)行解壓。通過壓縮可以提高I/o讀取效率,進(jìn)而進(jìn)一步提高設(shè)備運(yùn)行速度。壓縮的算法可以采用7Z的壓縮算法或其他壓縮算法,對(duì)此本發(fā)明實(shí)施例不予限定。本步驟中的預(yù)取數(shù)據(jù)文件可以由可執(zhí)行文件所在的裝置來生成,也可以是接收到的由其他裝置生成的預(yù)取數(shù)據(jù)文件,并不影響本發(fā)明實(shí)施例的實(shí)現(xiàn),因此本發(fā)明實(shí)施例對(duì)此不予限定。102:攔截磁盤設(shè)備對(duì)象的輸入輸出請(qǐng)求包(I/O Request Package, IRP)處理,若IRP處理的內(nèi)容存放在上述預(yù)取數(shù)據(jù)文件中,則從內(nèi)存中讀取讀取上述IRP處理對(duì)應(yīng)的內(nèi)容。以上方案,通過以上方案可將所有分散的I/O集中到一起,同時(shí)又為預(yù)取數(shù)據(jù)的壓縮提供了可能??梢源蟠筇岣哳A(yù)取數(shù)據(jù)的加載效率,是具有普適性并且效果顯著的設(shè)備提速方案。進(jìn)一步地,上述從內(nèi)存中讀取讀取上述IRP處理對(duì)應(yīng)的內(nèi)容之前還包括:禁止可執(zhí)行文件在啟動(dòng)過程中讀取上述可執(zhí)行文件在本次啟動(dòng)之前的啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù);獲取上述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系;具體禁止的方案可以是在可執(zhí)行文件在啟動(dòng)過程中讀取上述可執(zhí)行文件在本次啟動(dòng)之前直接刪除這些預(yù)讀數(shù)據(jù)。那么,上述從內(nèi)存中讀取上述IRP處理對(duì)應(yīng)的內(nèi)容包括:依據(jù)上述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系從內(nèi)存中讀取上述IRP處理對(duì)應(yīng)的內(nèi)容。預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系可以是存儲(chǔ)在預(yù)取數(shù)據(jù)文件中的,比如a文件有4k大小,其中O IK的內(nèi)容在物理磁盤是連續(xù)的,對(duì)應(yīng)的物理磁盤偏移是0x100000 0x100400,I 4k在物理磁盤也是連續(xù)的,對(duì)應(yīng)的物理磁盤偏移是0x200000 0x200c00,那么就將0x100000 0x100400中的內(nèi)容讀出并記錄該磁盤范圍,然后作為一個(gè)元素保存在預(yù)取數(shù)據(jù)文件中,將0x200000 0x200c00中的內(nèi)容和該范圍值也作為一個(gè)元素保存在預(yù)取數(shù)據(jù)文件中?;谠撆e例,預(yù)取數(shù)據(jù)對(duì)應(yīng)的物理磁盤偏移包括兩部分:0x100000 0x100400和0x200000 0x200c00,那么讀取磁盤物理偏移為:0χ100000 0x100400 和 0x200000 0x200c00 中的內(nèi)容即可。本發(fā)明實(shí)施例還提供了另一種設(shè)備運(yùn)行速度優(yōu)化方法,如圖2所示,包括:201:獲取可執(zhí)行文件在啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù);該方案的執(zhí)行主體可以是獨(dú)立的裝置,也可以是集成在可執(zhí)行文件所在的裝置中,并不影響本發(fā)明實(shí)施例的實(shí)現(xiàn),本發(fā)明實(shí)施例對(duì)此不予限定??蛇x地,上述可執(zhí)行文件包括:操作系統(tǒng)的可執(zhí)行文件和\或應(yīng)用程序文件。本發(fā)明實(shí)施例的方案適用于操作系統(tǒng)也適用于應(yīng)用程序的運(yùn)行加速,前者可以加快啟動(dòng)速度,后者可以加快應(yīng)用程序運(yùn)行速度。后續(xù)實(shí)施例將以操作系統(tǒng)為例進(jìn)行說明,本領(lǐng)域技術(shù)人員可以理解的是,操作系統(tǒng)的舉例不應(yīng)理解為對(duì)本發(fā)明實(shí)施例的限定。202:將預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在預(yù)取數(shù)據(jù)文件中;可選地,上述將預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在預(yù)取數(shù)據(jù)文件中包括:將連續(xù)的內(nèi)容及其對(duì)應(yīng)的磁盤物理偏移存放在同一數(shù)據(jù)結(jié)構(gòu)作為一個(gè)元素存放在預(yù)取數(shù)據(jù)文件中。按本方案實(shí)施例方案可以將多個(gè)文件合并到預(yù)取數(shù)據(jù)文件中,比如a文件有4k大小,其中O IK的內(nèi)容在物理磁盤是連續(xù)的,對(duì)應(yīng)的物理磁盤偏移是0x100000 0x100400,1 4k在物理磁盤也是連續(xù)的,對(duì)應(yīng)的物理磁盤偏移是0x200000 0x200c00,那么就將0x100000 0x100400中的內(nèi)容讀出并記錄該磁盤范圍,然后作為一個(gè)元素保存在預(yù)取數(shù)據(jù)文件中,將0x200000 0x200c00中的內(nèi)容和該范圍值也作為一個(gè)元素保存在預(yù)取數(shù)據(jù)文件中。203:在上述可執(zhí)行文件啟動(dòng)前將上述預(yù)取數(shù)據(jù)文件以及上述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系,發(fā)送給上述可執(zhí)行文件所在的裝置。以上方案,通過以上方案可將所有分散的I/O集中到一起,同時(shí)又為預(yù)取數(shù)據(jù)的壓縮提供了可能??梢源蟠筇岣哳A(yù)取數(shù)據(jù)的加載效率,是具有普適性并且效果顯著的設(shè)備提速方案。進(jìn)一步地,上述202中,將上述預(yù)取數(shù)據(jù)文件發(fā)送給上述可執(zhí)行文件所在的裝置之前還包括:將上述預(yù)取數(shù)據(jù)文件壓縮;壓縮的算法可以采用7z的壓縮算法或其他壓縮算法,對(duì)此本發(fā)明實(shí)施例不予限定。那么,上述203中,將上述預(yù)取數(shù)據(jù)文件發(fā)送給上述可執(zhí)行文件所在的裝置包括:將壓縮后的預(yù)取數(shù)據(jù)文件發(fā)送給上述可執(zhí)行文件所在的裝置。影響I/O讀取效率主要有兩個(gè)因素:1/0大小和I/O的連續(xù)性,I/O大小就是一次I/o的數(shù)據(jù)量,I/O連續(xù)性直接影響到I/O到物理存儲(chǔ)器中的讀取次數(shù),同樣大小的1/0,不連續(xù)的I/o很可能比連續(xù)的I/O多出很多I/O讀取次數(shù),所用的時(shí)間自然就變得很長(zhǎng)。因此本發(fā)明實(shí)施例的基本實(shí)現(xiàn)思路就是將系統(tǒng)開機(jī)階段和應(yīng)用程序啟動(dòng)過程的預(yù)取數(shù)據(jù)重組和壓縮來達(dá)到提高I/o讀取效率的目的。以操作系統(tǒng)的啟動(dòng)為例,請(qǐng)參閱圖3,具體的實(shí)現(xiàn)流程如下:301:首先開發(fā)對(duì)預(yù)取數(shù)據(jù)進(jìn)行處理的應(yīng)用層程序,該應(yīng)用程序可以在用戶計(jì)算機(jī)啟動(dòng)后自動(dòng)運(yùn)行。該程序在系統(tǒng)空閑階段讀取操作系統(tǒng)本次啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù)。302:上述應(yīng)用層程序?qū)?duì)應(yīng)到不同文件中的文件信息讀取到同一個(gè)文件中。優(yōu)選地將連續(xù)的內(nèi)容與其對(duì)應(yīng)的磁盤物理偏移放在一個(gè)結(jié)構(gòu)體中,并作為一個(gè)元素(element)存儲(chǔ)在文件中。303:將302中生成的文件進(jìn)行壓縮。壓縮的方案可以采用開源的7z的壓縮算法或其他壓縮算法,具體的壓縮算法不影響本發(fā)明實(shí)施例的實(shí)現(xiàn),本發(fā)明實(shí)施例對(duì)此不予限定。304:開發(fā)一個(gè)引導(dǎo)啟動(dòng)類型的驅(qū)動(dòng)來實(shí)現(xiàn)壓縮后文件的加載,該步驟要注意兩個(gè)問題:由于該方案是代替操作系統(tǒng)進(jìn)行預(yù)取數(shù)據(jù)的讀取,因此在操作系統(tǒng)啟動(dòng)時(shí)要騙過操作系統(tǒng)的預(yù)取模塊,不能讓預(yù)取模塊的預(yù)取方案起作用,由于各種操作系統(tǒng)的預(yù)取機(jī)制不一樣,例如:預(yù)取模塊集成到內(nèi)核模塊中、通過準(zhǔn)備啟動(dòng)(readyboot)驅(qū)動(dòng)來實(shí)現(xiàn)的,因此要區(qū)別對(duì)待。最方便的方案是上述引導(dǎo)啟動(dòng)類型的驅(qū)動(dòng)在操作系統(tǒng)的預(yù)取模塊起作用前,將操作系統(tǒng)需要的預(yù)取數(shù)據(jù)刪除,這樣既不讓操作系統(tǒng)的預(yù)取模塊起作用,又不影響本次啟動(dòng)新的預(yù)取數(shù)據(jù)的產(chǎn)生。系統(tǒng)的預(yù)取模塊通過將文件數(shù)據(jù)讀取到內(nèi)存中來實(shí)現(xiàn)預(yù)加載,這里面需要注意的是內(nèi)容和文件偏移的對(duì)應(yīng)。由于將所有的預(yù)取數(shù)據(jù)全部合并到一個(gè)文件中,為解決難以控制系統(tǒng)的內(nèi)存模塊把這種關(guān)系對(duì)應(yīng)起來。因此我們可以把這種關(guān)系保存到我們自己申請(qǐng)的內(nèi)存中,同時(shí)攔截磁盤設(shè)備對(duì)象的IRP (I/O Request Package,輸入輸出請(qǐng)求包)處理,如果發(fā)現(xiàn)已經(jīng)被我們讀取就可以直接從內(nèi)存中返回內(nèi)容。以上方案,通過以上方案可將所有分散的I/O集中到一起,同時(shí)又為預(yù)取數(shù)據(jù)的壓縮提供了可能??梢源蟠筇岣哳A(yù)取數(shù)據(jù)的加載效率,是具有普適性并且效果顯著的設(shè)備提速方案。本發(fā)明實(shí)施例還提供了一種設(shè)備運(yùn)行速度優(yōu)化裝置,如圖4所示,包括:加載單元401,用于在可執(zhí)行文件啟動(dòng)前將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中;上述預(yù)取數(shù)據(jù)文件中存放有可執(zhí)行文件在本次啟動(dòng)之前的啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù),上述預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在上述預(yù)取數(shù)據(jù)文件中;可選地,加載的方式可以是使用引導(dǎo)啟動(dòng)類型的驅(qū)動(dòng)來加載,或者其他的方式加載也是可以的本發(fā)明實(shí)施例對(duì)比不予限定。攔截單元402,用于攔截磁盤設(shè)備對(duì)象的輸入輸出請(qǐng)求包IRP處理;讀取單元403,用于若攔截單元402攔截的IRP處理的內(nèi)容存放在上述加載單元401加載的預(yù)取數(shù)據(jù)文件中,則從內(nèi)存中讀取讀取上述IRP處理對(duì)應(yīng)的內(nèi)容。以上方案,通過以上方案可將所有分散的I/O集中到一起,同時(shí)又為預(yù)取數(shù)據(jù)的壓縮提供了可能??梢源蟠筇岣哳A(yù)取數(shù)據(jù)的加載效率,是具有普適性并且效果顯著的設(shè)備提速方案。如圖5所示,上述裝置還包括:讀取控制單元501,用于在上述讀取單元403從內(nèi)存中讀取讀取上述IRP處理對(duì)應(yīng)的內(nèi)容之前,禁止可執(zhí)行文件在啟動(dòng)過程中讀取上述可執(zhí)行文件在本次啟動(dòng)之前的啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù);上述讀取單元403,具體用于獲取上述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系;并依據(jù)上述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系從內(nèi)存中讀取上述IRP處理對(duì)應(yīng)的內(nèi)容??蛇x地,上述加載單元401,具體用于在操作系統(tǒng)的可執(zhí)行文件和\或應(yīng)用程序文件啟動(dòng)前將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中。本發(fā)明實(shí)施例的方案適用于操作系統(tǒng)也適用于應(yīng)用程序的運(yùn)行加速,前者可以加快啟動(dòng)速度,后者可以加快應(yīng)用程序運(yùn)行速度。后續(xù)實(shí)施例將以操作系統(tǒng)為例進(jìn)行說明,本領(lǐng)域技術(shù)人員可以理解的是,操作系統(tǒng)的舉例不應(yīng)理解為對(duì)本發(fā)明實(shí)施例的限定??蛇x地,加載的方式可以是使用引導(dǎo)啟動(dòng)類型的驅(qū)動(dòng)來加載,或者其他的方式加載也是可以的本發(fā)明實(shí)施例對(duì)比不予限定??蛇x地,上述加載單元401加載的預(yù)取數(shù)據(jù)中連續(xù)的內(nèi)容及其對(duì)應(yīng)的磁盤物理偏移存放在同一數(shù)據(jù)結(jié)構(gòu),并作為一個(gè)元素存放在預(yù)取數(shù)據(jù)文件中。上述數(shù)據(jù)結(jié)構(gòu)可以是結(jié)構(gòu)體,本領(lǐng)域技術(shù)人員可以理解的是結(jié)構(gòu)體并不是數(shù)據(jù)結(jié)構(gòu)的窮舉,該優(yōu)選的實(shí)現(xiàn)方案不應(yīng)理解為對(duì)本發(fā)明實(shí)施例的唯一限定。進(jìn)一步地,如圖6所示,上述預(yù)取數(shù)據(jù)文件為壓縮后的預(yù)取數(shù)據(jù)文件;上述裝置還包括:規(guī)則獲取單元601,用于上述將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中之前,獲取解壓規(guī)則;解壓?jiǎn)卧?02,用于使用上述規(guī)則獲取單元601獲取的解壓規(guī)則對(duì)上述壓縮后的預(yù)取數(shù)據(jù)文件進(jìn)行解壓。通過壓縮可以提高I/O讀取效率,進(jìn)而進(jìn)一步提高設(shè)備運(yùn)行速度。壓縮的算法可以采用7z的壓縮算法或其他壓縮算法,對(duì)此本發(fā)明實(shí)施例不予限定。本發(fā)明實(shí)施例還提供了一種設(shè)備運(yùn)行速度優(yōu)化裝置,如圖7所示,包括:數(shù)據(jù)獲取單元701,用于獲取可執(zhí)行文件在啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù);文件生成單元702,用于將預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在預(yù)取數(shù)據(jù)文件中;發(fā)送單元703,用于在上述可執(zhí)行文件啟動(dòng)前將上述預(yù)取數(shù)據(jù)文件以及上述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系,發(fā)送給上述可執(zhí)行文件所在的裝置??蛇x地,文件生成單元702,具體用于將連續(xù)的內(nèi)容及其對(duì)應(yīng)的磁盤物理偏移存放在同一數(shù)據(jù)結(jié)構(gòu)作為一個(gè)元素存放在預(yù)取數(shù)據(jù)文件中。以上方案,通過以上方案可將所有分散的I/O集中到一起,同時(shí)又為預(yù)取數(shù)據(jù)的壓縮提供了可能??梢源蟠筇岣哳A(yù)取數(shù)據(jù)的加載效率,是具有普適性并且效果顯著的設(shè)備提速方案。進(jìn)一步地,如圖8所示,上述裝置還包括:壓縮單元801,用于在將上述預(yù)取數(shù)據(jù)文件發(fā)送給上述可執(zhí)行文件所在的裝置之前,將上述預(yù)取數(shù)據(jù)文件壓縮;上述發(fā)送單元703,具體用于將壓縮后的預(yù)取數(shù)據(jù)文件發(fā)送給上述可執(zhí)行文件所在的裝置。值得注意的是,上述裝置實(shí)施例中,所包括的各個(gè)單元只是按照功能邏輯進(jìn)行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應(yīng)的功能即可;另外,各功能單元的具體名稱也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護(hù)范圍。另外,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述各方法實(shí)施例中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,相應(yīng)的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。以上僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明實(shí)施例揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種設(shè)備運(yùn)行速度優(yōu)化方法,其特征在于,包括: 在可執(zhí)行文件啟動(dòng)前將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中;所述預(yù)取數(shù)據(jù)文件中存放有所述可執(zhí)行文件在本次啟動(dòng)之前的啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù),所述預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在所述預(yù)取數(shù)據(jù)文件中; 攔截磁盤設(shè)備對(duì)象的輸入輸出請(qǐng)求包IRP處理,若IRP處理的內(nèi)容存放在所述預(yù)取數(shù)據(jù)文件中,則從內(nèi)存中讀取讀取所述IRP處理對(duì)應(yīng)的內(nèi)容。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述從內(nèi)存中讀取讀取所述IRP處理對(duì)應(yīng)的內(nèi)容之前還包括: 禁止可執(zhí)行文件在啟動(dòng)過程中讀取所述可執(zhí)行文件在本次啟動(dòng)之前的啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù);獲取所述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系; 所述從內(nèi)存中讀取所述IRP處理對(duì)應(yīng)的內(nèi)容包括: 依據(jù)所述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系從內(nèi)存中讀取所述IRP處理對(duì)應(yīng)的內(nèi)容。
3.根據(jù)權(quán)利要求1所述方法,其特征在于,所述可執(zhí)行文件包括: 操作系統(tǒng)的可執(zhí)行文件和\或應(yīng)用程序文件。
4.根據(jù)權(quán)利要求1所述方法,其特征在于,所述預(yù)取數(shù)據(jù)中連續(xù)的內(nèi)容及其對(duì)應(yīng)的磁盤物理偏移存放在同一數(shù)據(jù)結(jié)構(gòu),并作為一個(gè)元素存放在預(yù)取數(shù)據(jù)文件中。
5.根據(jù)權(quán)利要求1至4任意一項(xiàng)所述方法,其特征在于,所述預(yù)取數(shù)據(jù)文件為壓縮后的預(yù)取數(shù)據(jù)文件;所述將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中之前還包括: 獲取解壓規(guī)則,使用所述解壓規(guī)則對(duì)所述壓縮后的預(yù)取數(shù)據(jù)文件進(jìn)行解壓。
6.一種設(shè)備運(yùn)行速度優(yōu)化方法,其特征在于,包括: 獲取可執(zhí)行文件在啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù); 將預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在預(yù)取數(shù)據(jù)文件中; 在所述可執(zhí)行文件啟動(dòng)前將所述預(yù)取數(shù)據(jù)文件以及所述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系,發(fā)送給所述可執(zhí)行文件所在的裝置。
7.根據(jù)權(quán)利要求6所述方法,其特征在于,所述將預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在預(yù)取數(shù)據(jù)文件中包括: 將連續(xù)的內(nèi)容及其對(duì)應(yīng)的磁盤物理偏移存放在同一數(shù)據(jù)結(jié)構(gòu)作為一個(gè)元素存放在預(yù)取數(shù)據(jù)文件中。
8.根據(jù)權(quán)利要求6或7所述方法,其特征在于,所述將所述預(yù)取數(shù)據(jù)文件發(fā)送給所述可執(zhí)行文件所在的裝置之前還包括:將所述預(yù)取數(shù)據(jù)文件壓縮; 所述將所述預(yù)取數(shù)據(jù)文件發(fā)送給所述可執(zhí)行文件所在的裝置包括: 將壓縮后的預(yù)取數(shù)據(jù)文件發(fā)送給所述可執(zhí)行文件所在的裝置。
9.一種設(shè)備運(yùn)行速度優(yōu)化裝置,其特征在于,包括: 加載單元,用于在可執(zhí)行文件啟動(dòng)前將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中;所述預(yù)取數(shù)據(jù)文件中存放有可執(zhí)行文件在本次啟動(dòng)之前的啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù),所述預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在所述預(yù)取數(shù)據(jù)文件中; 攔截單元,用于攔截磁盤設(shè)備對(duì)象的輸入輸出請(qǐng)求包IRP處理; 讀取單元,用于若攔截單元攔截的IRP處理的內(nèi)容存放在所述加載單元加載的預(yù)取數(shù)據(jù)文件中,則從內(nèi)存中讀取讀取所述IRP處理對(duì)應(yīng)的內(nèi)容。
10.根據(jù)權(quán)利要求9所述裝置,其特征在于,還包括: 讀取控制單元,用于在所述讀取單元從內(nèi)存中讀取讀取所述IRP處理對(duì)應(yīng)的內(nèi)容之前,禁止可執(zhí)行文件在啟動(dòng)過程中讀取所述可執(zhí)行文件在本次啟動(dòng)之前的啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù); 所述讀取單元,具體用于獲取所述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系;并依據(jù)所述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系從內(nèi)存中讀取所述IRP處理對(duì)應(yīng)的內(nèi)容。
11.根據(jù)權(quán)利要求9所述裝置,其特征在于, 所述加載單元,具體用于在操作系統(tǒng)的可執(zhí)行文件和\或應(yīng)用程序文件啟動(dòng)前將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中。
12.根據(jù)權(quán)利要求9所述裝置,其特征在于, 所述加載單元加載的預(yù)取數(shù)據(jù)中連續(xù)的內(nèi)容及其對(duì)應(yīng)的磁盤物理偏移存放在同一數(shù)據(jù)結(jié)構(gòu),并作為一個(gè)元素存放在預(yù)取數(shù)據(jù)文件中。
13.根據(jù)權(quán)利要求9至12任意一項(xiàng)所述裝置,其特征在于,所述預(yù)取數(shù)據(jù)文件為壓縮后的預(yù)取數(shù)據(jù)文件;所述裝置還包括: 規(guī)則獲取單元,用于所述將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中之前,獲取解壓規(guī)則; 解壓?jiǎn)卧?,用于使用所述?guī)則獲取單元獲取的解壓規(guī)則對(duì)所述壓縮后的預(yù)取數(shù)據(jù)文件進(jìn)行解壓。
14.一種設(shè)備運(yùn)行速度優(yōu)化裝置,其特征在于,包括: 數(shù)據(jù)獲取單元,用于獲取可執(zhí)行文件在啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù); 文件生成單元,用于將預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在預(yù)取數(shù)據(jù)文件中;發(fā)送單元,用于在所述可執(zhí)行文件啟動(dòng)前將所述預(yù)取數(shù)據(jù)文件以及所述預(yù)取數(shù)據(jù)中的內(nèi)容和磁盤物理偏移的對(duì)應(yīng)關(guān)系,發(fā)送給所述可執(zhí)行文件所在的裝置。
15.根據(jù)權(quán)利要求14所述裝置,其特征在于, 文件生成單元,具體用于將連續(xù)的內(nèi)容及其對(duì)應(yīng)的磁盤物理偏移存放在同一數(shù)據(jù)結(jié)構(gòu)作為一個(gè)元素存放在預(yù)取數(shù)據(jù)文件中。
16.根據(jù)權(quán)利要求14或15所述裝置,其特征在于,還包括: 壓縮單元,用于在將所述預(yù)取數(shù)據(jù)文件發(fā)送給所述可執(zhí)行文件所在的裝置之前,將所述預(yù)取數(shù)據(jù)文件壓縮; 所述發(fā)送單元,具體用于將壓縮后的預(yù)取數(shù)據(jù)文件發(fā)送給所述可執(zhí)行文件所在的裝置。
全文摘要
本發(fā)明實(shí)施例公開了一種設(shè)備運(yùn)行速度優(yōu)化方法和裝置,其中方法的實(shí)現(xiàn)包括在可執(zhí)行文件啟動(dòng)前將預(yù)取數(shù)據(jù)文件加載到內(nèi)存中;上述預(yù)取數(shù)據(jù)文件中存放有可執(zhí)行文件在本次啟動(dòng)之前的啟動(dòng)過程中產(chǎn)生的預(yù)取數(shù)據(jù),上述預(yù)取數(shù)據(jù)中對(duì)應(yīng)不同文件的文件信息存放在上述預(yù)取數(shù)據(jù)文件中;攔截磁盤設(shè)備對(duì)象的輸入輸出請(qǐng)求包IRP處理,若IRP處理的內(nèi)容存放在上述預(yù)取數(shù)據(jù)文件中,則從內(nèi)存中讀取讀取上述IRP處理對(duì)應(yīng)的內(nèi)容。通過以上方案可將所有分散的I/O集中到一起,同時(shí)又為預(yù)取數(shù)據(jù)的壓縮提供了可能??梢源蟠筇岣哳A(yù)取數(shù)據(jù)的加載效率,是具有普適性并且效果顯著的設(shè)備提速方案。
文檔編號(hào)G06F9/445GK103150186SQ20131008279
公開日2013年6月12日 申請(qǐng)日期2013年3月15日 優(yōu)先權(quán)日2013年3月15日
發(fā)明者張領(lǐng) 申請(qǐng)人:騰訊科技(深圳)有限公司