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位小数所得出
希望提出更优秀的测试方法,大家共同探讨to : s3yk(痴线佬)
当然,追求利润,时间效率固然重要,但这些都卫冕太商业味了,
软件的质量主要是体现在稳定易用和执行速度上.比如,预测分析软件,同样最简算法下,有的执行20分钟,有的15秒为什么好的跑车要建立在轻硬的材料上? 底层材料轻巧才好在上层发挥.
要是用铅制造,如何?功能可以扩展,可以外挂,但底层速度不能越来越低的啊.以前的应付客户时代慢慢过去,现在的客户大都会找来比较懂的人来参谋.
硬件虽然提高,执行效率依然很重要. 底层做不快,上层基础也就会差.大型应用,要求每服务器支持数万人在线,慢了20%,1万就少容下2000多人,
为了达到要求,无形中,硬件成本就提高了,项目硬件成本提高,利润也就少了.
如果连最简单的1+1=2的问题上,
效率都要输给老版本系统20%...唉...新技术啊...
我可以选择执行或不执行,调用或不调用做商业项目,都是有侧重面的,
客户会对一些实测数字非常感兴趣,
比如,压力测试,容错测试等.
如果耗费100倍的时间去死啃算法与竞争对手拉平20%的执行效率,
只会浪费无数时间成本...或选择:失败...
我的测试主要就是同样的环境,用最简单的代码,测试执行效率,
用不着去诋毁或质疑别人的测试,自己拿出更好的测试例子,
体现自己的测试面和结果才是有意义的.
比如,另外某方面的执行速度呀,或者安全性呀,或者查询搜索速度什么的呀就像Nv卡和ATI显卡的某些测试,当然不可能在所有平台下测试,测试的内容,
当然也就是某几种游戏和软件什么的.对应不同阶层的用户来参考选择.结果无论是1.1快,还是2.0快,总归是个结论,让大家分享,
节约了其他人从事该项代码测试的时间.的确,软件设计是在选择中度过的,只有更多的实际测试数据,
才能给后来人提供最佳的选择参考,挑选合适的平台来适应各类客户变态的要求.
为什么不说开发效率上提高了很多呢?
2.0环境下是要改用P4 3.6EE 的 CPU 和 2GB 内存,测试更有说服力吗?至于2.0 ADO.NET执行效率的提高,请拿出测试代码例子和测试结果来好吗?
不能以点盖面,但"面"也是由很多小点组成的,
得出一些数据,说明一些问题而已
不信服你自己试试,
兴许在你的CPU上运行会有其他的神奇的结果...
在VS中运行,本来VS2005就狂吃内存。
.NET技术群
10058555
---------------------------------------------------------
个人QQ303864496
msn:[email protected]
NeT(Nebula Team)愿意郑州发展的.net技术朋友(19-25岁)招募中...
email:[email protected]
如果启动VS2003和VS2005,测试又不太精确了!不信你试试.直接刷页面
你也可以亲自试试,无论什么代码,
用NotePad直接存个Aspx文件到1.1环境的IIS下,
同样内容贴进2.0环境的IIS下,
因为执行10000次或更多,
所以随便写个秒级的计时器来计算时间都可以你应该会发现: 2.0 的确比 1.1慢不少...
如果有其他结果,欢迎探讨...
但不要相信概念和直觉或是谁谁谁说,
亲手写个小测试,
真实的答案才会出来.其实真的希望2.0不要在本来就不太快的.NET 框架环境下再加性能负担了...
2.0应该是应用于未来的技术,没看见ms原来说长角要建立与.net框架之上,后来又反悔了吗??
如果用aspx的,需要先把1.1和2.0的都编译成dll再测才更准确点。
如果所谓"编译",又牵扯到编译器和参数的相关事宜了.再说aspx运行原理也是通过编译dll来执行的,
在.Net Framework 的 Cache 目录下看到N多DLL,
那些就是对应Aspx的.
如果是,拿出成绩来看一下.谢谢
做MS的Coder永远是在MS的后面的
就被来一个无情的讽刺,谁还敢说话?支持!
就被来一个无情的讽刺,谁还敢说话?支持!=============================================================该丢弃的是中国人那可怜的面子,批评就一定是讽刺吗?讽刺就会无地自容嘛?搞笑……
CPU:AMD AthlonXP 2000+(1.6 GHz), 内存:512MB, Windows2003 SP1VS.net2003(VB) : 2113 毫秒
VS.net2003(C#) : 2187 毫秒
VS2005(VB) : 2190 毫秒
VS2005(C#) : 2174 毫秒测试二:
CPU:Intel Petium4 2.26 GHz, 内存:512MB, Windows2003 SP1VS.net2003(VB) : 2564 毫秒
VS.net2003(C#) : 2543 毫秒
VS2005(VB) : 2628 毫秒
VS2005(C#) : 2632 毫秒附 测试的代码(2005版):
[VB2005]
Dim watch As New Stopwatch, I As Long = 0
watch.Start()
Do While I < 1000000000 : I += 1 : Loop
watch.Stop()
TextBox1.Text = watch.ElapsedMilliseconds.ToString[C#2.0]
{
System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
watch.Start();
for (long i = 0; i < 1000000000; i++) ;
watch.Stop();
textBox1.Text = watch.ElapsedMilliseconds.ToString();
}结论:
1. 这种简单的循环,.net1.1和.net2.0的性能是完全一致的
2. C#和VB.net代码的性能是完全一致的
2. Intel的Pentium 4有点“高频低能”
我做了你的第一个测试.
测试结果.net 2.0 5秒,.net 2.1要6.2秒电脑配置:P42.4,512M,80G HDD
yjdn(无尽天空) 发言,深有感触。怪不得学校课堂上的学生普遍不敢发言,一说错话,
就被来一个无情的讽刺,谁还敢说话?支持!=============================================================该丢弃的是中国人那可怜的面子,批评就一定是讽刺吗?讽刺就会无地自容嘛?搞笑……//
//什么是讽刺,什么是批评,我想,凭我的智商我还是可以分得出来.
//一个人开口闭口叫你"猪"的人,你觉得他是批评你还是讽刺你?
//你可以参考一下"zju3020912063"的发言,如果你觉得他的话是批评,
//那我无话可说.
//声明,我不是楼主.只是想替楼主说句话.
//当然,楼上确实有很多人是善意的批评.
//
//另:1)net开发的桌面程序一样相对于C++,VB,Delphi开发出来的
//东西一样是慢.不过,我觉得Web方面的速度还可以的,
//起码它还有开发速度快这个优点.
//
//2).net 2003 还有一些莫名其妙的Bug,比如,有时候,设断点
//多的时候,就会发生编译执行速度很慢的现象(超过十分钟)
//完全清空断点后,则没有这种现象.
//如此等等还有很多.
//
//3)让我比较难忍受的,就是它的编译执行程序的速度,实在是太慢了!
//
(空循环跑的是内存处理恨不能
海量读写取数据库表,考验的是机器和软件整体的处理能力)
牵扯到应该捎带着测试SQL 2005 的增强部分了.
不过发现SQL2005 AGENT每秒一刷新,
SQL2005主进程的内存"页面错误"就增加1字节.
估计是MS的一个小BUG没挑出来.
(
像鸡蛋里挑骨头的人致敬,那些人才是完美主义者.
)
正是因为在同一平台,才有对比嘛...优化算法不正是:
软件优化几行,硬件节省几千吗.正在拆解.net的执行部分,和1.1的开源代码进行比对,就快找到慢的原因了...
.NET 为未来十年做好了准备
十年后这些误差会忽略的
http://community.csdn.net/Expert/topic/4652/4652438.xml?temp=2.845401E-02
对内存的最低要求 v1.1 为32Mb v2.0 为96Mb
用同样的电脑配置来测试他们对2.0来说是不公平的。