浏览 4443 次
锁定老帖子 主题:webwork的性能问题
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-22
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了,是吗? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-12-27
Struts Action在处理所有的请求时都只有一个实例.WebWork Actions 为每个请求初始化一个实例,webwork 中Servlet 容器每次处理请求时,都会生成许多将被丢弃的对象,但并没有证据证明更多的对象会产生性能或者垃圾回收问题.另外需要考虑的一个问题是线程安全.
|
|
返回顶楼 | |
发表时间:2006-12-28
我不知道管理员吧我这篇帖子移到新手区的原因.关于iseeiconquer所提供的帮助,我表示感谢.但是我想这段话我在webwork的官方文档已经找到了同样的解释.但是我想这并不能成为答案.为了大家不能一同探讨一下呢.也许是我提问的方式有问题.或者我测试的方式有问题.但是真的希望能有哪位能帮我解释一下这个问题,已经困扰半年之久了.
|
|
返回顶楼 | |
发表时间:2006-12-28
这个问题论坛已经讨论过很多遍了,没有什么好说的,先搜索。
再者你的测试方法也不符合具体的应用场景。如果你要找信心的话,可以确切的告诉你,Google就在用webwork。 |
|
返回顶楼 | |
发表时间:2007-01-15
我说的就是引用文档资料里的(官方有webwork和struts的对比).
这已经能得到很好的解释了.对于简单的请求处理,struts确实会有一些速度上的优势,但如果涉及到共享资源,线程安全等方面struts就不一定快了,例如,你有30个请求同时对一个action发出,而这个action里面有牵涉到数据库连接的操作,那么由于struts只有一个action实例来处理这些请求,它就必须对数据库连接进行线程保护,也就是说,它必须一个一个来处理这30个请求,速度就会慢下来了;而webwork能够同时生成多个action实例,(当然这会产生垃圾回收,另外生成对象本身也是个消耗较多的操作,但这并不影响整体的优势).在这种情况下,webwork就会快很多了,另外webwork还有很多其他优势的,这也是struts2.0以后和webwork合并的原因. |
|
返回顶楼 | |
发表时间:2007-01-16
嗯...难怪robbin说我的测试方法不符合具体的应用场景。谢谢你。有空我在做做复杂一些的测试。
|
|
返回顶楼 | |