^_^
事实上用C#语言的Asp.net在所有开发语言中(包括PHP,JSP)的速度是最快的,当然偶说的是优化过后,不包括拖放了大量服务器控件的Asp.net网站。
在之前说用Asp.net不适合做动态内容过多的网站是因为Asp.net配套的数据库SQL2000无法集群,就连做Master-Slave都不稳定,也没有数据分区,因为动态网站的压力会集中在数据库上,数据库这一环始终是瓶颈。不过这个问题在SQL2005 SP1出来以后基本上就解决了。
然后最主要的原因是之前Asp.net没有自己的分布式缓存,而PHP跟JSP的平台上都有成熟的分布式缓存程序了,内存式比较著名的是Memcached,,缓存用户对数据库的查询,这样子能够大大减轻数据库的压力,如果动态网站的每一次请求都要去查询数据库的话,无论用什么语言写的网站,用户量稍微大一些系统就会崩溃的。
事实上Asp.net自己的Cache机制也还算比较完善的,只不过只能单机使用,不过与其他语言的程序员不同,貌似Asp.net的程序员,并没有多少人去关注缓存。而缓存基本上是PHP程序员的基本知识,不过的确,选择Asp.net的程序员很多时候都是因为方便开发,很多功能有现成的控件可以用,但这样对于大型网站来说,的确是相当损耗性能的说,而且习惯了使用服务器控件,技术也会退步的说。
事实上Asp.net也是可以使用Memcached的说,大型的Asp.net网站几乎都在使用的说,呵呵,而且微软最近也发布了代号为VeloCity的.net平台下的分布式缓存工具,而且VeloCity还能保存Session,目前还是CTP1版本,很让人期待的说。
^_^
如果优化程序执行效率,采用分布式缓存并尽量提升缓存命中率的话,C#版的Asp.net是绝对比PHP要快的,跟JSP相比,也会快上一些,至少是持平,但是MsSQL数据库是要钱的说,运行IIS的服务器操作系统也是要米米的说,而且很贵,而基本上PHP+MySQL几乎可以说是免费的。