PetShop的性能——宠物店大战 (J2EE 与 .NET)

发布于:软件开发网 来源:未知 作者:佚名 时间:2009-01-24 09:25

Pet vs Pet: MS opens .NET benchmarking wars
原作者 Andrew Orlowski in San Francisco

Microsoft 认为 .NET 目前已经成熟到可以放到效能测试的第一线战场上了。成熟并非是效能战争上的一个字眼。

这场战争的主角是 Sun 所设计的范例程序宠物商店 (Pet Store),这个范例

程序被用来在大部分的场合中展示 Java 2 Enterprise Edition 应用程序的可携带性,以及跨平台性。

http://java.sun.com/j2ee/blueprints

而 Microsoft 也建立了自己的宠物商店范例

http://www.msdn.microsoft.com/net/compare/petshop.asp

,并且号称这个 .NET 版本(也许叫做 .PET?) 的野兽商店所使用的程序代码的行数比起 Java宠物商店来得少,同时它的效率也是Java 版的 28 倍。另外,他也暗示了同样是网络上背景式的搜寻以及图片等等的显示能力等,他耗掉较少的 CPU 。

Microsoft 使用 Oracle 的 App server benchmark

http://otn.oracle.com/tech/java/oc4j/content.html

,以及一个未知的Application Server 来当作 J2EE 的前端介面。Oracle 则使用8i的版本,Micorsoft 使用SQL Server但是却说在这个范例中,它的数据存放在 Oracle上。

在 Oracle/J2EE 的范例中,他"很公平"的使用了 Sun的旧硬件,包括了 4-way E3500 (App Server 用),以及一个 10-way Ultra (Solaris 2.6) 来执行数据库。 Microsoft 使用了一个2-way ProLiant 来执行 app server (?) 以及一个 4-way 550
Mhz ProLiant 来执行 .NET 版本的野兽商店数据库。

Sun 描述这个野兽商店是一个"高度唬人的战术运用"

Sun告诉我们的是,J2EE 宠物店是一个范例程序用来展示几个可靠的design patterns (MVC...),同时他并非为了效能而设计。

这个J2EE版本的应用程序并没有为了效能而做过调整。Micorsoft号称由Oracle所测式的版本是个最佳化过并且校调过Java宠物店。

然而,Oracle 的白皮书中很清楚的描述着 "宠物店并非设计来在实际的商业环境中执行的,因此在它的效能与能够负载的工作量上,还需要实际上的修改才可以真的被使用"。

我们可以在 http://www.javalobby.com/message/show/frm/javalobby?children
=true&folderId=20&discussionContextId=11040&messageId=86577

找到由 Ray Cromwell 的详细的反驳资料,他指出,在这个宠物范例中,有太多的抽象类别在内,几乎没有人会根据Sun blueprints 写出这样的程序,因为这个范例几乎是 OO 设计中的最高阶了。

另外一个直接的线索是 .PET的效能来至于它的设计者,Scott Stanfield,在MSDN 里面有着:.PET 的 demo 实际上是产品里面非常细微的一部份而已。

J2EE并不是 Microsoft GotDotNet在这一个战争中的唯一部份(GotDotNet 是一个设计得像 SourceForge FreshMeat 的社群开发群 MSDN 只是他们的前端接口的多种选择之一) Microsoft 同时也把魔掌伸向 IBM 的 WebSphere app server,IBM已经在 http://www.ibm.com/software/webservers/studio/msnetreview.html 反驳。

为什么大家的声音都这么愤怒呢?嗯,Microsoft 很清楚的企图使用效能来当作行销手段上的一个重点。Microsoft的sales (Windows VP Brian Valentine)已经正式的向 to tattoo anti-Linux intelligence on their backsides 求助,要求更多关于 .PET 的实际效能数据等等。

但是效能测试的战术运用很容易引起反对意见,Microsoft在好几年前曾经在Visual Basic 的测试上很大胆的尝试过,也引起了极大的反弹。Microsoft 发表了测试数据,同时表明了VB的效能胜过Delphi。在他们的范例中,Microsoft 的应用程序使用了 local call ,而他们在 Delphi 的测试中,却很奸诈的去一个远程的数据库搜寻,当然,让 VB 在这样的测试环境中胜过 Delphi好几千倍并不让人吃惊。

当两者的架构都很类似的时候,也许有人可以试图说服我们.NET在本质上快过J2EE。.NET 也许会快一些,也许不会,每一个竞争者都可以在不同的平台上去校调,或者在这个 Java 的例子中,我们也可以重新设计 compile 过来提供原来所应有的效能,但是我们绝对不会靠着架构的不同,来自夸效能的优异。

.PET 的范例中让 Wintel 硬件在跟旧型的 Sun 硬件比较上,略胜一筹,但是,无论如何我们都知道他在搞啥飞机。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目前,PetShop已经从最初的2.0、3.0等版本,发展到了最新的4.0版本。PetShop4.0使用ASP.NET2.0技术开发,其中加入了众多新增特性,因此,在性能、代码数量、可扩展性等方面有了重大改善。可以说,学习PetShop4.0是深入掌握ASP.NET2.0技术的捷径。本节将引领读者逐步了解PetShop4.0的方方面面,包括应用程序安装、功能和用户界面简介、解决方案和体系架构概述等。 由于采用了MasterPages,Membership,以及Profile,表现层的编码量减少了25%,数据层的编码量减少了36%。 他们利用了ProjectConversionWizard把项目从ASP.NET1.1移植到了ASP.NET2.0,然后做了以下改动: 1。用System.Transactions代替了原来的ServicedComponents提供的事务功能 2。用强类型的范型集合代替了原来的弱类型集合 3。采用ASP.NET2.0Membership来做认证和授权 4。创建了针对Oracle10g的CustomASP.NET2.0MembershipProvider 5。利用ASP.NET2.0的CustomOracle和SQLServerProfileProviders做用户状态管理,包括购物车等 6。采用了MasterPages,取代了原来的用户控件,来实现统一的界面效果 7。使用了ASP.NET2.0Wizard控件实现check-out 8。使用了SqlCacheDependency来实现数据库层次的缓存更新(cacheinvalidation)功能 9。使用了消息队列来实现异时订单处理 使用说明: 数据库在App_data文件中,四个数据库附加就可以,然后相应的去改改Web.config。 登陆用户名和密码份分别是:51aspx/51aspx.com 此项目没有后台管理,可供学习使用 如果项目中出现MSDTC不可用解决:在windows控制面版-->管理工具-->服务-->DistributedTransactionCoordinator-->属性-->启动

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值