電子設(shè)備的存儲(chǔ)器性能的測(cè)試方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子設(shè)備性能測(cè)試領(lǐng)域,特別涉及一種電子設(shè)備的存儲(chǔ)器性能的測(cè)試方法及裝置。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)飛速的發(fā)展,各種電子設(shè)備不斷的豐富并方便了大眾生活。由于利用電子設(shè)備處理信息具有方便快捷、節(jié)省資源等優(yōu)勢(shì),使得電子設(shè)備成為人們的生活或工作中不可或缺的一部分。
[0003]而涌現(xiàn)在市場(chǎng)上的電子設(shè)備性能高低不一,很多用戶在購(gòu)買電子設(shè)備時(shí)或者購(gòu)買之后有了解設(shè)備性能的意愿。其中,電子設(shè)備都有存儲(chǔ)的功能,比如存儲(chǔ)文件、圖片、音樂等等,這使得存儲(chǔ)器性能在電子設(shè)備性能中占有舉足輕重的地位,也是用戶非常關(guān)心的性能,因此,對(duì)電子設(shè)備的存儲(chǔ)器性能的測(cè)試具有非常重要的意義。
[0004]現(xiàn)有技術(shù)中,對(duì)存儲(chǔ)器性能的測(cè)試技術(shù)通常為:將文件寫入存儲(chǔ)器,然后再?gòu)拇鎯?chǔ)器讀取文件,進(jìn)而根據(jù)寫入文件和讀取文件的時(shí)間確定出存儲(chǔ)器性能。盡管現(xiàn)有技術(shù)能夠基于存儲(chǔ)器的性能測(cè)試標(biāo)準(zhǔn)(讀寫性能)進(jìn)行測(cè)試,但是,沒有充分考慮到存儲(chǔ)器中文件碎片(讀寫過程中所產(chǎn)生的不連續(xù)文件)和自帶的緩存區(qū)(位于存儲(chǔ)器內(nèi)部,并非I/o緩存)的影響,將導(dǎo)致測(cè)試結(jié)果不夠準(zhǔn)確,不能真正反映存儲(chǔ)器的性能。
[0005]可見,如何提高電子設(shè)備的存儲(chǔ)器性能的測(cè)試準(zhǔn)確性是一個(gè)亟待解決的問題。
【發(fā)明內(nèi)容】
[0006]基于上述問題,本發(fā)明實(shí)施例公開了一種電子設(shè)備的存儲(chǔ)器性能的測(cè)試方法及裝置,以提高電子設(shè)備的存儲(chǔ)器性能的測(cè)試準(zhǔn)確性。技術(shù)方案如下:
[0007]第一方面,本發(fā)明實(shí)施例提供了一種電子設(shè)備的存儲(chǔ)器性能的測(cè)試方法,包括:
[0008]接收開始測(cè)試指令;
[0009]響應(yīng)所述開始測(cè)試指令,通過I/O接口向存儲(chǔ)器寫入預(yù)定測(cè)試量的數(shù)據(jù),并確定通過I/o接口向所述存儲(chǔ)器寫入預(yù)定測(cè)試量的數(shù)據(jù)所消耗的第一總時(shí)間,其中,所述預(yù)定測(cè)試量的數(shù)據(jù)以至少一個(gè)符合預(yù)定大小的文件的方式寫入所述存儲(chǔ)器;
[0010]在預(yù)定測(cè)試量的數(shù)據(jù)寫入完畢后,通過I/O接口從所述存儲(chǔ)器中讀取已寫入的數(shù)據(jù),并確定通過I/o接口從所述存儲(chǔ)器中讀取已寫入的數(shù)據(jù)所消耗的第二總時(shí)間;
[0011]依據(jù)所述第一總時(shí)間和所述第二總時(shí)間,確定所述存儲(chǔ)器的性能結(jié)果。
[0012]可選的,
[0013]在向所述存儲(chǔ)器寫入預(yù)定測(cè)試量的數(shù)據(jù)時(shí),每個(gè)所述符合預(yù)定大小的文件以至少一個(gè)數(shù)據(jù)塊的方式寫入到所述存儲(chǔ)器中,各個(gè)所述數(shù)據(jù)塊不同。
[0014]可選的,
[0015]通過I/O接口向存儲(chǔ)器寫入預(yù)定測(cè)試量的數(shù)據(jù),包括:
[0016]通過I/O接口向存儲(chǔ)器寫入數(shù)據(jù),形成存儲(chǔ)于存儲(chǔ)器的一個(gè)文件;
[0017]在所述一個(gè)文件存儲(chǔ)完成后,判斷已寫入所述存儲(chǔ)器的數(shù)據(jù)是否為預(yù)定測(cè)試量,如果是,結(jié)束通過I/o接口向存儲(chǔ)器寫入數(shù)據(jù)的操作;否則,繼續(xù)執(zhí)行通過I/O接口向存儲(chǔ)器寫入數(shù)據(jù),形成存儲(chǔ)于存儲(chǔ)器的一個(gè)文件的步驟。
[0018]可選的,
[0019]所述預(yù)定測(cè)試量的數(shù)據(jù)包括本地預(yù)先存儲(chǔ)的數(shù)據(jù)量大小為預(yù)定測(cè)試量的目標(biāo)文件,所述目標(biāo)文件中包括至少一個(gè)符合預(yù)定大小的預(yù)設(shè)子文件,所述預(yù)設(shè)子文件包括至少一個(gè)數(shù)據(jù)塊,各所述數(shù)據(jù)塊不同;
[0020]所述通過I/O接口向存儲(chǔ)器寫入數(shù)據(jù),形成存儲(chǔ)于存儲(chǔ)器的一個(gè)文件的過程,包括:
[0021]獲得預(yù)設(shè)子文件的未被寫入所述存儲(chǔ)器的數(shù)據(jù)塊,并將所獲得的數(shù)據(jù)塊確定為本次待寫入的數(shù)據(jù)塊;
[0022]將本次待寫入的數(shù)據(jù)塊通過I/O接口寫入存儲(chǔ)器中;
[0023]判斷是否存在所述預(yù)設(shè)子文件的未被寫入到所述存儲(chǔ)器的數(shù)據(jù)塊,如果是,繼續(xù)執(zhí)行獲得預(yù)設(shè)子文件的未被寫入所述存儲(chǔ)器的數(shù)據(jù)塊,并將所獲得的數(shù)據(jù)塊確定為本次待寫入的數(shù)據(jù)塊的步驟;
[0024]否則,結(jié)束通過I/O接口向存儲(chǔ)器寫入數(shù)據(jù),形成存儲(chǔ)于存儲(chǔ)器的一個(gè)文件的過程。
[0025]可選的,
[0026]所述通過I/O接口向存儲(chǔ)器寫入數(shù)據(jù),形成存儲(chǔ)于存儲(chǔ)器的一個(gè)文件的過程,包括:
[0027]生成隨機(jī)數(shù)據(jù),將所述隨機(jī)數(shù)據(jù)確定為本次待寫入文件的第一數(shù)據(jù)塊,所述第一數(shù)據(jù)塊不大于所述預(yù)定大?。?br>[0028]對(duì)所述第一數(shù)據(jù)塊經(jīng)過第一加工方式處理,形成本次待寫入的數(shù)據(jù)塊;
[0029]將本次待寫入的數(shù)據(jù)塊通過I/O接口寫入存儲(chǔ)器;
[0030]判斷已寫入所述存儲(chǔ)器中的關(guān)于本次待寫入文件的數(shù)據(jù)量是否達(dá)到所述預(yù)定大小,如果否,將本次待寫入的數(shù)據(jù)塊作為下一次所需的第一數(shù)據(jù)塊,并繼續(xù)執(zhí)行對(duì)所述第一數(shù)據(jù)塊經(jīng)過第一加工方式處理,形成本次待寫入的數(shù)據(jù)塊的步驟;
[0031]如果是,結(jié)束通過I/O接口向存儲(chǔ)器寫入數(shù)據(jù),形成存儲(chǔ)于存儲(chǔ)器的一個(gè)文件的過程。
[0032]可選的,通過I/O接口從所述存儲(chǔ)器中讀取已寫入的數(shù)據(jù),包括:
[0033]通過I/O接口從所述存儲(chǔ)器中讀取所述至少一個(gè)符合預(yù)定大小的文件中當(dāng)前待讀取的文件;
[0034]在所述當(dāng)前待讀取的文件讀取完畢后,判斷所述當(dāng)前待讀取的文件是否為所述至少一個(gè)符合預(yù)定大小的文件中的最后一個(gè)文件,如果是,結(jié)束讀取已寫入的數(shù)據(jù)的過程;否貝U,將所需讀取的下一個(gè)文件作為當(dāng)前待讀取的文件,繼續(xù)執(zhí)行通過I/O接口從存儲(chǔ)器中讀取所述至少一個(gè)符合預(yù)定大小的文件中當(dāng)前待讀取的文件的步驟。
[0035]可選的,所述通過I/O接口從所述存儲(chǔ)器中讀取所述至少一個(gè)符合預(yù)定大小的文件中當(dāng)前待讀取的文件的過程,包括:
[0036]通過I/O接口從所述存儲(chǔ)器中讀取當(dāng)前待讀取的文件的數(shù)據(jù)塊;
[0037]對(duì)所讀取出的數(shù)據(jù)塊經(jīng)過第二加工方式處理;
[0038]并在經(jīng)過第二加工方式處理后,繼續(xù)通過I/O接口從所述存儲(chǔ)器中讀取當(dāng)前待讀取的文件的下一數(shù)據(jù)塊,直到所述當(dāng)前待讀取的文件的所有數(shù)據(jù)塊被讀取完畢。
[0039]可選的,所述預(yù)定大小為5M-25M。
[0040]可選的,所述確定通過I/O接口向所述存儲(chǔ)器寫入預(yù)定測(cè)試量的數(shù)據(jù)所消耗的第一總時(shí)間,包括:
[0041]在開始寫入數(shù)據(jù)時(shí),記錄第一系統(tǒng)時(shí)間;
[0042]并在結(jié)束寫入數(shù)據(jù)時(shí),記錄第二系統(tǒng)時(shí)間;
[0043]將所述第二系統(tǒng)時(shí)間與所述第一系統(tǒng)時(shí)間之差確定為通過I/O接口向所述存儲(chǔ)器寫入預(yù)定測(cè)試量的數(shù)據(jù)所消耗的第一總時(shí)間;
[0044]相應(yīng)的,所述確定通過I/O接口從所述存儲(chǔ)器中讀取已寫入的數(shù)據(jù)所消耗的第二總時(shí)間,包括:
[0045]在開始讀取數(shù)據(jù)時(shí),記錄第三系統(tǒng)時(shí)間;
[0046]并在結(jié)束讀取數(shù)據(jù)時(shí),記錄第四系統(tǒng)時(shí)間;
[0047]將所述第四系統(tǒng)時(shí)間與所述第三系統(tǒng)時(shí)間之差確定為通過I/O接口從所述存儲(chǔ)器中讀取已寫入的數(shù)據(jù)所消耗的第二總時(shí)間。
[0048]可選的,所述確定通過I/O接口向所述存儲(chǔ)器寫入預(yù)定測(cè)試量的數(shù)據(jù)所消耗的第一總時(shí)間,包括:
[0049]依次記錄寫入每一文件所消耗的第一時(shí)間;
[0050]將各個(gè)第一時(shí)間之和確定為通過I/O接口向所述存儲(chǔ)器寫入預(yù)定測(cè)試量的數(shù)據(jù)所消耗的第一總時(shí)間;
[0051]相應(yīng)的,所述確定通過I/O接口從所述存儲(chǔ)器中讀取已寫入的數(shù)據(jù)所消耗的第二總時(shí)間,包括:
[0052]依次記錄讀取每一文件所消耗的第二時(shí)間;
[0053]將各個(gè)第二時(shí)間之和確定為通過I/O接口從所述存儲(chǔ)器中讀取已寫入的數(shù)據(jù)所消耗的第二總時(shí)間。
[0054]第二方面,本發(fā)明實(shí)施例提供了一種電子設(shè)備的存儲(chǔ)器性能的測(cè)試裝置,包括:
[0055]指令接收模式,用于接收開始測(cè)試指令;
[0056]指令響應(yīng)模塊,用于響應(yīng)所述開始測(cè)試指令,觸發(fā)數(shù)據(jù)寫入模塊;
[0057]所述數(shù)據(jù)寫入模塊,用于通過I/O接口向存儲(chǔ)器寫入預(yù)定測(cè)試量的數(shù)據(jù);第一總時(shí)間確定模塊,用于確定通過I/o接口向所述存儲(chǔ)器寫入預(yù)定測(cè)試量的數(shù)據(jù)所消耗的第一總時(shí)間,其中,所述預(yù)定測(cè)試量的數(shù)據(jù)以至少一個(gè)符合預(yù)定大小的文件的方式寫入所述存儲(chǔ)器;
[0058]數(shù)據(jù)讀取模塊,用于在預(yù)定測(cè)試量的數(shù)據(jù)寫入完畢后,通過I/O接口從所述存儲(chǔ)器中讀取已寫入的數(shù)據(jù);
[0059]第二總時(shí)間確定模塊,用于確定通過I/O接口從所述存儲(chǔ)器中讀取已寫入的數(shù)據(jù)所消耗的第二總時(shí)間;
[0060]結(jié)果確定模塊,用于依據(jù)所述第一總時(shí)間和所述第二總時(shí)間,確定出所述存儲(chǔ)器的性能結(jié)果。
[0061]可選的,在向所述存儲(chǔ)器寫入預(yù)定測(cè)試量的數(shù)據(jù)時(shí),每個(gè)所述符合預(yù)定大小的文件以至少一個(gè)數(shù)據(jù)塊的方式寫入到所述存儲(chǔ)器中,各個(gè)所述數(shù)據(jù)塊不同。
[0062]可選的,所述數(shù)據(jù)寫入模塊,包括:
[0063]寫入單元,用于通過I/O接口向存儲(chǔ)器寫入數(shù)據(jù),形成存儲(chǔ)于存儲(chǔ)器的一個(gè)文件;
[0064]第一判斷單元,用于在所述一個(gè)文件存儲(chǔ)完成后,判斷已寫入所述存儲(chǔ)器的數(shù)據(jù)是否為預(yù)定測(cè)試量,如果是,結(jié)束通過I/o接口向存儲(chǔ)器寫入數(shù)據(jù)的操作;否則,觸發(fā)所述寫入單元執(zhí)行通過I/O接口向存儲(chǔ)器寫入數(shù)據(jù),形成存儲(chǔ)于存儲(chǔ)器的一個(gè)文件的步驟。
[0065]可選的,所述預(yù)定測(cè)試量的數(shù)據(jù)包括本地預(yù)先存儲(chǔ)的數(shù)據(jù)量大小為預(yù)定測(cè)試量的目標(biāo)文件,所述目標(biāo)文件中包括至少一個(gè)符合預(yù)定大小的預(yù)設(shè)子文件,所述預(yù)設(shè)子文件包括至少一個(gè)數(shù)據(jù)塊,各所述數(shù)據(jù)塊不同;
[0066]所述寫入單元,包括:
[0067]第一待寫入數(shù)據(jù)塊確定子單元,用于獲得預(yù)設(shè)子文件的未被寫入所述存儲(chǔ)器的數(shù)據(jù)塊,并將所獲得的數(shù)據(jù)塊確定為本次待寫入的數(shù)據(jù)塊;
[0068]第一數(shù)據(jù)塊寫入子單元,用于將本次待寫入的數(shù)據(jù)塊通過I/O接口寫入存儲(chǔ)器中;
[0069]第一判斷子單元,用于判斷是否存在所述預(yù)設(shè)子文件的未被寫入到所述存儲(chǔ)器的數(shù)據(jù)塊,如果是,觸發(fā)所述第一待寫入數(shù)據(jù)塊確定子單元;否則,結(jié)束通過I/O接口向存儲(chǔ)器寫入數(shù)據(jù),形成存儲(chǔ)于存儲(chǔ)器的一個(gè)文件的過程。
[0070]可選的,所述寫入單元,包括:
[0071]第一數(shù)據(jù)塊獲得子單元,用于生成隨機(jī)數(shù)據(jù),將所述隨機(jī)數(shù)據(jù)確定為本次待寫入文件的第一數(shù)據(jù)塊,所述第一數(shù)據(jù)塊不大于所述預(yù)定大??;
[0072]第二待寫入數(shù)據(jù)塊確定子單元,用于對(duì)所述第一數(shù)據(jù)塊經(jīng)過第一加工方式處理,形成本次待寫入的數(shù)據(jù)塊;
[0073]第二數(shù)據(jù)塊寫入子單元,用于將本次待寫入的數(shù)據(jù)塊通過I/O接口寫入存儲(chǔ)器;
[0074]第二判斷子單元,用于判斷已寫入所述存儲(chǔ)器中的關(guān)于本次待寫入文件的數(shù)據(jù)是否達(dá)到所述預(yù)定大小,如果否,觸發(fā)第二獲得子單元;如果是,結(jié)束通過I/o緩沖向存儲(chǔ)器寫入數(shù)據(jù),形成存儲(chǔ)于存儲(chǔ)器的一個(gè)文件的過程;
[0075]所述第二數(shù)據(jù)塊獲得子單元,用于將本次待寫入的數(shù)據(jù)塊作為下一次所需的第一數(shù)據(jù)塊,并觸發(fā)所述第二待寫入數(shù)據(jù)塊確定子單元執(zhí)行對(duì)所述第一數(shù)據(jù)塊經(jīng)過第一加工方式處理,形成本次待寫入的數(shù)據(jù)塊的步驟。
[0076]可選的,所述數(shù)據(jù)讀取模塊,包括:
[0077]讀取單元,用于通過I/O接口從所述存