热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[超级热点]为什么NETv2.0比v1.1要慢????!!!!

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 个解决方案

#1


正常,语言越高级,效能越低...
还有你的测试方法我个人觉得不大精准...

#2


朋友!我认为效率不是表现在语言或运行速度上的,是项目开发的时间、利润、掌握的知识、编程思想、软件的稳定性、易用性等,这些才是效率表现的地方!

#3


你测得这些不是新的系统架构。如果你抽出新楼的几块水泥块和10年前的楼的几块水泥块判断,仅仅因为材料不是完全新的,就断定新楼是10年前盖的,这就荒谬了。

2.0快在重新设计的框架体系和新的语法特征上(实际上从编程语言到msil是翻译,而从msil到机器语言才是编译,而我们总是把前者认为是编译,对后者的改进忽视)。

#4


to : bleempan(恒星-痕星)
希望提出更优秀的测试方法,大家共同探讨

to : s3yk(痴线佬)
当然,追求利润,时间效率固然重要,但这些都卫冕太商业味了,
软件的质量主要是体现在稳定易用和执行速度上.

比如,预测分析软件,同样最简算法下,有的执行20分钟,有的15秒

为什么好的跑车要建立在轻硬的材料上? 底层材料轻巧才好在上层发挥.
要是用铅制造,如何?

功能可以扩展,可以外挂,但底层速度不能越来越低的啊.

以前的应付客户时代慢慢过去,现在的客户大都会找来比较懂的人来参谋.
硬件虽然提高,执行效率依然很重要. 底层做不快,上层基础也就会差.

大型应用,要求每服务器支持数万人在线,慢了20%,1万就少容下2000多人,
为了达到要求,无形中,硬件成本就提高了,项目硬件成本提高,利润也就少了.

#5


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

#6


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

#7


to: sp1234

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

#8


搞测试的人的基本素质是什么呢?

一定要以学习这个为先,不要学点技术就以为可以胜任了。

#9


如果仅仅是单机进程,效率慢也就慢了,

可在稍大些的项目里,在数千上万人同时刷新页面的时候,慢20%,客户就未必能接受了...

#10


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

#11


搞测试,分为从内部测试与外部测试,

内部测试员,当然是越懂越好,从内部来测试比较仔细

外部测试员,当然是越不懂越好,更贴近用户.

客户虽然很懂,但大都不是专家. 

总是在象牙塔里发号施令,最终只会在混顿的软件开发项目中,溺死.

#12


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

你的选择,决定了你的结果。而不是技术决定了结果。

#13


98的速度确实可喜,但假32位系统的稳定性才是其致命伤啊.

就比如,你是愿意座客机去美国呢,还是愿意座导弹?

导弹着实是快了不少,可是会危机生命.

在稳定性不减少的同时,增加速度才是有意义的.

否则,软件都停留在DOS好了,多纯洁简单啊...

#14


测试方法即不是“内部测试”,也不是“外部测试”。即使是黑箱测试,最基本的,你要对你测试用例的选择反复论证。

#15


用OPEN SOURCE的烂代码至少比较透明,
我可以选择执行或不执行,调用或不调用

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

#16


哈哈,暗箱测试.

for(long i=0;i<1000000000;i++){

}

其他什么代码都没有,暗吗?

从 C 时代 到 JAVA 时代,这段代码都不暗吧 ...

#17


这么简单一句, 安全性,缓冲,权限判定什么的系统必须执行的,应该再代码之前执行吧?


回收内存,清除垃圾什么的,应该在后面执行吧?

中间循环个1000000000次,多纯净的代码呀.
即便前后都多执行些系统内部的东西,速度也不该成几何型变慢吧?

#18


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

#19


每个测试说明的是个方面,
我的测试主要就是同样的环境,用最简单的代码,测试执行效率,
用不着去诋毁或质疑别人的测试,自己拿出更好的测试例子,
体现自己的测试面和结果才是有意义的.
比如,另外某方面的执行速度呀,或者安全性呀,或者查询搜索速度什么的呀

就像Nv卡和ATI显卡的某些测试,当然不可能在所有平台下测试,测试的内容,
当然也就是某几种游戏和软件什么的.对应不同阶层的用户来参考选择.

结果无论是1.1快,还是2.0快,总归是个结论,让大家分享,
节约了其他人从事该项代码测试的时间.

