论坛首页 Java企业应用论坛

请问:Webwork的Action不是Singleton的,这是否会影响性能?

浏览 4597 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-04-28  
我们知道不管是Model-Driven还是Field-Driven方式,都决定了WW2的Action不可能是Singleton的,而STRUTS则是Singleton的,因此性能上还是不错的。

感觉WW2的Action又回到了以前的CGI模式,为什么现在又这么用了呢?
还是现在机器的性能已经很好了,不在乎这点开销了?

好像在这里做个pool没有什么用处,比如压力测试时,大概这个pool的size就不知道有多大了。
   发表时间:2005-04-28  
自己测试了一把,发现差别巨大,  10倍

我是在一个Action里调用一个Spring管理的Bean,Bean里只是打印一个Message,两个测试的差别就在Spring的Singleton的设置上:TRUE/FALSE的不同。

用Profiler for Eclipse plugin做的测试。
0 请登录后投票
   发表时间:2005-04-28  
看看其他人的看法先,等
0 请登录后投票
   发表时间:2005-04-28  
kenny 写道
自己测试了一把,发现差别巨大,  10倍

我是在一个Action里调用一个Spring管理的Bean,Bean里只是打印一个Message,两个测试的差别就在Spring的Singleton的设置上:TRUE/FALSE的不同。

用Profiler for Eclipse plugin做的测试。


请问web应用的瓶颈在于new对象的速度吗?
0 请登录后投票
   发表时间:2005-04-28  
因为我的测试的2个案例唯一差别之处就是singleton=true/false的不同,所以有这个结论。如果这个不影响到整个Web的性能,当然没有关系啦。

我没有WW2的压力测试数据,也没有实际应用的案例,所以才想问问。我现在这种方式相当于是模拟WW2的工作方式了。

另外我还做了Heap的跟踪,none-singleton的heap没有明显的增加太多,可能和我的例子太简单有关,只有一个Spring管理的bean。

Anyway,这是我在STRUTS下的一个改造,去掉STRUTS的Action,从RequestProcessor里直接调用Service,应该能行得通,等我继续完善,有一定规模后再测试一次看看。
0 请登录后投票
   发表时间:2005-04-29  
这样的测试能说明什么问题嘛?web应用的性能瓶颈绝不在singleton是true或者false上吧。硬件好一点,这点性能影响算的了什么?
0 请登录后投票
   发表时间:2005-04-29  
说实话这种测试的确不完整,也不够严密,所以没有太大的意义。

以前总是批评CGI是对每个请求起一个进程,极大地消耗了Sevrer的资源,而JAVA的Servlet是只有一个实例,执行多个线程,所以相对来说有很大的优势。现在看来只是CGI生不逢时,如果那时的机器有现在的那么好,大概也就不存在这个问题了。

本来我是想转到WW2上的,可是经过权衡还是放弃了。
一是公司还没有人熟悉Webwork,转过来需要时间,而且对将来的实际运行没有底。
二是我认为J2EE的技术发展太快了,没有必要跟得那么紧,也许以后又回到Rich Client方式,比如RCP,RIA等等,Webwork比起STRUTS并没有实质性的更新。

所以我的想法是自己对STRUTS做一些扩展,加入Webwork的一些有特点的内容。既然是自己做比较底层的东西,当然要考虑性能问题。

Interceptor虽然是个好东西,可是好像技巧性太强了,适合于日志、权限等比较大的单一功能的模块,我还是不希望为每个Action 加很多的Interceptor,从业务逻辑角度看太不直观了。
就像Database的Trigger,基本上很少用。
0 请登录后投票
   发表时间:2005-04-29  
每个人的技术观点都不一样,我就是觉得用了interceptor以后,解决了我很多困惑的问题,所以我会选择webwork而不是struts。
0 请登录后投票
   发表时间:2005-04-29  
如果是新选择一个framework,我想我也会选Webwork。

只是在开发中,要考虑的实际问题很多,包括以后的投产维护等等,光我一个人研究好了没有用,我不可能同时支持很多个项目,经验都得靠大家慢慢积累。

再有就是将来的发展问题。
等着一步到位,来个可以解决一切问题的。。。。
0 请登录后投票
   发表时间:2005-05-03  
My Opinion
• Struts is fast to develop with because most problems have
been solved. HTML tag library the best of the bunch.
• Spring is nice, but lack of form tags drops it down a notch
or two. JSP 2.0 tag files exist in issue tracker.
• I like WebWork a lot, but lack of of good client-side
validation support is a killer.
• Tapestry - I haven’t finished the learning curve.
• JSF - needs to listen to developers to see what they want
instead of tools vendors.

Which would I choose?
• Quick and dirty project?
• Struts because I know it best
• Massive enterprise project?
• Tapestry for its reusable components
• If I got a job as an open source developer?
• WebWork because using it requires you
to dig into the frameworks


The End
...or is it just the beginning...
!ww.raibledesigns.co"
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics