浏览 4657 次
|
锁定老贴子 主题:ejb 应用程序的效率和扩展的测试。
该帖已经被评为精华帖
|
|
|---|---|
| 作者 | 正文 |
|
时间:2003-10-13
http://www.cs.rice.edu/CS/Systems/DynaServer/perf_scalability_ejb.pdf
是一个关于ejb 应用程序的效率和扩展的测试的说明。 硬件 PIII 933MHz CPU with 1GB SDRAM, and two Quantum Atlas 9GB 10,000rpm Ultra160 SCSI disk drives. A number of PII 450MHz machines run the client emulation software. We use enough client emulation machines to make sure that the clients do not become a bottleneck in any of our experiments. All machines are connected through a switched 100Mbps Ethernet LAN. app server用1 1jboss2.4(还有3.0)Dynamic proxy based container 2jonas2.5 Pre-compiled approach 测试用的example是一个拍卖网站。 用了6不同种设计风格的实现。代码的规模如下 0 纯servlet实现( 数据库操作在servlet中完成)。 25个class和4590行代码 1 servlet+session bean(session bean封装数据库操作,只用到app的pooling和事物服务)。76个class和8000行代码 2DAO separation with Entity Beans CMP 。63个class和10760行代码 3DAO separation with Entity Beans BMP。 25个class和4590行代码 4EJB 2.0 local interfaces。 113个class和13795行代码 5Session facade。 107个class和13440行代码 测试结果: 0的速度最快,1的速度和0接近。。可以在1200个用户连接下每分钟执行一万次的响应,纯servlet实现可以达到12000次。 (interactions per minute ) 一旦用到bmp或cmp,速度就慢了。最好的EJB 2.0 local方式只能在460个用户连接下每分钟执行不到4500次的响应 而bmp只能在220个用户连接下每分钟执行不到2000次的响应,用户再多,interactions per minute也高不了(还会下降)。 呵呵,没什么好说的了,使用entity bean,代码量大,速度也够慢,好郁闷。。 2002年测试的东西,不知道现在怎么样了。。 微软叫嚣.net的pet sore有ejb实现的10倍速度。。。是有可能的。。。 要追求速度,除了servlet,就只用无状态session bean, 这和com+组件的设计原则(使用无状态对象和存储过程)是一样的。 java的stateless session beans的效率比com+的无状态对象的效率要高一些。 大部分java app server是 1个stateless session beans服务所有的client。 com+是1个无状态对象服务一个client。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2003-10-14
多谢提供一个好的link。
这个测试结果和我的推测是一致的。另外我测试过.net的com+,速度确实比较慢,比SLSB要慢。 |
|
| 返回顶楼 | |
|
时间:2003-10-14
|
|
| 返回顶楼 | |
|
时间:2006-03-02
这种测试报告,如果不结合实际的代码,拿出来的数据想说明什么道理呢??感觉有些片面,开源的总是想一棒子把收费的打死.
|
|
| 返回顶楼 | |
|
时间:2006-03-02
zzsczz 写道 com+是1个无状态对象服务一个client。
强烈质疑,如果只是服务一个client那还无状态干吗? |
|
| 返回顶楼 | |