的确,软件设计是在选择中度过的,只有更多的实际测试数据,
才能给后来人提供最佳的选择参考,挑选合适的平台来适应各类客户变态的要求.






#20


我认为效率不是表现在语言或运行速度上的,是项目开发的时间、利润、掌握的知识、编程思想、软件的稳定性、易用性等,这些才是效率表现的地方!
-------你是站在程序员的角度来考虑问题,站在用户的角度呢,用户不考虑运行速度考虑什么?难道用户还管你的程序是花了多长时间开发出来的?

#21


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

#22


可能与框架有关系

#23


楼主的问题值得思考!

#24


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

#25


而且和你的硬件要求有很大的关系,本来2.0的配置就比1.1的要求高了很多

#26


to: hoowoo(专注ASP.NET 2.O) 

1.1环境下,我采用 Pentium II 300 Mhz , 256MB 内存,
2.0环境下是要改用P4 3.6EE 的 CPU 和 2GB 内存,测试更有说服力吗?

至于2.0 ADO.NET执行效率的提高,请拿出测试代码例子和测试结果来好吗?

#27


没写过这方面的测试,关注.

#28


我认为这种测试没有什么实际的意义.

#29


To:swordragon(古道热肠) 

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

#30


林子大了什么鸟都有?怎么能说这种测试没意义呢?

#31


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

#32


把所有代码贴出来 还是具体的运行细节 让别人自己试试并信服那才是正确的态度 否则真是没有意义

#33


To: Macosx()

怎么没贴出来呀... for(long i=0;i<1000000000;i++){}

代码不在多,在与简单有效

我用Intel CPU 和 AMD CPU 都试过了,好像都是2.0的慢,
不信服你自己试试,
兴许在你的CPU上运行会有其他的神奇的结果...

#34


有点奇怪哦,值得关注

#35


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

#36


请问搂住,如果用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

#37


