演算法性能測試
A. 怎麼測試一個演算法的性能,用什麼軟體
這個要從兩個維度去考證:
一、測算指標,演算法都是有數學理論基礎的,在翻譯成計算機程序後,演算法的執行效率可以用賦值、比較、運算等操作次數,以及緩存、內存佔用率等指標進行一定的估算,還應對演算法效率進行計算,進行比較評估,包括迭代深度、循環/判斷嵌套深度等指標。
二、實際測試,這個就是要把演算法真的用計算機實現出來,將演算法邏輯封裝為函數、控制項、組件等,可調用的獨立環節(盡量減少非演算法語句的干擾),然後進行實際調用,記錄執行周期,分析實際性能。比如對比記錄新舊演算法單次執行的周期、固定數量多次執行的周期、執行期間資源佔用率、多線程並發調用的執行效率等指標。
另外、對於實際測試,如果想用專業測試軟體執行,可以用LoadRunner、Robot等專業軟體測試工具執行相應操作,但是對於您的要求,我還是建議收集性能指標的程序最好自己寫,其實並不復雜,就是調用您的演算法組件,把執行時間等參數記下來。
B. 性能測試的實現方法是什麼
狹義的軟體性能測試指為驗證軟體性能指標、評估系統服務能力、推薦系統軟硬體配置、完成系統性能優化等而開展的測試活動;
廣義的軟體性能測試指在測試過程中需要相關性能測試方法配合完成的系統測試活動,包括可靠性測試、可恢復性測試、穩定性測試、兼容性測試、可擴展性測試等。
性能測試的七種方法:
1.基準測試
基準測試是指通過設計科學的測試方法,測試工具和測試系統,實現對一類測試對象的某項指標進行定量的和可對比的測試。
2.壓力測試
通過對軟體系統不斷施加壓力,識別系統性能拐點,從而獲得系統提供的最大服務界別的測試活動,主要目的是檢查系統處於壓力情況下應用的表現。
3.負載測試
通過在被測系統中不斷增加壓力,直到達到性能指標極限要求。主要目的是找到特定的環境下系統處理能力的極限。
4.並發測試
主要指當測試多用戶並發訪問同一個應用、模塊、數據時是否產生隱藏的並發問題,如內存泄漏、線程鎖、資源爭用問題,幾乎所有的性能測試都會涉及並發測試。主要目的並非是為了獲得性能指標,而是為了發現並引起的問題。
5.疲勞測試
通過讓軟體在一定訪問量情況下長時間運行,以檢驗系統性能在多長時間會出現明顯下降,主要目的是驗證系統運行的可靠性。
6.數據量測試
通過讓軟體在不同的數據量情況下運行,以檢測系統性能在各種數據量情況下的表現。主要目的是找到支持系統正常工作的數據量許可權。
7.配置測試
配置測試主要是針對硬體而言,了解各種不同環境對系統性能影響的程度,從而找到系統各項資源的最優分配原則。主要目的是了解各種不同因素對系統性能影響的程度,從而判斷出最值得進行的調優操作。
為什麼學習性能測試?
門檻相對較低:比起自動化測試的純寫代碼,性能測試入門門檻相對較低,是大部分轉型和提升的朋友首選的切入口。
快速完善知識體系:優秀的性能測試工程師需要學習資料庫、架構、工具等多方面的知識,能幫助大家完善整體的知識體系,提升綜合競爭力。
市場大:性能測試工程師目前尚未飽和,處於發展中,機遇和挑戰並存,誰能提前切入該領域誰就佔領一席之地,你懂得!(單純的功能測試以後危機會越來越嚴重)
C. 應該從哪些方面分析和評價演算法的性能
評價演算法的四個標准:
1.正確性
能正確地實現預定的功能,滿足具體問題的需要。處理數據使用的演算法是否得當,能不能得到預想的結果。
2.易讀性
易於閱讀、理解和交流,便於調試、修改和擴充。寫出的演算法,能不能讓別人看明白,能不能讓別人明白演算法的邏輯?如果通俗易懂,在系統調試和修改或者功能擴充的時候,使系統維護更為便捷。
3.健壯性
輸入非法數據,演算法也能適當地做出反應後進行處理,不會產嫌或生預料不到的運行結果。數據的形式多種多樣,演算法可能面臨著接受各種各樣的數據,當演算法接收到不適合演算法處理的數據,演算法本身該如何處理呢?如果演算法能夠處理異常數據,處理能力越強,健壯性越好。
4.時空性
演算法的時空性是該演算法的時間性能和空間性能。主要是說演算法在執行過程中的時間長短和空間佔用多少問題。
演算法處理數據過程中,不同的演算法耗費的時間和內存空間是不同的。
(3)演算法性能測試擴展閱讀:
演算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個或多個操作。芹者伍此外,一個演算法還具有下列5個重要的特性。
(1)、有窮性
一個演算法必須總是(對任何合法的輸入值)在執行有窮步之後結束,且每一步都可在有窮時間內完成。
(2)、確定性嫌圓
演算法中每一條指令必須有明確的含義,讀者理解時不會產生二義性。即對於相同的輸入只能得到相同的輸出。
(3)、可行性
一個演算法是可行的,即演算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現的。
(4)、輸入
一個演算法有零個或多個的輸入,這些輸入取自於某個特定的對象的集合。
(5)、輸出
一個演算法有一個或多個的輸出,這些輸出是同輸入有著某種特定關系的量。
D. 怎樣對電腦的性能進行測試
DIY電腦檢測軟體大集中
一、綜合性檢測分析
1.AIDA32
這是一個綜合性的系統檢測分析工具,功能強大,易於上手。它可以詳細的顯示出PC每一個方面的信息。支持上千種(3400+)主板,支持上百種(360+)顯卡,支持對並口/串口/U##這些PNP設備的檢測,支持對各式各樣的處理器的偵測。目前AIDA32已經有多語言的支持並且加入了病毒檢測功能。AIDA32擁有數十種測試項目,主要包括CPU、主板、內存、感測器、GPU、顯示器、多媒體、邏輯驅動器、光碟機、ASPI、SMART、網路、DirectX、基準測試等等,支持的平台包括了Intel、AMD、VIA、nVIDIA、SIS等。
注意:AIDA32有一個小BUG,它顯示的nVIDIA的FX系列GPU的核心頻率為其2D頻率,目前還不能正確顯示其3D頻率。
http://file.mydrivers.com/tools/tweak/AIDA323935.zip
2.SiSoftware Sandra 2004
這是一套功能強大的系統分析評測工具,擁有超過30種以上的測試項目,主要包括有CPU、Drives、CD-ROM/DVD、Memory、SCSI、APM/ACPI、滑鼠、鍵盤、網路、主板、列印機等。全面支持當前各種VIA、ALI晶元組和Pentium 4、AMD DDR平台。
http://file.mydrivers.com/tools/twe...ra2004_9.89.zip
3.HWiNFO32
電腦硬體檢測軟體。它主要可以顯示出處理器、主板晶元組、PCMCIA介面、BIOS版本、內存等信息,另外HWiNFO還提供了對處理器、硬碟以及CD-ROM的性能測試功能。每個月都要出現許多我們知道或者不知道的電腦硬體,因此建議大家要經常下載這款測試軟體的新版本。
http://file.mydrivers.com/tools/tweak/hw32_141.exe
二、CPU檢測
1.檢測CPU是否被REMARK
(1)Intel Processor Frequency ID Utility
Intel Processor Frequency ID Utility是晶元業老大Intel發布的一款檢測自家CPU的工具,權威性不容置疑。軟體使用一種頻率確定演算法(速度檢測)來確定處理器以何種內部速率運行,然後再檢查處理器中的內部數據,並將此數據與檢測到的#作頻率進行比較,最終會將系統總體狀態作為比較結果通知用戶。
我們最關心的無非是兩點:CPU的主頻和倍頻,CPU是否被超頻。工具列出了「報告頻率」和「預期頻率」兩項數據,前一項表示被測試CPU的當前運行速度,後一項表示被測試CPU出廠時所設計的最高#作速度,只要兩者數據一致,即說明CPU未被超頻。
http://aiedownload.intel.com/df-sup...06/fidchs27.msi";
http://dl.pconline.com.cn/html/1/7/dlid=527&dltypeid=1&pn=0&.html
2.CPU信息檢測
(1)CPU-Z
該軟體可以提供全面的CPU相關信息報告,包括有處理器的名稱、廠商、時鍾頻率、核心電壓、超頻檢測、CPU所支持的多媒體指令集,並且還可以顯示出關於CPU的L1、L2的資料(大小、速度、技術),支持雙處理器。目前的版本已經不僅可以偵測CPU的信息,包括主板、內存等信息的檢測CPU-Z同樣可以勝任。新版本增加了對AMD64處理器在64位Windows#作系統的支持,增加了對新處理器Celeron M、Pentium 4 Prescott的支持。
http://file.mydrivers.com/tools/cpu/cpu-z-121.zip
(2)WCPUID
WCPUID可以顯示CPU的ID信息、內/外部時鍾頻率、CPU支持的多媒體指令集。重要的是它還具有「超頻檢測」功能。而且能顯示CPU/主板晶元組/顯示晶元的型號。有了它大家在購買電腦的時候就不用害怕被JS的打磨CPU所欺騙,因為它不到1MB的大小完全可以裝進軟盤,這樣你就可以帶著它去買CPU,相信JS看見了它就不敢再騙你了。
http://file.mydrivers.com/tools/cpu/wcpu31a.exe
3.CPU穩定性測試
(1)CPU Burn
(2)Toast
(3)Prime 95
在所有的拷機軟體中,Prime 5 是公認比較BT的一款,其他大部分拷機軟體和它比較起來,簡直是小巫見大巫。Prime 95 和Super π有類似的地方,都是利用不停計算函數來達到測試系統穩定性的目地。不過Prime 95 的測試環境非常苛刻,即使能在Super π中順利通過419萬次測試的系統,也不見得能在Prime 95 中熬過1分鍾。很多玩家用Prime 95 來測試超頻後的CPU,並以此作為超頻成功的證據。只要點擊執行文件就可進入主界面。點擊菜單欄「Option(選項)」中的「CPU」即可對測試進行設置。在這里,用戶可以設置測試的時間、測試所使用的內存容量,可以看到測試的起始和結束時間、以及CPU的型號、實際頻率以及緩存等信息。設置好以後點擊單欄「Option(選項)」中的「Torture Test(穩定性測試)」就開始進行測試了。由於Prime95的系統穩定性測試消耗的系統資源並不多,用戶可以在測試期間進行其它#作,這時Prime 95 會在系統托盤中生成一個紅色的圖標,代表測試正在順利進行著,如果這個圖標的顏色在測試還沒有結束之前就變成黃色了,說明測試失敗,你的系統沒有達到Primr 95 所要求的穩定性。Prime 95 默認的測試時間為12小時,如果通過12小時的測試,那說明系統穩定;如果能通過24小時以上的測試,那麼這個系統就基本不會因為穩定性而出現故障。
http://mersenne.org/gimps/p95v238.exe
(4)Hot CPU Tester Pro
它特別適用於愛好超頻的狂熱者,支持MMX、SSE、AMD 3DNow!等技術,可以測試出L1和L2緩存、系統和內存的帶寬、主板的晶元、多CPU的兼容性、CPU的穩定性、系統和內存匯流排,新版本支持最新的AMD Athlon 64和AMD Opteron CPU、支持超線程處理器,更換了新的界面,優化了測試功能。
http://file.mydrivers.com/tools/tweak/hotcpu4.1.exe
(5)Super π
π是計算圓周率的軟體,但它更適合用來測試CPU的穩定性。即使你的系統運行一天的Word、Photoshop都沒有問題,而運行Super PI 也不一定能通過。可以說,Super π可以作為判斷CPU穩定性的依據。使用方法:選擇你要計算的位數(一般採用104萬位),點擊開始就可以了。視系統性能不同,運算時間也不相同,當然是時間越短約好。
http://file.mydrivers.com/tools/tweak/superpi-8.zip
三、內存檢測
1.DocMemory
「內存神醫」是一種先進的電腦內存檢測軟體。它的友善的用戶界面使用方便,#作靈活。它可以檢測出所有電腦內存故障。「內存神醫」使用嚴謹的測試演算法和程序檢測電腦基本內存和擴展內存。用戶無需拆除內存條即可進行檢測。從網上下載的初裝軟體可以生成一個自行起動的「內存神醫」測試軟盤。只要將這個軟盤插入欲測電腦的軟碟機內並起動電腦即可開始內存檢測。「內存神醫」提供十種精密的內存檢測程序,其中包括MATS,MARCH+,MARCHC-,以及CHECKERBOARD等。選用老化測試可以檢測出95%以上內存軟故障。用戶可以使用滑鼠器方便的選擇檢測程序和設定測試參數。
http://file.mydrivers.com/tools/memory/DocMem1_45a.exe
2.MemTest
這是一個可*的內存檢測工具,通過對您的電腦進行儲存與讀取#作來分析檢查內存情況。
http://file.mydrivers.com/tools/tweak/MemTest2.5.zip
四、顯示器檢測
1.CRT顯示器檢測
Nokia Monitor Test
不少朋友買了CRT顯示器就直接接上去使用了,從未做過任何調試,也不知道自己的顯示器是好是壞,現在我們可以用NOKIA Monitor Test這個程序來測試並調整你的顯示器。這是一款Nokia公司出品的顯示器測試軟體,界面新穎、獨特功能齊全,能夠對幾何失真、四角聚焦、白平衡、色彩還原能力等進行測試。
http://file.mydrivers.com/tools/tweak/nokia.zip
2.液晶顯示器測試
CheckScreen
這是一款非常專業的液晶顯示器測試軟體,可以很好地檢測液晶顯示器的色彩、響應時間、文字顯示效果、有無壞點、視頻雜訊的程度和調節復雜度等各項參數。
打開Monitors Matter CheckScreen程序後,切換到「LCD Display」標簽頁。這里列出了相關測試項目:
Colour:色階測試,以3原色及高達1670萬種的色階畫面來測試色彩的表現力,當然是無色階最好啦,但大多數液晶顯示器均會有一些偏色,少數採用四燈管技術的品牌這方面做得比較好,畫面光亮、色彩純正、鮮艷。
Crosstalk:邊緣銳利度測試,屏幕顯示對比極強的黑白交錯畫面,我們可以藉此來檢查液晶顯示器色彩邊緣的銳利程度。由於液晶顯示器採用像素點發光的方式來顯示畫面,因此不會存在CRT顯示器的聚焦問題。
Smearing:響應時間,測試畫面是一個飛速運動的小方塊,如果響應時間比較長,你就能看到小方塊運行軌跡上有很多同樣的色塊,這就是所謂的拖尾現象。如果響應間比較短,我們所看到的色塊數量也會少得多,因此筆者建議使用相機的自動連拍功能,將畫面拍攝下來再慢慢觀察。
Pixel Check:壞點檢測,壞點數不大於3均屬A級面板。
TracKing:視頻雜訊檢測,由於液晶顯示較CRT顯示器具有更強的抗干擾能力,即使稍有雜訊,採用「自動調節」功能後就可以將畫面大小、時鍾、相位等參數調節到理想狀態。
http://ftp1.mydown.com/home1/soft34/checkscreen1_2.zip
五、外部存儲設備測試
1.硬碟測試
HD Tach
這是一款硬碟物理性能測試軟體,利用VXD特定模式來獲得測試最大精確度的硬碟性能測試工具。這是目前硬碟測試必備的一款專門針對磁碟底層性能的測試工具軟體,主要通過分段拷貝不同容量的數據到硬碟進行測試,它可以測試平均尋道時間、最大緩存讀取時間和讀寫時間(最大、最小和平均)、硬碟的連續數據傳輸率、隨機存取時間及突發數據傳輸率,它使用的場合並不僅僅只是針對硬碟,還可以用於軟碟機、ZIP驅動器測試。其中,平均讀寫時間是和平常應用最接近的情況。這是目前的最新版本,在新版本中加入了寫測試和對WinNT4/2000/XP#作系統的支持。
http://file.mydrivers.com/tools/tweak/HDTach270.exe
2.光碟機測試
(1)CD Speed 99
這是一款綜合的光碟驅動器性能測試軟體,由ahead公司出品,它能夠測試很多關於光碟和光碟驅動器的重要數據。比如光碟機的傳輸率、搜索時間、CPU的佔用率以及碟片的材質,最高支持速度,容量。與前一個版本比較,新版本加入了更多碟片檢測信息,改良了DVD檢測信息,優化了對DVD+R的兼容性問題……等很多的改變,推薦大家更新。
http://file.mydrivers.com/tools/twe...CDSpeed_211.zip
六、性能測試軟體
1.綜合性能測試
(1)PCMark04
這是一款測試計算機綜合性能的工具,由鼎鼎大名的Futuremark出品,軟體的風格和3DMark03如出一轍。整合的在線結果瀏覽器可以將你的測試結果與世界上最大的性能資料庫進行對比。PCmark 04集易用性和專業性為一身,甚至適合剛剛上手的PC用戶使用。PCMark 04的運行需要以下條件:必須使用Windows2000或Windows XP,必須安裝Microsoft Internet Explorer 6,必須安裝Microsoft Media Player 9,必須安裝Microsoft Media Encoder 9,必須安裝DirectX 9.0或以上版本。在HDD測試部分,這個版本解決了必須使用Windows XP測試的問題,現在在Windows2000下也可以執行此項測試。另外,該版本的PCMark04加入了對命令行支持,你可以使用命令方式來控制這款軟體。
http://file.mydrivers.com/tools/twe...04_patch110.exe
(2)WinBench 99
WinBench 99是一個考察PC機的圖形、磁碟、處理器和視頻子系統在Windows環境中的性能的測試軟體,它包括了下面幾個測試項目:商用Graphics WinMark 99、商用Disk WinMark 99、高端Graphics WinMark 99、高端Disk WinMark 99、CPUmark 99/FPU WinMark。
http://file.mydrivers.com/tools/tweak/wb9920g.exe
2.CPU運算能力測試
(1)科學計算能力測試
① Super π
Super π是一款計算圓周率的軟體,但它更適合用來測試CPU的穩定性。下載地址見前面的鏈接。
② ScienceMark 2.0
ScienceMark 2.0可用來測試處理器的一級、二級緩存,以及內存的延遲時間。
(2)CPU整數性能測試
ZD CPUmark
(3)CPU整數、浮點性能測試
CPU BENCHMARK
3.顯卡性能測試
(1)DirectX測試
① 3DMark 2001SE Build 330
FutureMark的3D Mark 系列測試軟體憑籍著亮麗的畫面和動感的音樂兩大法寶,已經成為了標準的顯卡測試軟體,且深受大家的喜愛。簡便的#作,直觀的結果,與3D Winbench相比,3D Mark確實更能打動我們這些普通玩家。新版本里更加入了對DirectX 9.0、AGP 3.0 (AGP 8x)、日文和韓文#作系統、新型號的硬體產品(主要在圖形晶元方面)的支持,修正了上個版本的一些BUG。該工具適合用於測試顯卡的DX8性能。
http://file.mydrivers.com/tools/tweak/3DMark2001SE.exe
② 3DMark03 Build 340
為了避免驅動對測試軟體作優化導致測試成績的不公正現象,FutureMark推出了全新的3DMark03 Build340。該版本完全是為了防止驅動的特殊優化而推出的。今後,在FutureMark網站上將提供用做測試的推薦驅動,以幫助測試者得到更准確的成績。還有一點大家需要注意,340版本推出後FutureMark將不再允許313、320或330版本3DMark03的成績提交。該工具主要測試顯卡的DX9性能。
http://file.mydrivers.com/tools/tweak/3DMark03_340.exe
③ AquaMark3
由於3DMark03引起的巨大爭議,其公正性開始受到公眾的置疑。這時候,由Massive Development開發的AquaMark3適時來到了我們的面前。不過,AquaMark3似乎同樣受到了驅動作弊的困擾。
http://file.mydrivers.com/tools/tweak/AquaMark3.exe
(2)OpenGL測試
ViewPref是由著名的SPEC組織開發的一款OpenGL圖形設備測試軟體,在OpenGL測試領域內擁有極高的聲譽,ViewPref的發展史很長最早可以追溯到1994年。ViewPref包含了大部分的OpenGL應用范圍,主要用於測試系統在專業OpenGL應用中的速度。著名的OpenGL測試專用軟體SPECviewperf今日終於公布了最新7.0版,新版本里在測試主題上偏向於應用型的軟體,當然他還是一款免費的軟體。該版本所包含的測試主要針對於顯卡在真實軟體中性能而設計,這些項目當然少不了CAD/CAM/CAE以及數碼內容製作俗稱DCC應用。SPECviewperf 7將所有的運行結果都以幀的形式表達,最終再進行重新的整理評分,以求得出一個最接近顯卡在真實應用環境下的表現。SPECviewperf 7在原有6.1.2基礎上加入了三個新的測試項目3DSMax[3dmax-01]、UniGraphics[ugs-01]及Pro/Enginner[proe-01]。
http://file.mydrivers.com/tools/twe...cviewperf71.exe
E. 評價一個演算法性能好壞的重要標準是
1、時間復雜度
演算法的時間復雜度是指執行演算法所需要的計算工作量。一般來說,計算機演算法是問題規模n 的函數f(n),演算法的時間復雜度也因此記做寬咐。
3、正確性
演算法的正滾旦確性是評價一個演算法優劣的最重要的標准。
4、可讀性
演算法的可讀性是指一個演算法可供人們閱讀的容易程度。
5、健壯性
健壯性是指一個演算法對不合理數據輸大巧擾入的反應能力和處理能力,也稱為容錯性。