算法性能测试
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、健壮性
健壮性是指一个算法对不合理数据输大巧扰入的反应能力和处理能力,也称为容错性。