To: Jhzyz(精英部落 http://www.IPTver.com) 

当然,只拿NotePad.exe 编辑的Aspx文件,
如果启动VS2003和VS2005,测试又不太精确了!

不信你试试.直接刷页面

#38


To: losingrose() 

测的就是网站上的执行内容,
你也可以亲自试试,无论什么代码,
用NotePad直接存个Aspx文件到1.1环境的IIS下,
同样内容贴进2.0环境的IIS下,
因为执行10000次或更多,
所以随便写个秒级的计时器来计算时间都可以

你应该会发现: 2.0 的确比 1.1慢不少...
如果有其他结果,欢迎探讨...



#39


To: losingrose() 

我在接触2.0之初,也觉得"可能应该更快些",
但不要相信概念和直觉或是谁谁谁说,
亲手写个小测试,
真实的答案才会出来.

其实真的希望2.0不要在本来就不太快的.NET 框架环境下再加性能负担了...




#40


我对2.0的性能的确有点失望~

不管在其他方面有多大的优势,性能始终是个无法回避的,重中之重的问题!

除非这个世界已经不再存在时间这个概念>_<

#41


以下是我的个人意见,欢迎指教:

.NET 2.0提供了对64位的支持,可用于开发64位的应用程序

而楼主的for循环重主要有两个操作,一个是加法运算,而另一个则是跳转

所以,我估计性能损失可能就在于64位的寻址运算

如果是这样的话,那些微的性能损失也就在情理之中了

#42


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

#43


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

#44


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

#45


To :kingtsui(老农民) 

用aspx测试是因为可以直接测试在相同代码下的效果,
如果所谓"编译",又牵扯到编译器和参数的相关事宜了.

再说aspx运行原理也是通过编译dll来执行的,
在.Net Framework 的 Cache 目录下看到N多DLL,
那些就是对应Aspx的.

#46


To: wqdzgh(红螃蟹)

关闭再打开快吗? 比1.1还快?
如果是,拿出成绩来看一下.谢谢

#47


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

#48


不知道楼主是怎么测试的,不过这种测试应该用Console而不是ASP.NET。

如果是在VS集成环境中直接测试,则:

VS2003直接用IIS运行,VS2005则是使用自己的测试Web服务器即时编译测试。速度慢是必然的。

两种ASP.NET的模型根本就不一样,很难说这种测试结果有什么意义。

#49


这是新东西的必然,
同时,这里面包含着微软和硬件制造商的商业目的。
软件要求越高,用户越需要升级,硬件制造上就越赚钱。
每次微软发布新操作系统。那么各大硬件企业都会发布硬件的新版本。

#50


程序员和用户研究的对象不同,所以观点不同

推荐阅读
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 深入解析:Synchronized 关键字在 Java 中对 int 和 Integer 对象的作用与影响
    深入探讨了 `Synchronized` 关键字在 Java 中对 `int` 和 `Integer` 对象的影响。尽管初看此题似乎简单,但其实质在于理解对象的概念。根据《Java编程思想》第二章的观点,一切皆为对象。本文详细分析了 `Synchronized` 关键字在不同数据类型上的作用机制,特别是对基本数据类型 `int` 和包装类 `Integer` 的区别处理,帮助读者深入理解 Java 中的同步机制及其在多线程环境中的应用。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 初探性能优化:入门指南与实践技巧
    在编程领域,常有“尚未精通编码便急于优化”的声音。为了从性能优化的角度提升代码质量,本文将带领读者初步探索性能优化的基本概念与实践技巧。即使程序看似运行良好,数据处理效率仍有待提高,通过系统学习性能优化,能够帮助开发者编写更加高效、稳定的代码。文章不仅介绍了性能优化的基础知识,还提供了实用的调优方法和工具,帮助读者在实际项目中应用这些技术。 ... [详细]
  • 为了向用户提供虚拟应用程序,通常会在基础架构中部署StoreFront或Web Interface。为了确保安全的远程访问,通常需要在DMZ中配置Secure Gateway或Access Gateway。本文详细对比了这两种界面工具的功能特性,包括用户管理、安全性、性能优化等方面,为企业选择合适的解决方案提供了全面的参考。 ... [详细]
  • 本书《.NET Core 2.* 开发者指南》是面向开发者的全面学习与实践手册,涵盖了从基础到高级的各个层面。书中详细解析了 .NET Core 的核心概念,包括如何创建 .NET Core 网站,并通过视频教程直观展示操作过程。此外,还深入探讨了 Startup 类的作用、项目目录结构的组织方式以及如何在应用中使用静态文件等内容。对于希望深入了解 .NET Core 架构和开发技巧的开发者来说,本书提供了丰富的实践案例和详尽的技术指导。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 《我的世界》Java版种子合集:探索多样世界生成
    本文介绍了《我的世界》Java版中用于生成多样化游戏世界的种子代码。这些种子是由一个或多个字符(包括正整数和负整数)组成的值,能够为玩家带来截然不同的地形和环境体验。通过使用不同的种子,玩家可以探索各种独特的地貌、生物群系和结构,从而丰富游戏的乐趣和挑战性。 ... [详细]
  • Java并发机制详解及其在数据安全性保障中的应用方案 ... [详细]
  • 本文探讨了文件传输过程中的优化与安全策略。具体而言,研究了如何将客户端的文件高效上传至服务器。通过使用结构体对象,可以封装文件的相关信息,如位置和大小,并利用缓冲区存储实际数据,从而实现高效的数据传输。此外,文章还讨论了在传输过程中确保数据完整性和安全性的多种方法,包括加密技术和身份验证机制。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 浅析PHP中$_SERVER[
    在PHP后端开发中,`$_SERVER["HTTP_REFERER"]` 是一个非常有用的超级全局变量,它可以获取用户访问当前页面之前的URL。本文将详细介绍该变量的使用方法及其在不同场景下的应用,如页面跳转跟踪、安全验证和用户行为分析等。通过实例解析,帮助开发者更好地理解和利用这一功能。 ... [详细]
  • 本文深入探讨了MD5与SHA1哈希算法在实际应用中的表现及其安全性。通过对这两种算法的详细分析,揭示了它们在数据完整性验证和密码存储等方面的优势与局限。文章不仅介绍了算法的基本原理,还讨论了近年来针对这些算法的安全性攻击,并提出了改进措施和替代方案。希望读者能够通过本文对哈希算法有更全面的理解。 ... [详细]
  • Java进阶之旅:第六阶段深度解析与实践
    在之前的Java进阶之旅中,我们已经深入探讨了Java语言的核心特性,包括继承、封装和多态。本文将在此基础上,进一步解析第六阶段的关键概念和技术实践,帮助读者深化对Java高级特性的理解和应用。通过具体的代码示例和实际项目中的应用场景,我们将探讨如何高效地利用这些特性解决复杂问题,提升开发效率和代码质量。 ... [详细]
author-avatar
幽咽小香
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有