经测试,假如打开一页面需要1.5秒,那么不使用控件只需要1秒.实际上如果控件用的多的话,至少要慢上一半以上!!!

解决方案 »

  1.   

    控件的初始化、重构等操作,对于服务器cpu来说,可以忽略不计的,这个时间差可能由于是你使用不同的逻辑产生的。
      

  2.   

    首先我用了一个aspx页面,里面无任何内容
    然后我用了一个ashx页面,里面也无输出任何内容.两者运行结果表明,Page有时比ashx延长了1/3
      

  3.   

    两者运行结果表明,aspx比ashx延长了1/3
      

  4.   

    原来我是在Page_load里测试的,其实应该在Render里面里测试.最新结果统计,至少至少慢一半,Aspx 时间22~26毫秒,Ashx 10~11毫秒
      

  5.   

    Page本身就是一个服务器控件,所以在这个空白状态下我们可以看到,因为服务器控件的产生,造成程序最终生成的目标代码多了很多,所以,速度就慢了下来.
      

  6.   

    刚才有人说是因为台式机的问题,我回头后在24个XEON CPU ,64GB的服务器上试一下,看看情况会不会还是如此.
      

  7.   


    这就是你的结论? 你结合你看的asp.net 控件的书籍 给我们讲讲呗
      

  8.   

    .net本来就是降低性能来提高开发效率,单纯的谈性能毫无意义,在成本和性能上寻找一个最好的平衡点才是关键。LZ你要单纯的性能快可以用,c、c++,那个速度肯定更快了。
      

  9.   

    唉,我宁愿去扒女神裤子,也不愿和你谈啥asp.net控件问题
      

  10.   

    你的网速是多少,上传速度又是多少,基本作用相同的的控件,Web比Html大很多,虽然最后也被编译成Html控件;
    但是,你们不觉得Web控件可以编程的内容比Html控件更多吗,它本来就不是让你来做个人网页然后发布到个人服务器或免费主机上的;
    我认为问题就在这里,需要下载/上传的内容大小是决定网页访问速度的关键,跟硬件关系更小,几百K的内容对于个人计算机和服务器处理速度差别不会很明显
      

  11.   

    用控件肯定会慢,但是很方便
    再说了,你追求的那点速度优化下来;未必节省了多少CPU,提高了多少性能
    服务器没满载时,系统没有明显迟钝时,不要过度考虑这些问题
      

  12.   

    我还以为发现什么新大陆了,原来就是两个页对比,这能比出什么来。这就好比一条SQL语句,一个在查询分析器里执行,一个在存储过程里执行一样,数据库里就一条记录,最后你会说存储过程没提速度。。
      

  13.   

    慢是肯定的,瓶颈不是CPU,是垃圾代码占用了带宽。其实慢一半,对于一般人都是可以接受。
    既增加了页面修改的工作量(因为页面一般是美工做的),又占用了宝贵的带宽。对于我个人来说无法接受,所以从来不用服务器控件。
      

  14.   


    说到底还是asp.net的控件,看标题,我以为你想表达的意思是使用asp.net控件与写纯html标签+ajax的性能对比,当然,你可以说因为asp.net控件有额外的ViewState开销,而导致性能较后者要慢,这个是公认的事情,实际上已经没有什么讨论的必要了。LZ你说的这种情况,实际上更加没有讨论的必要,用户控件设计的初衷在于业务模块的可重用性,提升开发效率,而不在于性能,当然,你的测试结果没有什么问题(使用用户控件当然比一个空页面加载的东西要多),但是,使用用户控件并不是导致性能问题的最主要因素,打个简单的比方:
    一个人开车从一个地方到另外一个地方,使用用户控件就相当于在开车之前,往车子上安装了一个舒服的坐垫,这对于整个旅程并没有太多的影响。
    如果要研讨性能,你应该注意的是,能不能给车子换一个更高速的马达,或者安装一个跑得更稳的轮胎,而不是纠缠这种车子座椅有没有坐垫的问题。
      

  15.   


    首先我纠正你一个术语.我这里没有讲到用户控件, 我讲的是服务器控件,而服务器控件一方面包括.net自带的控件,另一方面我们可以添加第三方控件,也就是自定义控件, 用户控件和自定义控件两者是不一样的.其次,我也没有谈到ViewState,实际ViewState恰恰在网速很高的情况下对性能影响反而没有服务器控件大.
    ViewState对于性能上的影响一方面是因为来回传输在网络上的消耗,但我上面说了,网速快的话,反而影响不大.再某些情况下,反而对提高性能有帮助,比如说有一个新闻列表,用GridView,如果用ViewState的话,在刷新或者编辑之时而不必重新再去数据库读取数据.除此之外ViewState只是多了一个加载和解析的过程.而实际这中间最后生成的机器代码原没有服务器控件生成的多.当然,最后我们又回到讨论服务器控件这上面.事实上,如果我们是单机程序,面向对象所产生的系统消耗是微不足道的,因为就我们一个人在用,都在本地,但在服务器上,成百万人访问的话,我们不得不考虑面向对象所带来的严重消耗!
      

  16.   

    你的结论不重要,重要的是你的人品。任何人假设在浏览器取得html源代码,然后告诉说“我会用web服务器直接输出这段html代码”,有几个傻瓜就认为你真的可以要工资8k以上的asp.net程序员职位?别人要考虑开发一个完整的项目,而你总是变着方法仅仅抓住“是打印字符串是最快的web方法”这类噱头,就用来跟别人讨论如何开发项目问题,lz是不是有点缺乏实事求是的精神呢?!有很多方法应该被asp.net开发人员学会,并且逐步重构自己的交互应用程序。但是跟lz好像不值得谈,lz也看不上任何专业的讨论。
      

  17.   


    1:我只是用了Aspx和Ashx来对对比,说明了Aspx控件对程序性能的影响,而且这也直接证明你还有大多数人所谓的"类字段初始化不需要或者只需要很少时间,从而对性能影响不大(恕我不能叙述原话)"的观点是错误的.2:“是打印字符串是最快的web方法”这类噱头我没有说,如果你非要刻薄的认为我的意思是这样的,那我只好说实际上所谓的web程序本质上就是通过一系列逻辑,从而在浏览器上"打印"出字符串.这个逻辑过程可以复杂,也可以简单.复杂可能带来便利,但不能带来性能.3:"有很多方法应该被asp.net开发人员学会,并且逐步重构自己的交互应用程序",那你所说的办法是怎么样的,从而你认为我讨论服务器控件的性能完全不值得一提?我只不过实际动手去证明一个观点,难道就要给我扣上一顶"lz也看不上任何专业的讨论。"的帽子.
      

  18.   

    举一个反例就看得很清楚。假设别人讨论富javascript客户端编程是最近几年的潮流,lz就会来说“网速在未来5年内到达极致,asp.net程序跟客户端本地程序一样快”这样的话了。实际上一个比较专业的开发人员,应该综合讨论怎样开发出来的程序具有丰富的用户界面、极高的交互响应能力。它应该说出一种从设计一个程序角度来看,切实可行的做法。asp.net已经流行了7、8年,它的问题跟整个所有基于服务器来不断刷新html的Web的程序是一样的。微软现在也开始鼓吹认为:以后的桌面应用程序将有很多是javascript直接开发的。这就是一个解决方案。而不是一个噱头。把静态html代码作为一个字符串取下来,然后从web服务器直接输出,于是就用这个来证明没有必要使用asp.net了,这种做讨论的方式未免太随便、太低估别人分辨静态html页面跟动态应用程序的区别的能力了。
      

  19.   


    同样的,我这些天只是客观的去思考门户网站到底适合不适合用服务器控件,同时我也没有把服务器空间抨击的一无四处,相反我认为在访问量不大的企业应用里,Asp.net控件的敏捷开发带来的便利是无可比拟的,思考技术的使用场合,难道也有错吗?值得嘲笑和鄙夷吗?
      

  20.   


    那你的意思是如果这个问题不易用,比尔盖茨就不回答了??
    或者Google,Oracle总裁人为我们的产品不是像微软那样追求易用性,所以我们认为这就是个白痴问题!
    问题的根本不在于这点,而在于你能否抓住问题的本质。一个看似简单的问题,本后隐藏的是计算机运行的整个原理。正如我这个问题一样,面向对象或者Asp.net控件是如何引用程序变慢的,为什么就不能让它变快?
    这要对Asp.net控件以及Asp.net运行原理有着很深入的了解,我一直是在研究和探讨,如何你认为幼稚不可理喻,要么你说出它的背后的原理和变慢的原因,要么无视。
      

  21.   

    问题的根本不在于这点,而在于你能否抓住问题的本质。一个看似简单的问题,本后隐藏的是计算机运行的整个原理。那就请你说说计算机运行的整个原理。
    ==============================================正如我这个问题一样,面向对象或者Asp.net控件是如何引用程序变慢的,为什么就不能让它变快?
    这要对Asp.net控件以及Asp.net运行原理有着很深入的了解你不是一直强调自己看过很多书么,那就请你讲讲允许你 google  ,你可以开始了我可以负责任的告诉你,你之前的都是胡说八道。你最好自己总结好了再说,别拿无知当理说。这是技术区 ~  如果你再说和技术无关的,那就是故意捣乱。 后果不是一星期那么简单
      

  22.   

    你不用在这避重就轻,我回答了 你根据我的回复 google 一下 然后大肆宣讲,有意思么?你要说先后的话,我在#16的回复 你无视?
      

  23.   

    我google什么了?那是我得处的结论没错(如果不正确,请误怪!),正因为我得处了这个结论,所以我才想和大家探讨一下.所以结合我一直在思考的面向对象对于性能的影响来说,我认为Page类最终的字段还是要转化成目标语言的赋值语句的,这也是造成Aspx比Ashx慢的一个原因,(也就是说Asp.net New一个Page类的同时,里面的100多字段所形成赋值语句最终都要被执行一次).然后你们就不断的开始攻击我,有意思吗?
      

  24.   

    当然,Aspx比Ashx慢也不只是因为这一个原因,所以和大家讨论以下,期待高手的见解,有什么不可的吗???
      

  25.   

    .net 好像是开发速度快。不代_表开发出来得网站就快。均等来讲得。PHP得网站就很快呀。但是开发起来就比不上.NET了
      

  26.   

    而且javascript对控件的元件操作很难搞,我都没法使用Asp.Net的控件
      

  27.   


    首先我用了一个aspx页面,里面无任何内容
    然后我用了一个ashx页面,里面也无输出任何内容.两者运行结果表明,Page有时比ashx延长了1/3
      

  28.   

    站在只讨论这个标题的角度,我也说两句:
    1、答案是肯定的,纵观.net1.X到2.0继续大量融入服务端控件再到3.5开始的MVC,微软本身也在回避服务器端控件,因为他们知道了它的弊端。
    2、最终开发一套系统是否需要用到服务器端控件是要权衡的,比如后台管理延用服务器控件,而前台使用标签化的模板引擎作为数据输出并静态化,这就是一种方案。
      

  29.   

    大概很多年前,我在电视上的凤凰大讲堂看到过一幕,一位社会学者在讲学(关乎民生、经济),有一位青年问了很多关于国家的问题,很尖锐,甚至咄咄逼人,直逼问题的本质(我相信那些问题也是很多国人想问的)。但这位学者没有急,没有脑,只是用很平和的语气侃侃而谈,最后直到教人消除疑惑,豁然开朗。这么多年过去了,虽然问的问题已经记不清楚了,但是学者的态度还是记忆尤新,让人深深佩服.......在CSDN看不到这样的专家,学者。
      

  30.   


    具体测试代码请看: http://topic.csdn.net/u/20110708/18/9ec4562c-2dd5-4f71-bafe-045130744326.html
      

  31.   

    这问题有什么不正常么?只是通过自己动手证明了,有控件的asp.net页比没得控件的asp.net 处理程序加载慢,就算不对也不用这么猛吧?标题有点过,但吸引人但为了吸引眼球有什么不正常的?拿标题说事的只有两类人,一类技术型呆子,不喜欢这类标题,另一类也不说了。
      

  32.   

    微软看到了这个弊端。。所以出现了 MVC。MVC还是比较适合开发门户网站的。。俺们的网站就是MVC的
    而且 asp.net 本身就是第一次访问速度慢。第2次才正常的现在有很多人还在使用 成熟的asp.netasp.net 是有点不适合做门户网站。但是现在哪个门户网站把不自己的首页和一些访问量高的页面做成 静态或者是生成静态页呢?
    这样不就提高效率了么?如果一个大型门户网站 不使用什么静态拉。内存释放拉之类的一些技术那么这个网站倒闭不远了。这个网站作者也太不成熟了而此文的标题使用控件和不使用控件慢!!这句话。。我觉得。。有点。太内什么了
    我是一个粗人就好比 你说的是 一个没吃饭的人比一个吃饭的人跑的慢!!! 是一个道理俺菜鸟一枚。。种地的有什么说的不对的请见谅
      

  33.   

    LZ的RP有问题
    鉴定完毕。。因为天天搞iphone,我错过了这次战斗。。太可惜了
      

  34.   

    兰州烧饼用ashx根aspx比,鄙视到死