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位小数所得出

解决方案 »

  1.   

    你测得这些不是新的系统架构。如果你抽出新楼的几块水泥块和10年前的楼的几块水泥块判断,仅仅因为材料不是完全新的,就断定新楼是10年前盖的,这就荒谬了。2.0快在重新设计的框架体系和新的语法特征上(实际上从编程语言到msil是翻译,而从msil到机器语言才是编译,而我们总是把前者认为是编译,对后者的改进忽视)。
      

  2.   

    to : bleempan(恒星-痕星)
    希望提出更优秀的测试方法,大家共同探讨to : s3yk(痴线佬)
    当然,追求利润,时间效率固然重要,但这些都卫冕太商业味了,
    软件的质量主要是体现在稳定易用和执行速度上.比如,预测分析软件,同样最简算法下,有的执行20分钟,有的15秒为什么好的跑车要建立在轻硬的材料上? 底层材料轻巧才好在上层发挥.
    要是用铅制造,如何?功能可以扩展,可以外挂,但底层速度不能越来越低的啊.以前的应付客户时代慢慢过去,现在的客户大都会找来比较懂的人来参谋.
    硬件虽然提高,执行效率依然很重要. 底层做不快,上层基础也就会差.大型应用,要求每服务器支持数万人在线,慢了20%,1万就少容下2000多人,
    为了达到要求,无形中,硬件成本就提高了,项目硬件成本提高,利润也就少了.
      

  3.   

    没测试过,有点意思,不知道win2003自带的.net 1.1会不会对2.0有什么影响?再用win2000/xp试试?
      

  4.   

    如果想测试CPU等功能异常简单、功能点少的用户的测试能够完全覆盖其内部机制的系统,你的方法或许可以考虑。
      

  5.   

    to: sp1234同样框架下(不是Java和C++比)
    如果连最简单的1+1=2的问题上,
    效率都要输给老版本系统20%...唉...新技术啊...
      

  6.   

    你在同样硬件的机器上安装windows98,肯定能测出windows2003比windows98慢多少多少。你觉得自己的测试能说明什么吗?
      

  7.   

    其实道理仔细想想就明白。在windows98下,想达到今天的功能,每一个应用程序就都要自己开发很多自己的子系统,甚至用一大堆open source的烂代码去做。你对系统性能的测试是否包括了这些从实际应用出发的?你的选择,决定了你的结果。而不是技术决定了结果。
      

  8.   

    98的速度确实可喜,但假32位系统的稳定性才是其致命伤啊.就比如,你是愿意座客机去美国呢,还是愿意座导弹?导弹着实是快了不少,可是会危机生命.在稳定性不减少的同时,增加速度才是有意义的.否则,软件都停留在DOS好了,多纯洁简单啊...
      

  9.   

    用OPEN SOURCE的烂代码至少比较透明,
    我可以选择执行或不执行,调用或不调用做商业项目,都是有侧重面的,
    客户会对一些实测数字非常感兴趣,
    比如,压力测试,容错测试等.
    如果耗费100倍的时间去死啃算法与竞争对手拉平20%的执行效率,
    只会浪费无数时间成本...或选择:失败...
      

  10.   

    哈哈,暗箱测试.for(long i=0;i<1000000000;i++){}其他什么代码都没有,暗吗?从 C 时代 到 JAVA 时代,这段代码都不暗吧 ...
      

  11.   

    http://community.csdn.net/Expert/topic/4538/4538299.xml?temp=.4428217
      

  12.   

    每个测试说明的是个方面,
    我的测试主要就是同样的环境,用最简单的代码,测试执行效率,
    用不着去诋毁或质疑别人的测试,自己拿出更好的测试例子,
    体现自己的测试面和结果才是有意义的.
    比如,另外某方面的执行速度呀,或者安全性呀,或者查询搜索速度什么的呀就像Nv卡和ATI显卡的某些测试,当然不可能在所有平台下测试,测试的内容,
    当然也就是某几种游戏和软件什么的.对应不同阶层的用户来参考选择.结果无论是1.1快,还是2.0快,总归是个结论,让大家分享,
    节约了其他人从事该项代码测试的时间.的确,软件设计是在选择中度过的,只有更多的实际测试数据,
    才能给后来人提供最佳的选择参考,挑选合适的平台来适应各类客户变态的要求.
      

  13.   

    支持 zhouhongyun(春天的十七个瞬间) !!!
      

  14.   

    你为什么不说ADO.NET的性能已经提高了40%
    为什么不说开发效率上提高了很多呢?
      

  15.   

    to: hoowoo(专注ASP.NET 2.O) 1.1环境下,我采用 Pentium II 300 Mhz , 256MB 内存,
    2.0环境下是要改用P4 3.6EE 的 CPU 和 2GB 内存,测试更有说服力吗?至于2.0 ADO.NET执行效率的提高,请拿出测试代码例子和测试结果来好吗?
      

  16.   

    To:swordragon(古道热肠) 每一种测试都有其意义,体现的都是一个侧面,有的作用大,有的小
    不能以点盖面,但"面"也是由很多小点组成的,
    得出一些数据,说明一些问题而已
      

  17.   

    支持!!! hel(抵制日货,从我做起) 
      

  18.   

    To: Macosx()怎么没贴出来呀... for(long i=0;i<1000000000;i++){}代码不在多,在与简单有效我用Intel CPU 和 AMD CPU 都试过了,好像都是2.0的慢,
    不信服你自己试试,
    兴许在你的CPU上运行会有其他的神奇的结果...
      

  19.   

    直接用文本写aps.net脚本,差不多吧。
    在VS中运行,本来VS2005就狂吃内存。
      

  20.   

    请问搂住,如果用2.0编译后的网站进行对比,那速度可能会非常不同了,搂住不了解2.0阿http://do-net.xicp.net
    .NET技术群
    10058555
    ---------------------------------------------------------
    个人QQ303864496
    msn:[email protected]
    NeT(Nebula Team)愿意郑州发展的.net技术朋友(19-25岁)招募中...
    email:[email protected]
      

  21.   

    To: Jhzyz(精英部落 http://www.IPTver.com) 当然,只拿NotePad.exe 编辑的Aspx文件,
    如果启动VS2003和VS2005,测试又不太精确了!不信你试试.直接刷页面
      

  22.   

    To: losingrose() 测的就是网站上的执行内容,
    你也可以亲自试试,无论什么代码,
    用NotePad直接存个Aspx文件到1.1环境的IIS下,
    同样内容贴进2.0环境的IIS下,
    因为执行10000次或更多,
    所以随便写个秒级的计时器来计算时间都可以你应该会发现: 2.0 的确比 1.1慢不少...
    如果有其他结果,欢迎探讨...
      

  23.   

    To: losingrose() 我在接触2.0之初,也觉得"可能应该更快些",
    但不要相信概念和直觉或是谁谁谁说,
    亲手写个小测试,
    真实的答案才会出来.其实真的希望2.0不要在本来就不太快的.NET 框架环境下再加性能负担了...
      

  24.   

    我对2.0的性能的确有点失望~不管在其他方面有多大的优势,性能始终是个无法回避的,重中之重的问题!除非这个世界已经不再存在时间这个概念>_<
      

  25.   

    以下是我的个人意见,欢迎指教:.NET 2.0提供了对64位的支持,可用于开发64位的应用程序而楼主的for循环重主要有两个操作,一个是加法运算,而另一个则是跳转所以,我估计性能损失可能就在于64位的寻址运算如果是这样的话,那些微的性能损失也就在情理之中了
      

  26.   

    个人感觉,2.0确实比1.1慢,但是想想在dos是一个hello world的程序只要十几个字节,就可实现,vc++下你试试,最少要几k,
    2.0应该是应用于未来的技术,没看见ms原来说长角要建立与.net框架之上,后来又反悔了吗??
      

  27.   

    为何要用apsx测呢?
    如果用aspx的,需要先把1.1和2.0的都编译成dll再测才更准确点。
      

  28.   

    我感觉如果机器起机后首次执行.net2.0编写的程序,确实比.net1.0慢多了.可是如果关闭程序再次打开的话速度飞快.我的机器是p4 2.0 512m 40g
      

  29.   

    To :kingtsui(老农民) 用aspx测试是因为可以直接测试在相同代码下的效果,
    如果所谓"编译",又牵扯到编译器和参数的相关事宜了.再说aspx运行原理也是通过编译dll来执行的,
    在.Net Framework 的 Cache 目录下看到N多DLL,
    那些就是对应Aspx的.
      

  30.   

    To: wqdzgh(红螃蟹)关闭再打开快吗? 比1.1还快?
    如果是,拿出成绩来看一下.谢谢
      

  31.   

    这个东西很难讲,难道说2.0比1.0慢你就不用了?
    做MS的Coder永远是在MS的后面的
      

  32.   

    不知道楼主是怎么测试的,不过这种测试应该用Console而不是ASP.NET。如果是在VS集成环境中直接测试,则:VS2003直接用IIS运行,VS2005则是使用自己的测试Web服务器即时编译测试。速度慢是必然的。两种ASP.NET的模型根本就不一样,很难说这种测试结果有什么意义。
      

  33.   

    胡扯,我测试了,就用的asp.net,同一台计算机,速度基本一样
      

  34.   

    楼主的那些测试应当都是错误的结果1.请不要使用asp,用标准的win32程序来测2.请给编译命令加上优化选项3.请用同一台机器(同时装1.1,2.0)我以前是做过一些测试的,基本上在循环,加减这些基本指令上2.0要优于1.1,当然不是相差太多
      

  35.   

    MS是不会拿出一个比旧版本慢很多的版本的比方你可以非常确信.Net 2.0 快于 .NET 1.1C# 快于 VBWindows 2000 快于 Win98也许你并不相信 :)
      

  36.   

    从肉猪的回复中可以看出肉猪不了解2.0的编程模型,执行框架,认识完全停留在1.1,我高度怀疑肉猪在发帖的前一天才听说asp.net还有2.0.建议肉猪多看书,没耐心看书就看看新闻.肉猪对编程的认识还停留在学生阶段,相信肉猪就是学生.大家不要怪他.
      

  37.   

    yjdn(无尽天空) 发言,深有感触。怪不得学校课堂上的学生普遍不敢发言,一说错话,
    就被来一个无情的讽刺,谁还敢说话?支持!
      

  38.   

    看各位争得不亦乐乎。呵呵。这样吧,楼主把所有的代码全贴出来,一定要是完整的代码,不要摘取片段,最好是把整个项目打包放在某个地方,可以让别人下载(记得写个ReadMe)。然后,各位有兴趣的人,可以直接运行楼主的代码,用自己觉得正确的方法测试一下,再把您的测试步骤、软硬件环境、结果贴上来,让其它人评评,怎么样?这个方法应该不难实施吧,而且相对而言应该也算是公平了吧?
      

  39.   

    MS总有他的先进思想,用.net framework测试for(i=0;i<100000;i++)是没有意义的,我认为要用.NET做开发,因该多和相同的时代JAVA比较整体性能.如果你的程序包含大量的纯计算(例如for(i=0;i<1000000;i++) a++;), 完全可以用C语言写成DLL调用,不过调用期间损失的性能又是多少呢,有兴趣可以再测试一下当然没有任何程序是如此简单的,对项目的总体性能测试才是真正成绩,你不能说一个语文100分,数学20分的小孩聪明,但一个语文60分,数学60分的小孩绝对不笨.:)happy new new
      

  40.   

    本人菜鸟,还在用.NET Framework v1.1
      

  41.   

    预示着你的硬件也该升级了 你总不能用p2的机器来跑.net2吧
      

  42.   

    上面用的是debug,两个exe都用release编的话,基本都在2.5-2.6秒.
      

  43.   

    yjdn(无尽天空) 发言,深有感触。怪不得学校课堂上的学生普遍不敢发言,一说错话,
    就被来一个无情的讽刺,谁还敢说话?支持!=============================================================该丢弃的是中国人那可怜的面子,批评就一定是讽刺吗?讽刺就会无地自容嘛?搞笑……
      

  44.   

    不知道楼主是怎么测的,我的测试结果如下:测试一:
        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有点“高频低能”
      

  45.   

    to LZ:
    我做了你的第一个测试.
    测试结果.net 2.0 5秒,.net 2.1要6.2秒电脑配置:P42.4,512M,80G HDD
      

  46.   

    另外我写控制台测试程序,操作系统winxp sp2
      

  47.   

    回复人: Ivony() ( ) 信誉:100  2006-02-04 20:36:00  得分: 0  
     
     
       yjdn(无尽天空) 发言,深有感触。怪不得学校课堂上的学生普遍不敢发言,一说错话,
    就被来一个无情的讽刺,谁还敢说话?支持!=============================================================该丢弃的是中国人那可怜的面子,批评就一定是讽刺吗?讽刺就会无地自容嘛?搞笑……//
    //什么是讽刺,什么是批评,我想,凭我的智商我还是可以分得出来.
    //一个人开口闭口叫你"猪"的人,你觉得他是批评你还是讽刺你?
    //你可以参考一下"zju3020912063"的发言,如果你觉得他的话是批评,
    //那我无话可说.
    //声明,我不是楼主.只是想替楼主说句话.
    //当然,楼上确实有很多人是善意的批评.
    //
    //另:1)net开发的桌面程序一样相对于C++,VB,Delphi开发出来的
    //东西一样是慢.不过,我觉得Web方面的速度还可以的,
    //起码它还有开发速度快这个优点.
    //
    //2).net 2003 还有一些莫名其妙的Bug,比如,有时候,设断点
    //多的时候,就会发生编译执行速度很慢的现象(超过十分钟)
    //完全清空断点后,则没有这种现象.
    //如此等等还有很多.
    //
    //3)让我比较难忍受的,就是它的编译执行程序的速度,实在是太慢了!
    //
      

  48.   

    我当然是在讽刺了,我也不是无聊讽刺人,不过楼主是在太过分。对一个东西不了解不是问题,水敢说他了解.net,楼主的问题是思维,完全没有逻辑,没知识基础,给我感觉就是要在MS的软件里鸡蛋挑骨头,当然,如果他做得好我就叫他批评家了,问题是他完全在不懂.net的条件下作出那些回复,让我十分反胃。相信大家都能感觉出他的水平,只不过我的耐心和忍受能力比以上所有人都差罢了。
      

  49.   

    楼主应该测试:.net 2k5 和2k3 读写取数据库表,而不是测试空循环
    (空循环跑的是内存处理恨不能
    海量读写取数据库表,考验的是机器和软件整体的处理能力)
      

  50.   

    这个帖子比较热,贴个问题,高手们帮忙解答,谢了!!!http://community.csdn.net/Expert/topic/4539/4539933.xml?temp=.975857
      

  51.   

    To: zju3020912063() 向自称为不讽刺人的人致敬.
      

  52.   

    看来的确应该测试一下数据库查询和执行能力,
    牵扯到应该捎带着测试SQL 2005 的增强部分了.
    不过发现SQL2005 AGENT每秒一刷新,
    SQL2005主进程的内存"页面错误"就增加1字节.
    估计是MS的一个小BUG没挑出来.
    (
    像鸡蛋里挑骨头的人致敬,那些人才是完美主义者.
    )
      

  53.   

    To: steven262(一凡)性能应该有提高才对呀,升级硬件进行性能提高,算啥真本事呀?
    正是因为在同一平台,才有对比嘛...优化算法不正是:
    软件优化几行,硬件节省几千吗.正在拆解.net的执行部分,和1.1的开源代码进行比对,就快找到慢的原因了...
      

  54.   

    测试很不全面,.net不是低级语言,不是用烧CPU的方法来测的。要看各种处理情况的综合效率,而且效率本来并非2.0的热点。2.0在精简架构的改进才是它推出的最重要原因。大家用过1.1的精简版吗,很垃圾吧,什么都不能做,xml不能完全支持,异步调用时假的,还莫名其妙地错,真失败啊。
      

  55.   

    To: pagechen(天外飞来的仙)到是有一定道理,1.1的Bug的确是不少...
      

  56.   

    别争了
    .NET 为未来十年做好了准备
    十年后这些误差会忽略的
      

  57.   

    首先,支持樓主這種求索的精神。但是,用asp.net來測試框架的速度,未免太不專業了.建議換成console,或者在winform裏面直接計時.
      

  58.   

    这个帖子好火啊借宝地问个问题,分以后可以另开贴补!(建设性的意见欧是一定会补分的,怎么也混了一年半csdn了,基本的道德还是有滴)那个投票器俺输得好惨啊
    http://community.csdn.net/Expert/topic/4652/4652438.xml?temp=2.845401E-02
      

  59.   

    ...个人认为比较1.1和2.0没有什么意思。如果真的要比较的话,也应该用1.1推出的时候 主流 电脑配置来测试1.1的速度。用2.0推出的时候的主流机型来测试2.0的速度。很简单的例子,微软.netframework对cpu的最低要求 v1.1 为90MHz    v2.0为400MHz
                  对内存的最低要求 v1.1 为32Mb     v2.0 为96Mb
    用同样的电脑配置来测试他们对2.0来说是不公平的。