0.热身测试for(longi0;i<1000000000;i++){}直接计时,测试空循环性能结果:1.1环境下3.51秒2.0环境下5.25秒1.直接String.R
0.热身测试 for(long i=0;i<1000000000;i++){}直接计时,测试空循环性能
结果: 1.1环境下 3.51秒 2.0环境下 5.25秒
1.直接String.Replace(@"a",@"Abcd")长字串,用for(i++)循环100000次,最基础测试
结果: 1.1环境下1.78秒 2.0环境下2.32秒
2.内置的Base64加码解码运算,用for(i++)循环,目的是测试内置加密算法速度
结果:同样1000000次 1.12环境下2.55秒 2.0环境下3.75秒
3.利用内置的MD5运算用for(i++)循环100000次,目的是测试HASH算法速度
结果:1.1环境下0.78秒 2.0环境下2.70秒
有兴趣可以测试一下
测试环境:
在同一个硬件环境中(CPU,内存等),
两块相同型号的硬盘 ST 160G
同样的软件环境 Windows 2003 SP1,IIS ASP.NET环境下
安装完之后Ghost到另一硬盘,双盘完全一样
在源盘安装.Net2.0.50727,另一硬盘保持1.1.4322不变
仅仅是 .Net 2.0 和 .Net 1.1 不同
直接用ASPX同样代码运行
每个测试成绩都在重新启动计算机后,分别运行15次
记录最快的10次成绩相加除10保留2位小数所得出
99 个解决方案
正常,语言越高级,效能越低...
还有你的测试方法我个人觉得不大精准...
朋友!我认为效率不是表现在语言或运行速度上的,是项目开发的时间、利润、掌握的知识、编程思想、软件的稳定性、易用性等,这些才是效率表现的地方!
你测得这些不是新的系统架构。如果你抽出新楼的几块水泥块和10年前的楼的几块水泥块判断,仅仅因为材料不是完全新的,就断定新楼是10年前盖的,这就荒谬了。
2.0快在重新设计的框架体系和新的语法特征上(实际上从编程语言到msil是翻译,而从msil到机器语言才是编译,而我们总是把前者认为是编译,对后者的改进忽视)。
to : bleempan(恒星-痕星)
希望提出更优秀的测试方法,大家共同探讨
to : s3yk(痴线佬)
当然,追求利润,时间效率固然重要,但这些都卫冕太商业味了,
软件的质量主要是体现在稳定易用和执行速度上.
比如,预测分析软件,同样最简算法下,有的执行20分钟,有的15秒
为什么好的跑车要建立在轻硬的材料上? 底层材料轻巧才好在上层发挥.
要是用铅制造,如何?
功能可以扩展,可以外挂,但底层速度不能越来越低的啊.
以前的应付客户时代慢慢过去,现在的客户大都会找来比较懂的人来参谋.
硬件虽然提高,执行效率依然很重要. 底层做不快,上层基础也就会差.
大型应用,要求每服务器支持数万人在线,慢了20%,1万就少容下2000多人,
为了达到要求,无形中,硬件成本就提高了,项目硬件成本提高,利润也就少了.
没测试过,有点意思,不知道win2003自带的.net 1.1会不会对2.0有什么影响?再用win2000/xp试试?
如果想测试CPU等功能异常简单、功能点少的用户的测试能够完全覆盖其内部机制的系统,你的方法或许可以考虑。
to: sp1234
同样框架下(不是Java和C++比)
如果连最简单的1+1=2的问题上,
效率都要输给老版本系统20%...唉...新技术啊...
搞测试的人的基本素质是什么呢?
一定要以学习这个为先,不要学点技术就以为可以胜任了。
如果仅仅是单机进程,效率慢也就慢了,
可在稍大些的项目里,在数千上万人同时刷新页面的时候,慢20%,客户就未必能接受了...
你在同样硬件的机器上安装windows98,肯定能测出windows2003比windows98慢多少多少。你觉得自己的测试能说明什么吗?
搞测试,分为从内部测试与外部测试,
内部测试员,当然是越懂越好,从内部来测试比较仔细
外部测试员,当然是越不懂越好,更贴近用户.
客户虽然很懂,但大都不是专家.
总是在象牙塔里发号施令,最终只会在混顿的软件开发项目中,溺死.
其实道理仔细想想就明白。在windows98下,想达到今天的功能,每一个应用程序就都要自己开发很多自己的子系统,甚至用一大堆open source的烂代码去做。你对系统性能的测试是否包括了这些从实际应用出发的?
你的选择,决定了你的结果。而不是技术决定了结果。
98的速度确实可喜,但假32位系统的稳定性才是其致命伤啊.
就比如,你是愿意座客机去美国呢,还是愿意座导弹?
导弹着实是快了不少,可是会危机生命.
在稳定性不减少的同时,增加速度才是有意义的.
否则,软件都停留在DOS好了,多纯洁简单啊...
测试方法即不是“内部测试”,也不是“外部测试”。即使是黑箱测试,最基本的,你要对你测试用例的选择反复论证。
用OPEN SOURCE的烂代码至少比较透明,
我可以选择执行或不执行,调用或不调用
做商业项目,都是有侧重面的,
客户会对一些实测数字非常感兴趣,
比如,压力测试,容错测试等.
如果耗费100倍的时间去死啃算法与竞争对手拉平20%的执行效率,
只会浪费无数时间成本...或选择:失败...
哈哈,暗箱测试.
for(long i=0;i<1000000000;i++){
}
其他什么代码都没有,暗吗?
从 C 时代 到 JAVA 时代,这段代码都不暗吧 ...
这么简单一句, 安全性,缓冲,权限判定什么的系统必须执行的,应该再代码之前执行吧?
回收内存,清除垃圾什么的,应该在后面执行吧?
中间循环个1000000000次,多纯净的代码呀.
即便前后都多执行些系统内部的东西,速度也不该成几何型变慢吧?
http://community.csdn.net/Expert/topic/4538/4538299.xml?temp=.4428217
每个测试说明的是个方面,
我的测试主要就是同样的环境,用最简单的代码,测试执行效率,
用不着去诋毁或质疑别人的测试,自己拿出更好的测试例子,
体现自己的测试面和结果才是有意义的.
比如,另外某方面的执行速度呀,或者安全性呀,或者查询搜索速度什么的呀
就像Nv卡和ATI显卡的某些测试,当然不可能在所有平台下测试,测试的内容,
当然也就是某几种游戏和软件什么的.对应不同阶层的用户来参考选择.
结果无论是1.1快,还是2.0快,总归是个结论,让大家分享,
节约了其他人从事该项代码测试的时间.
的确,软件设计是在选择中度过的,只有更多的实际测试数据,
才能给后来人提供最佳的选择参考,挑选合适的平台来适应各类客户变态的要求.
我认为效率不是表现在语言或运行速度上的,是项目开发的时间、利润、掌握的知识、编程思想、软件的稳定性、易用性等,这些才是效率表现的地方!
-------你是站在程序员的角度来考虑问题,站在用户的角度呢,用户不考虑运行速度考虑什么?难道用户还管你的程序是花了多长时间开发出来的?
支持 zhouhongyun(春天的十七个瞬间) !!!
你为什么不说ADO.NET的性能已经提高了40%
为什么不说开发效率上提高了很多呢?
而且和你的硬件要求有很大的关系,本来2.0的配置就比1.1的要求高了很多
to: hoowoo(专注ASP.NET 2.O)
1.1环境下,我采用 Pentium II 300 Mhz , 256MB 内存,
2.0环境下是要改用P4 3.6EE 的 CPU 和 2GB 内存,测试更有说服力吗?
至于2.0 ADO.NET执行效率的提高,请拿出测试代码例子和测试结果来好吗?
To:swordragon(古道热肠)
每一种测试都有其意义,体现的都是一个侧面,有的作用大,有的小
不能以点盖面,但"面"也是由很多小点组成的,
得出一些数据,说明一些问题而已
把所有代码贴出来 还是具体的运行细节 让别人自己试试并信服那才是正确的态度 否则真是没有意义
To: Macosx()
怎么没贴出来呀... for(long i=0;i<1000000000;i++){}
代码不在多,在与简单有效
我用Intel CPU 和 AMD CPU 都试过了,好像都是2.0的慢,
不信服你自己试试,
兴许在你的CPU上运行会有其他的神奇的结果...
直接用文本写aps.net脚本,差不多吧。
在VS中运行,本来VS2005就狂吃内存。
请问搂住,如果用2.0编译后的网站进行对比,那速度可能会非常不同了,搂住不了解2.0阿
http://do-net.xicp.net
.NET技术群
10058555
---------------------------------------------------------
个人QQ303864496
msn:losingrose@21cn.com
NeT(Nebula Team)愿意郑州发展的.net技术朋友(19-25岁)招募中...
email:seawind121@163.com
To: Jhzyz(精英部落 http://www.IPTver.com)
当然,只拿NotePad.exe 编辑的Aspx文件,
如果启动VS2003和VS2005,测试又不太精确了!
不信你试试.直接刷页面
To: losingrose()
测的就是网站上的执行内容,
你也可以亲自试试,无论什么代码,
用NotePad直接存个Aspx文件到1.1环境的IIS下,
同样内容贴进2.0环境的IIS下,
因为执行10000次或更多,
所以随便写个秒级的计时器来计算时间都可以
你应该会发现: 2.0 的确比 1.1慢不少...
如果有其他结果,欢迎探讨...
To: losingrose()
我在接触2.0之初,也觉得"可能应该更快些",
但不要相信概念和直觉或是谁谁谁说,
亲手写个小测试,
真实的答案才会出来.
其实真的希望2.0不要在本来就不太快的.NET 框架环境下再加性能负担了...
我对2.0的性能的确有点失望~
不管在其他方面有多大的优势,性能始终是个无法回避的,重中之重的问题!
除非这个世界已经不再存在时间这个概念>_<
以下是我的个人意见,欢迎指教:
.NET 2.0提供了对64位的支持,可用于开发64位的应用程序
而楼主的for循环重主要有两个操作,一个是加法运算,而另一个则是跳转
所以,我估计性能损失可能就在于64位的寻址运算
如果是这样的话,那些微的性能损失也就在情理之中了
个人感觉,2.0确实比1.1慢,但是想想在dos是一个hello world的程序只要十几个字节,就可实现,vc++下你试试,最少要几k,
2.0应该是应用于未来的技术,没看见ms原来说长角要建立与.net框架之上,后来又反悔了吗??
为何要用apsx测呢?
如果用aspx的,需要先把1.1和2.0的都编译成dll再测才更准确点。
我感觉如果机器起机后首次执行.net2.0编写的程序,确实比.net1.0慢多了.可是如果关闭程序再次打开的话速度飞快.我的机器是p4 2.0 512m 40g
To :kingtsui(老农民)
用aspx测试是因为可以直接测试在相同代码下的效果,
如果所谓"编译",又牵扯到编译器和参数的相关事宜了.
再说aspx运行原理也是通过编译dll来执行的,
在.Net Framework 的 Cache 目录下看到N多DLL,
那些就是对应Aspx的.
To: wqdzgh(红螃蟹)
关闭再打开快吗? 比1.1还快?
如果是,拿出成绩来看一下.谢谢
这个东西很难讲,难道说2.0比1.0慢你就不用了?
做MS的Coder永远是在MS的后面的
不知道楼主是怎么测试的,不过这种测试应该用Console而不是ASP.NET。
如果是在VS集成环境中直接测试,则:
VS2003直接用IIS运行,VS2005则是使用自己的测试Web服务器即时编译测试。速度慢是必然的。
两种ASP.NET的模型根本就不一样,很难说这种测试结果有什么意义。
这是新东西的必然,
同时,这里面包含着微软和硬件制造商的商业目的。
软件要求越高,用户越需要升级,硬件制造上就越赚钱。
每次微软发布新操作系统。那么各大硬件企业都会发布硬件的新版本。