很偶然的,由于工作关系,我把一些用VC60开发的代码用BCB60所带的编译器重新
编译了一下一个意外的结果就是竟然得到了效率差别极大的目标代码虽然以前也看到过一些关于两者效率的言论,但是当你亲自目睹这样的结果仍然是具有震撼力的在我的这项工作中,效率不是我所关心的,但是也并非毫无优化的价值由于这些代码大量使用了stl,因此也就萌生了对不同编译器的stl性能加以比较的念头我的目标不仅仅是要得到一个定性的概念,而是希望能够有一个定量的结论即使这些数据精确度不高,从定性到定量,仍然是一个质的飞跃
在BCB60当中的STL已经是采用STLPort了,也就是说源自SGI的STL。这被大家认为是最优秀的STL实现,也许有人会因此认为这样的比较有失公允。不过,我只是比较两个完整的产品,并不关心它利用了何人的成果。如果有人乐意把VC的STL也替换成STLPort再比较,那自然也是很有意义的工作。
指导思想:
为了评价效率问题,通常我会将要测试的内容独立出来,得出若干细节上的效率比较数据,从而,我们可以根据这些测试数据,组合出在实际代码中的可能结果但是,我并不采取将测试目标完全孤立的办法我测试的结果不是为做代码优化的程序员提供标准,而是为通常的程序开发提供一个效率方面的参考,提供一个作出某种选择的依据既然是为通常的编码行为提供参考,我的测试代码也就要体现一般性的使用方法。例如:我不会为了排除跳转语句的干扰而展开代码;不会因为函数调用的开销而避免函数调用;也较少的考虑cache的影响。
除了BCB和VC之间的比较之外,也会做很多同一个编译器内部的比较,例如vector和list之间的比较
测试数据的筛选:
和以前见过的很多测试不同的是,我对测试结果没有采用取平均值的办法。我的测
试是在Windows2000下做的,不能不考虑多任务环境带来的干扰,例如线程调度。由于每个测试持续的时间很短,如果测试期间恰好发生上下文切换,那么结果就会产生很大的偏差,对于这种偶发性的干扰因素,必须排除。而且,我认为不会因为某种意外因素会降低测试用例的运行时间。所以我采取的筛选方法是做多次测试,选取最快的一个结果。正确的方法是应该剔除明显不合格的测试数据,求平均值及其方差。从我试验的结果来看,选取最小值的办法和求平均值的办法比起来误差<1%,简便起见,选择最小值作为测试结果。
测试方法的一些解释:
做性能测试,首先需要一个定时器。在这里要感谢从csdn的waterflier(水行鸟)那里
学到的的方法>
Jmeter 26 java
>
Webload 810208 通用
OpenSTA 是专用于B/S结构
Selenium Server 210 浏览器
Watir 155 Ruby语言
WatiN-2101196 Net平台
NETUNIT085_beta2 xUnit测试框架的执行单元测试专门设计的。NET平台编写的组件
PHPUNIT 05 PHPUnit是一个轻量级的PHP测试框架
JUNIT 49b2 Unit是一个开发源代码的Java测试框架
CUnit-21-2 c语言环境下也出现了开发源码的白盒测试用例CUnit
paros-3213 Paros是一种利用纯java语言开发的安全漏洞扫描工具
建议vs2008,更高级的运行速度太慢 2010 2012版本的 速度简直无法忍受,而vc6在vista以上系统运行不好,经常出错,而且编译起也比较老。
如果需要在其他系统上做测试,干脆用netbeans,开源的,官网有详细的c和c++环境配置说明 适合windows和linux 等系统
以上就是关于求编写C语言的软件全部的内容,包括:求编写C语言的软件、开源的软件测试工具中有哪些是基于C语言或是C++的、我正在学C语言,不知道用什么软件来验证我写的程序对不对等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)