`
qiushily2030
  • 浏览: 3722 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Struts2慢的原因

阅读更多
Struts2的慢要追溯到它的前身Webwork了,目前已知的主要原因包括:复杂的拦截器链、OGNL表达式解析、Struts2的标签等。
spring + spring JdbcTemplate + spring mvc

struts2的核心是xwork,因为用到了ThreadLocal模式,所以那些Web容器中的对象会跟着当前Thread一跟到底,所以造成了struts2是很占用内存的,尤其是高并发的情况下,如果request的生命周期很长,你会看到内存不断上升。这个是struts2在性能上的一个问题,但是这个却能支撑起其他web框架无法支持的功能。
struts2因为是使用instance-per-request的因此会导致大量的短生命周期对象产生而需要对jvm参数调整。
struts2的default interceptor stack,按需裁剪吧,因为没调用一次,都会触发这个拦截器。
分享到:
评论
25 楼 deadcode 2010-06-28  
spring mvc 挺好,想咋写咋写
24 楼 rrsy23 2010-06-26  
裁剪完了最好--那直接spring MVC

那直接自己写个MVC
23 楼 aaa5131421 2010-06-26  
lovbreath 写道
aaa5131421 写道
my_corner 写道
pch272215690 写道
   运行速度慢换来的是开发效率的提升,软件的慢可以用硬件来弥补,而且多加一台服务器有时比多招开发人员要来得容易。

这话说的太不负责了,不是一个程序员应该说的

这个我有话说,一定要回一下,呵呵。
这不是不负责任,任何事情都有一个度,按照道理来说:任何代码就算你优化一万遍也还有优化的空间,只不过是成本越来越大,难度越来越高,而得到的收获却越来越少。犹如海绵中的水,只要你挤,总还是会有的。只不过越来越少,越来越费劲。如果说是内核级程序,重用率非常之高,优化一下会事半功倍,比升级硬件成本利润比会非常好,如果程序分布很广,优化效果不高,这样直接升级硬件是最好的方法。
可以说软件的发展历程就是以牺牲性能为代价  换来  实现复杂的功能。而硬件也是一直在发展的,而且比软件的性能需求增长的更快。


你说的MS前后有些矛盾,
任何代码就算你优化一万遍也还有优化的空间,只不过是成本越来越大,难度越来越高,而得到的收获却越来越少
紧接着
如果说是内核级程序,重用率非常之高,优化一下会事半功倍

我指的内核级程序,重用率非常之高,优化一下    指的是一万遍中的前一百遍,呵呵~~~这样说应该明白了吧
22 楼 kjj 2010-06-26  
caoyangx 写道
kjj 写道
人云亦云,鹦鹉学舌而已!!

我是来膜拜你的,圣人,你真的看破红尘了。


豪不负责任的说别人的话,怎么这个比喻不恰当吗,你和鹦鹉有啥区别,对一个东西下结论麻烦举出说服人 的例子来,不然没说服力
21 楼 lovbreath 2010-06-26  
aaa5131421 写道
my_corner 写道
pch272215690 写道
   运行速度慢换来的是开发效率的提升,软件的慢可以用硬件来弥补,而且多加一台服务器有时比多招开发人员要来得容易。

这话说的太不负责了,不是一个程序员应该说的

这个我有话说,一定要回一下,呵呵。
这不是不负责任,任何事情都有一个度,按照道理来说:任何代码就算你优化一万遍也还有优化的空间,只不过是成本越来越大,难度越来越高,而得到的收获却越来越少。犹如海绵中的水,只要你挤,总还是会有的。只不过越来越少,越来越费劲。如果说是内核级程序,重用率非常之高,优化一下会事半功倍,比升级硬件成本利润比会非常好,如果程序分布很广,优化效果不高,这样直接升级硬件是最好的方法。
可以说软件的发展历程就是以牺牲性能为代价  换来  实现复杂的功能。而硬件也是一直在发展的,而且比软件的性能需求增长的更快。


你说的MS前后有些矛盾,
任何代码就算你优化一万遍也还有优化的空间,只不过是成本越来越大,难度越来越高,而得到的收获却越来越少
紧接着
如果说是内核级程序,重用率非常之高,优化一下会事半功倍
20 楼 aaa5131421 2010-06-26  
my_corner 写道
pch272215690 写道
   运行速度慢换来的是开发效率的提升,软件的慢可以用硬件来弥补,而且多加一台服务器有时比多招开发人员要来得容易。

这话说的太不负责了,不是一个程序员应该说的

这个我有话说,一定要回一下,呵呵。
这不是不负责任,任何事情都有一个度,按照道理来说:任何代码就算你优化一万遍也还有优化的空间,只不过是成本越来越大,难度越来越高,而得到的收获却越来越少。犹如海绵中的水,只要你挤,总还是会有的。只不过越来越少,越来越费劲。如果说是内核级程序,重用率非常之高,优化一下会事半功倍,比升级硬件成本利润比会非常好,如果程序分布很广,优化效果不高,这样直接升级硬件是最好的方法。
可以说软件的发展历程就是以牺牲性能为代价  换来  实现复杂的功能。而硬件也是一直在发展的,而且比软件的性能需求增长的更快。
19 楼 風一樣的男子 2010-06-26  
Spring 3.0 MVC
18 楼 唯快不破 2010-06-26  
现在还没有人敢贴代码出来证明某个mvc框架比struts2快
17 楼 my_corner 2010-06-26  
weir2009 写道
sundoctor 写道
struts2慢吗,我不觉得,我觉得快与慢主要在编写程序的人,一个人第一次用hibernate写出来的东东特别慢,然后他就觉得使用hibernate就是慢,是个错误,然后他不惜血本换成了jdbc还是一样慢。

说得好,说到底还是硬件性能问题,这个问题不是程序员能左右的,我们只会优化他

只能说是程序不够优化,和硬件关系不大
16 楼 my_corner 2010-06-26  
pch272215690 写道
   运行速度慢换来的是开发效率的提升,软件的慢可以用硬件来弥补,而且多加一台服务器有时比多招开发人员要来得容易。

这话说的太不负责了,不是一个程序员应该说的
15 楼 sundoctor 2010-06-26  
随便说说,路过路过
14 楼 weir2009 2010-06-26  
sundoctor 写道
struts2慢吗,我不觉得,我觉得快与慢主要在编写程序的人,一个人第一次用hibernate写出来的东东特别慢,然后他就觉得使用hibernate就是慢,是个错误,然后他不惜血本换成了jdbc还是一样慢。

说得好,说到底还是硬件性能问题,这个问题不是程序员能左右的,我们只会优化他
13 楼 sundoctor 2010-06-26  
struts2慢吗,我不觉得,我觉得快与慢主要在编写程序的人,一个人第一次用hibernate写出来的东东特别慢,然后他就觉得使用hibernate就是慢,是个错误,然后他不惜血本换成了jdbc还是一样慢。
快与慢不在于你使用什么东东,不管是struts2还是spring mvc,而是在于你使用的方式,你对它们的了解程序,是否精通。如果你就从网上找个hello world能运行起来,你就说你会某某东东,那写出来的东东不慢才怪!!!!
12 楼 joeyhacker 2010-06-26  
kjj 写道
人云亦云,鹦鹉学舌而已!!

这是真话,敢问 什么是慢,什么是快 ?
11 楼 caoyangx 2010-06-26  
kjj 写道
人云亦云,鹦鹉学舌而已!!

我是来膜拜你的,圣人,你真的看破红尘了。
10 楼 7454103 2010-06-26  
strut2 存在说明他还是有价值的!
spring mvc  正在研究! 貌似 spring3 的MVC  很 happy!
9 楼 pch272215690 2010-06-26  
   运行速度慢换来的是开发效率的提升,软件的慢可以用硬件来弥补,而且多加一台服务器有时比多招开发人员要来得容易。
8 楼 weir2009 2010-06-26  
sw1982 写道
裁剪默认拦截器栈确实是个好办法。。基本用不上那么复杂的功能

那还用Struts2干嘛,慢与快是相对的,看怎么用了。
7 楼 sarin 2010-06-26  
还是Spring MVC Spring Spring JDBC好
6 楼 joehe 2010-06-26  
己把spring mvc 把req,res两个方法参数去掉了,用的就是ThreadLocal,现在方法一个参数也没有,修改MultiActionController这个类,还可以在当前请求的线程内调用的方法中随便拿到这两个参数,何乐而不为

相关推荐

    Struts2漏洞利用工具

    Struts2是一个基于MVC设计模式的Web应用框架,但2存在远程代码执行的漏洞,现在Struts2漏洞检测工具2017版增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过...

    Struts2漏洞检查工具2017版.zip

    Struts2漏洞检查工具2017版 V2.0 by 安恒信息应急响应中心。支持S2-032,S2-037,S2-016,S2-019,S2-045,S2-046,S2-048漏洞验证。有对漏洞的命令执行功能、文件上传功能。还有批量验证功能。增加S2-046,官方发布S2-046...

    uploadify3与struts2结合实现有进度条文件上传实例

    这是根据uploadify3 2结合struts2搭建的文件上传环境 可以直接导入eclipse运行 每步实现基本都加了注释 以下是我碰到的问题: 1 判断session是否失效 本实例没测试这个问题 但在工作项目中碰到了 但原因在这里...

    struts2重要知识点原理

    struts hibernate 安装及配置详解

    struts2权威指南源码

    struts2权威指南中的源代码,但是都没有架包哦!主要原因是JAR太多了 那样文件就太大了!用的struts2.0.6的版本!

    Struts2漏洞检查工具2018版.exe

    增加S2-048 Struts 2.3.X 支持检查官方示例struts2-showcase应用的代码执行漏洞,参考地址:http://127.0.0.1:8080/struts2-showcase/integration/saveGangster.action 2017-03-21: 增加S2-046,官方发布S2-046和S2...

    struts扫描及利用工具(2018-11新版)

    [+]struts2-053检测+利用(需要提供参数) [+]检测过程中输出超时原因 [+]兼容HTTP/1.0,修复了struts-045检测不准确的问题 [+]struts2-046检测+利用 [+]修改struts2-048的payload [+]针对某些超时的情况,注释掉 ...

    Struts2漏洞检查工具2018版.zip

    struts2漏洞exp利用工具, 2018-08-24: 增加S2-057 Struts 2.3 to 2.3.34,Struts 2.5 to 2.5.16 此漏洞影响范围非常小,要求配置条件比较苛刻,同时,一些特定版本没有看到有沙盒绕过,说以,目前exp只是基于S2-...

    struts2漏洞分析

    struts2漏洞分析,介绍了最近发现的struts2的漏洞。并详细解释了该漏洞产生的原因。

    解决struts2下载异常的jar包 struts2-sunspoter-stream-1.0.jar

    有关struts2下载组件的具体介绍我就在此略过了,看此文的同志想必大多是碰到这样让人很是不爽的问题。 下面就将该问题的最终解决办法介绍如下。 问题概要: 在struts2中使用result里type="stream"的结果类型时,...

    struts2讲义.doc

    原因有很多种,一方面是Struts出现的时间比较早,现在流行的技术都是在Struts后出现的。因此必然导致Struts对新技术的支持不够。另一方面很多新兴的Web项目开发框架都是很好的体现了现有开发理念的使用。对Struts的...

    Struts常见错误及原因分析.

    Struts常见错误及原因分析. Struts常见错误及原因分析.

    struts1和struts2相关jar包(已分开

    struts1和struts2相关jar包,已分开,分开的原因是有时需要测试系统升级时两个版本之间的兼容性。

    struts2必备包必须

    com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69) 提示各种奇怪的启动错误,原因就是缺少包,这里面是必须的包

    Struts2防止表单重复提交

    造成重复提交主要的两个原因: 1) 一是,服务器处理时间久。当用户在表单中填完信息,点击“提交”按钮后,由于服务器反应时间过长没能及时看到响应信息,或者出于其它目的,再次点击“提交”按钮,从而导致在...

    struts2-convention-plugin-2.5.22.jar

    一:升级高版本的struts2.5.22 无法访问Action解决办法 1.最主要原始struts版本与freemarker-2.3.22版本不一致...2.具体原因就研究struts2-core-2.3.32.jar 与 freemarker-2.3.22.jar 关系依赖 更新如下8个jar即可。

    struts2

    虽然最终由于各种原因,Patrick Lightbody的愿望未能实现,但是WebWork和Struts Ti却发现了二者在技术与开发人员这两个层面上的共同之处,不久之后,两个项目就在WebWork的技术基础上进行了合并2。

    Struts2漏洞检查工具2017版

    增加S2-048 Struts 2.3.X 支持检查官方示例struts2-showcase应用的代码执行漏洞,参考地址:http://127.0.0.1:8080/struts2-showcase/integration/saveGangster.action 2017-03-21: 增加S2-046,官方发布S2-046和S2...

Global site tag (gtag.js) - Google Analytics