当前位置: 代码迷 >> Web前端 >> webwork的性能有关问题
  详细解决方案

webwork的性能有关问题

热度:79   发布时间:2012-11-05 09:35:12.0
webwork的性能问题
做了个简单的测试.
1.用webwork做了个action,直接导入到SUCCESS.
2.用struts做了个action,直接导入到SUCCESS.

然后用LoadRunner测试,设定用户数30个,一开始就30个.开始以后观察发现:
1.webwork的最高His/Second为170
2.struts的最高His/Second为480

有哪位大侠能够告诉我为啥差别这么大,还是可能我的webwork的配置有问题.
我在这个action上面没有添加任何拦截器.
<package name="aaa" extends="webwork-default" namespace="/aaa">
这个模块继承于webwork-default,我将webwork-default.xml里面的<default-interceptor-ref name="defaultStack"/>也删除了,也就是说现在没有经过任何拦截器的.

谁能.若是差别这样巨大,那么我们这个可能用户访问量巨大的网站就不能用webwork了,是吗?
1 楼 iseeiconquer 2006-12-27  
Struts Action在处理所有的请求时都只有一个实例.WebWork Actions 为每个请求初始化一个实例,webwork 中Servlet 容器每次处理请求时,都会生成许多将被丢弃的对象,但并没有证据证明更多的对象会产生性能或者垃圾回收问题.另外需要考虑的一个问题是线程安全.
2 楼 sliverfancy 2006-12-28  
我不知道管理员吧我这篇帖子移到新手区的原因.关于iseeiconquer所提供的帮助,我表示感谢.但是我想这段话我在webwork的官方文档已经找到了同样的解释.但是我想这并不能成为答案.为了大家不能一同探讨一下呢.也许是我提问的方式有问题.或者我测试的方式有问题.但是真的希望能有哪位能帮我解释一下这个问题,已经困扰半年之久了.
3 楼 robbin 2006-12-28  
这个问题论坛已经讨论过很多遍了,没有什么好说的,先搜索。

再者你的测试方法也不符合具体的应用场景。如果你要找信心的话,可以确切的告诉你,Google就在用webwork。
4 楼 iseeiconquer 2007-01-15  
我说的就是引用文档资料里的(官方有webwork和struts的对比).
这已经能得到很好的解释了.对于简单的请求处理,struts确实会有一些速度上的优势,但如果涉及到共享资源,线程安全等方面struts就不一定快了,例如,你有30个请求同时对一个action发出,而这个action里面有牵涉到数据库连接的操作,那么由于struts只有一个action实例来处理这些请求,它就必须对数据库连接进行线程保护,也就是说,它必须一个一个来处理这30个请求,速度就会慢下来了;而webwork能够同时生成多个action实例,(当然这会产生垃圾回收,另外生成对象本身也是个消耗较多的操作,但这并不影响整体的优势).在这种情况下,webwork就会快很多了,另外webwork还有很多其他优势的,这也是struts2.0以后和webwork合并的原因.
5 楼 sliverfancy 2007-01-16  
嗯...难怪robbin说我的测试方法不符合具体的应用场景。谢谢你。有空我在做做复杂一些的测试。