JiveJdon Community Forums
在线384人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 开源项目大家谈
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 11 回复 / 1
 发表新帖子   回复该主题贴
layout

悄悄话
发表文章: 21
注册时间: 2003年08月08日 13:24
关于Struts的性能怀疑 2003年12月04日 20:03 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 struts(37)      高性能(77)     
对于一个比较大型的项目采用Struts是否可取?
首先
1.actionservlet,如果使用Struts自身提供的Actionservlet的话,
是多个模块共用一个呢,还是对于不同的模块只是配置文件不同(moduleConfig)使用同一个ActionServlet呢?如果是对于不同的ActionServlet之间好像没有办法跳转.同一个ActionServlet会不
会造成瓶颈?(大量的访问堆积在ActionServlet层面,即使系统生
成了很多实例也恐怕不能够满足并发量400以上的访问?)
2.FormBean,FormBean的传递通常是通过request或者Session或者
context来进行的,这三种事实上都是存放一个映射关系,然后取出
来,都会涉及到对象的类型转换.这种转换在大量的并发操作下,会
造成资源的开销很大(从cpu和内存上面可以看得出来这种消耗,很
多内存不能及时回收..造成服务器的内存占用率斜线上升)
3.Action类的不灵活性.使用Action的时候如果不使用DispatchAction
的话,只能对应一个动作(submit)就需要一个Action类来对应处
理,这样子对于开发来说简直是一种灾难,拥有无数的只有一个
方法的类?同样的事情发生在FormBean上面.对于FormBean的DynaValidatorForm并不能真正解决问题,因为类型转换仍然频
繁发生.
4.严格按照Struts的规范而言是不是意味着两个jsp之间的所有通信(不包
括纯链接,带参数的在此范围内)都是通过ActionServlet和Action来发生
的?如果是的话,又会无端多出很多ForwardAction,虽然不需要手写,对于
ActionServlet来说压力又增加了,性能问题越发明显.

当然,以上只是一些个人意见,可能很多地方没有考虑得很清楚,希望大家一
起讨论讨论?
crogers

悄悄话
发表文章: 84
注册时间: 2003年10月11日 13:47
Re: 关于Struts的性能怀疑 2003年12月04日 23:50 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
如果项目规模不超过中国人均GDP最高的特区的OSS系统,那Struts不会有问题

neutrino

悄悄话
发表文章: 17
注册时间: 2003年06月01日 23:54
Re: 关于Struts的性能怀疑 2003年12月05日 13:11 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
> 对于一个比较大型的项目采用Struts是否可取?
> 首先
> 1.actionservlet,如果使用Struts自身提供的Actionservlet?> 话,
> 是多个模块共用一个呢,还是对于不同的模块只是配置文件不?> (moduleConfig)使用同一个ActionServlet呢?如果是对于不同
> ActionServlet之间好像没有办法跳转.同一个ActionServlet
> 岵?> 会造成瓶颈?(大量的访问堆积在ActionServlet层面,即使系统
> ?> 成了很多实例也恐怕不能够满足并发量400以上的访问?)
很奇怪,你会说电脑就一个cpu造成瓶颈吗

> 2.FormBean,FormBean的传递通常是通过request或者Session?> 者
> context来进行的,这三种事实上都是存放一个映射关系,然后?> 出
> 来,都会涉及到对象的类型转换.这种转换在大量的并发操作下
> 会
> 造成资源的开销很大(从cpu和内存上面可以看得出来这种消耗
> 很
> 多内存不能及时回收..造成服务器的内存占用率斜线上升)
FormBean总在服务器端,不需要传递啊

> 3.Action类的不灵活性.使用Action的时候如果不使用Dispatc
> Action
> 的话,只能对应一个动作(submit)就需要一个Action类来对应?>
> 理,这样子对于开发来说简直是一种灾难,拥有无数的只有一个
>
> 方法的类?同样的事情发生在FormBean上面.对于FormBean的Dy
> aValidatorForm并不能真正解决问题,因为类型转换仍然频
> 繁发生.
对于每个请求Action和FormBen都是可选的

> 4.严格按照Struts的规范而言是不是意味着两个jsp之间的所?> 通信(不包
> 括纯链接,带参数的在此范围内)都是通过ActionServlet和Act
> on来发生
> 的?如果是的话,又会无端多出很多ForwardAction,虽然不需要
> 中?对于
> ActionServlet来说压力又增加了,性能问题越发明显.
不用担心ActionServlet
>
> 当然,以上只是一些个人意见,可能很多地方没有考虑得很清楚
> 希望大家一
> 起讨论讨论?

fromsun

悄悄话
发表文章: 2
注册时间: 2003年12月02日 15:47
Re: 关于Struts的性能怀疑 2003年12月05日 13:39 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
关于3:就算有dispatch actionservlet也不能从根本上解决问题,一个submit往往就是一种特定的操作和需求,必须有对应的code来处理,至于要写成action class这是没有办法的,framework这玩意就这样。

“大量的访问堆积在ActionServlet层面,即使系统生成了很多实例也恐怕不能够满足并发量400以上的访问?”
???
如果不能handle,那也不是actionservlet的问题,可能是cpu资源不够,其它关于性能的问题也是有一定道理的,framework往往把一个系统分割为多个“独立”的模块,相对于搞在一起性能上肯定是有牺牲的,但是不要忘了,老外的经典教条:速度不够用硬件弥补。
starfeng

悄悄话
发表文章: 18
注册时间: 2003年08月04日 17:38
Re: 关于Struts的性能怀疑 2003年12月05日 17:53 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
问题1:
一般是用同一个ActionServlet,当然你想用/abc/*.do对应ActionServlet1,/def/*.do对应ActionServlet2也可以

但是就算只用一个ActionServlet,但并不是说,Web服务器就只有一个线程在处量所有的请求,类和实例是不同的.

问题2:
关于大量的类型转换,类型转换是要一点时间,但那相对于业务的处理所要的时间来说可以计为零.而且,这里并没有大量的转换,无非,在由Form进Action的execute中,多了一次而已.

问题3:
>使用Action的时候如果不使用DispatchAction的话,..
那你就使用它就是了.

问题4:
>每个Action都会有ActionForward
这很正常啊,用户提交了他想要的操作,一般情况下,当然要给用户一个操作结果,JSP就是显示结果的地方,所以要Forward.
(当然Forward不一定只能到jsp)
layout

悄悄话
发表文章: 21
注册时间: 2003年08月08日 13:24
Re: 关于Struts的性能怀疑 2003年12月05日 20:56 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
1.对于只使用一个Servlet来统管,我不知道这种方式同使用不同的
servlet来做分流控制之间的主要差别在于什么?如果同样使用多线程
池的话应该没有太大区别,会无限创建实例吗?(如果没有空闲?)
2.对于不停的进行对象类型转换这种操作,少量的访问或者并发量不是
非常大的情况下可能还能够忍受,但是内存仍然会缓慢上扬.我在weblogic
下面做个比较详细的性能测试,在并发量50个的情况下10分钟就差不多
weblogic的内存上涨了200M左右(在这之后自动内存回收可以减少一些)
对于这种现象,我有理由对项目表示担心...
3.开发效率而言,让程序员不停的做基本类似的Action的类,总觉得是
一种很没有效率而且容易让程序员疲劳犯错的事情.即使采用了
DispatchAction依然存在繁琐的配置过程,如果在项目进度比较紧张的
情况下出现一个错误就足以影响整个进度....:P

只是对项目进度有些担心.同时我想请教请教各位大虾;
如果我对项目不是很有把握,而且团队组建还不是很久,对每个人的编码实
力都还不是很了解的情况下,使用Struts来规范团队的开发(可能还有很大
一部分人对Struts不是非常熟悉),这样能够减少项目风险吗?或者会更加
增加项目风险?

此外,有没有道友做过Struts的性能评测,就是比较正式严格的测试,不只是
象俺跑了10分钟的.用数据说话可能是最能够让人放心而且明确的方法.
layout

悄悄话
发表文章: 21
注册时间: 2003年08月08日 13:24
Re: 关于Struts的性能怀疑 2003年12月05日 20:58 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
对于一个并发量(同时访问数据库,或者说同时去点击一个按钮)在400
的情况下,兄台以为如何?(并发量一般同在线人数为1:10的关系)
starfeng

悄悄话
发表文章: 18
注册时间: 2003年08月04日 17:38
Re: 关于Struts的性能怀疑 2003年12月05日 21:35 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
问题1:
一般情况下就用一个ActionServlet,总控还是只有一个最好.
实例的多少由Web容器的调度策略来决定.
线程不会无限多下去,到了Web容器的极限的情形是:客户端到来的请求,Web容器不处理.

问题2:
内存上扬是正常现象,但这不是说用Struts才这样.
事实上从请求到ActionServlet开始记时,经过ActionForm转到excute方法,一般不会超过0.01s,(注:我开发机器用的是p4 1.5g ,600M内存,在wsal调试环境下.)

问题3:
用jbuilder 9做开发
crogers

悄悄话
发表文章: 84
注册时间: 2003年10月11日 13:47
Re: 关于Struts的性能怀疑 2003年12月06日 00:13 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
> 1.对于只使用一个Servlet来统管,我不知道这种方式同使用不
只有一个Servlet能够更好的进行控制和统计,而减少同步操作,或者线程冲突
> 2.对于不停的进行对象类型转换这种操作,少量的访问或者并?> 量不是
我们做测试的时候,wls开800M内存,5分钟就满,就会自动gc
gc完了以后,只有80M
关于内存大小,还是你自己写的代码是否干净的问题
干净的代码,自然有办法用更好的机器来gc,不干净的代码,再好也没用
> 3.开发效率而言,让程序员不停的做基本类似的Action的类,总
这个是项目自己的问题,和Struts没关系,如果你没用Struts,然后每人自己来写mvc,更加是一地错误
>
> 只是对项目进度有些担心.同时我想请教请教各位大虾;
> 如果我对项目不是很有把握,而且团队组建还不是很久,对每个
你是项目负责人,你应该自己足够清楚你的项目使用的技术结构
如果你不够清楚或者不够指导人,那就只有祈祷你的同事的技术水平
比如说,最基础的,你能控制好每个人机器上的开发运行环境都一样嘛?
>
> 此外,有没有道友做过Struts的性能评测,就是比较正式严格的
好像我已经回过了,不想再回了
想起一个基本原则:dupliation is terrible,嗯,灌水同样适用~


>对于一个并发量(同时访问数据库,或者说同时去点击一个按钮)在400
>的情况下,兄台以为如何?(并发量一般同在线人数为1:10的关系)
这倒可以答得出来,我们系统记录到得最大并发操作是300多,双机跑的,那对数据库来说应该有500多吧
richter

悄悄话
发表文章: 3
注册时间: 2002年12月04日 23:38
Re: 关于Struts的性能怀疑 2003年12月27日 10:49 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
小弟我用Robot+TestManager(rational的产品)测过我公司开发的商用系统(struts)(用的是发布版本)。具体数据记不清了。有一个统计用户使用频率的查询模块当并发超过400user时就当机了(当了Robot)
raymond323

悄悄话
发表文章: 18
注册时间: 2003年06月10日 16:53
Re: 关于Struts的性能怀疑 2004年06月11日 10:57 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
f
jeston2001

悄悄话
发表文章: 3
注册时间: 2004年06月07日 14:34
Re: 关于Struts的性能怀疑 2004年06月13日 15:57 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
gz
这个主题有 11 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  发贴前查询 标签列表勿重复发表问题

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam