王鵬
(陜西財經職業技術學院 陜西 咸陽 712000)
隨著現代計算機技術和硬件技術的發展,人們對計算機性能要求也越來越高。傳統針對計算機系統配置的測試是通過電腦中的DirectX診斷工具或者是通過在開機自檢的過程中,實現對硬件配置的檢測。同時隨著軟件技術的發展,以QQ、360為代表的硬件配置檢測軟件正在大大提高對系統硬件的性能。但是,在傳統的使用中,兩個軟件所檢測出的值卻存在著很大的差異。如通過360測試出的主板溫度保持在37度,而通過QQ軟件檢測出的主板溫度則保持在55度,以此形成巨大的差異。對此,本文提出一種通用性的計算機硬件配置測試軟件,實現從程序到系統功能的免費分享與應用。
結合對當前計算機使用的特點,本文將該硬件配置測試軟件的功能分為硬盤測試、USB測試、聲卡測試、處理器測試、串行接口測試、網絡接口測試等功能。其具體如圖1所示。
結合對軟件開發的實際,本文則主要對處理器測試、硬盤測試兩個部分功能的實現進行深入的分析與實現。同時本文所有文件目錄全部統一采用XML文件進行存儲。

圖1 軟件功能設計Fig.1 Software function design
該功能主要包括兩個方面:第一為功能測試;第二則為壓力測試。其中的功能測試則主要包括處理器型號、類別、廠商、標稱頻率、當前運行頻率、支持指令集、核心數目等。其中的指令集則包括通用、擴展、浮點運算單元等三種類型的指令集。而對處理器的壓力測試則主要包括并行壓力測試、審核壓力測試。對此本文則以CPU速度測試作為案例。
在設計中,對CPU速度測試的原理很簡單,也就是在一定時間內根據CPU運行的次數,從而確定其速度。對此對該模塊的設計在通過類向導映射其中各個控件變量的方式,并定義出其中的CTime時間類,從而通過事件按鈕實現對整個CPU速度的運算。系統在完成測試之后,則自動生成格式的文件,從而記錄本次測試所得到的相關信息。因此,本文采用其具體的速度計算代碼如圖2所示。

圖2 處理器測試部分代碼Fig.2 Part of the code processor test
如以GF8100-M8型號為主板,內存條為DDR2 1000的計算機進行測試,可以得到如圖3所示的結果。
硬盤作為當前PC電腦的一個非常重要的外部存儲件,其具有存儲容量大、存儲速度快等特點。硬盤好壞的評價包括很多直白哦,包括硬盤轉速、尋道時間等。在硬盤的性能方面則有傳輸速率等。而針對存儲器的測試,其主要包括讀寫測試和基本的信息測試,在基本的信息方面包括硬盤的數目、接口類型、硬盤的容量、版本類型等。本文對存儲器的測試則主要包括對硬盤的讀寫速度的測試。
針對在PC主機下的硬盤測試,由于當前的PC機很多都為微軟公司的Windows操作系統。在該系統下,其都有著相應的安全保護訪問機制,并在很大程度上很多的開發著對其硬盤進行操作都變得非常的困難。但是基于Windows的系統,其也提供了采用DOS的硬件訪問模式,并將其作為文件的方式對硬盤進行處理。
在對Windows系統下的硬盤進行讀寫測試前,需要借助其中的相關函數來實現對其的操作,而典型的函數則為對文件進行讀寫,同時還需要對其訪問的文件的路徑進行設置。通過該函數對文件的定位,即可實現對文件的讀寫,并且最后通過函數實現對文件的關閉,并完成對整個硬盤訪問的操作。

圖3 處理器性能測試Fig.3 Processor performance test
要實現上述對硬盤的讀寫,需要對其運行的算法進行設計。而由于在之下,其通常會存在著很大的硬盤的緩沖區,當在對硬盤進行讀寫的過程中,其實際讀取的數據與理想當中的數據的長度要多,當電腦在對下次數據進行讀取的時候,如果電腦緩沖區還存在上次讀取的數據,則直接將其復制到緩沖區當中,而不需要在對硬盤進行讀取;而磁盤在對數據進行寫入的時候,系統則會自動的將需要寫入的數據全部復制到緩沖的地帶,并告訴用戶該數據為寫入成功,并在系統的后臺慢慢的對這些數據進行寫入。如果在編寫程序的時候沒考慮到這些,則在對硬盤進行測試的時候,其得到的結果可很可能出現很大的誤差。同時,在對磁盤進行讀寫的過程中,其通常包括同步操作和異步操作兩個不同種類。在對磁盤進行讀寫中,其很多一部分的時間都是等待磁盤的響應;而磁盤在進行運轉的過程中歐,其中的移動磁頭的時間也最為的長;經過連續的讀寫的素具,其速度通常都變得比較快;磁盤的內部也會有一定的緩存;如果在對硬盤進行讀寫中存在壞道的時候,都會自動的進行重試,這些相關的測試的因素也都需要進行考慮。因此,對磁盤的測試,需要根據其具體的測試的目標來進行具體的決定。最后的結果則為其讀寫指定文件的時間,并結合其大小,則可以得到相應的讀寫的速度。如其讀寫關閉代碼:
BOOL bRet= ReadFile (hDev, IpSectBuff, 512 *wSectors,&dwCB,NULL);
CloseHandle(hDev);
return bRet;
}
對網絡接口的測試主要包括兩個部分:一為基本信息測試;另一部分為基本的功能測試,因此本文將其分為ping模塊與基本信息模塊。本文以網絡測試的ping功能為例,如對其時間測試的代碼如圖4所示。

圖4 網絡接口測試關部分代碼Fig.4 Network interface testing off partof the code
串口作為外部設備與計算機兩者通信的一種常用的方式,其通信的好壞,將直接決定計算機的使用情況。對此,本文通過編程調試的方式實現對該模塊功能的測試。而對串口通信的測試,其主要包括對通信速率、通信端口、奇偶校驗等相關參數的設置,并對定時數據發送的時間間隔進行設置。本文將該模塊實現的基本流程為如圖5所示。

圖5 串口通信編程實現流程Fig.5 Serial communication programming process
文中以硬件配置測試作為研究,以其中的處理器、串口通信等作為示例,采用開發工具對其進行編程,實現了對計算機硬件配置的各種性能測試,并摒棄了傳統檢測軟件存在的問題。同時該開發的軟件還可根據系統的需要對其進行不同硬件性能測試的開發,更好的實現軟件開發的靈活性,促進對軟件的利用。
[1]唐彬,劉超.Visual C++案例開發集錦[M].北京:電子工業出版社,2005.
[2]呂衛祥.基于SATA硬盤陣列的高速數據存取技術研究[D].南京:南京理工大學,2010.
[3]袁飛.固態硬盤的研究與應用[D].成都:電子科技大學,2010.
[4]王罡,林立志.基于Windows的TCP/IP編程[M].北京:清華大學出版社,2002.
[5]汪瀅,孫華軍.基于VC++串口通信的設計與實現[J].現代電子技術,2011,34(14):19-24.WANG Ying,SUN Hua-jun.Design and implementation of VC++based on serial communication[J].Modern Electronic Technology,2011,34 (14):19-24.
[6]李長林,高潔.VisualC++串口通信技術與典型實例[M].北京:清華大學出版社,2006.