MyException - 我的异常网
当前位置:我的异常网» J2SE » 单例模式action(顶着有分)解决方法

单例模式action(顶着有分)解决方法

www.MyException.Cn  网友分享于:2013-02-17  浏览:33次
单例模式action(顶着有分)
单例模式网络资源非常多,尤其感谢http://www.javaeye.com/topic/60179这里的分享。
在选择mvc框架的同时一直有个问题。
springMVC 看了很多帖子说,springMVC的action是单例的,所以性能要高。性能高很多?会造成什么问题?
我们知道struts2 的action是非单例的,在每次请求的时候都会创建一个实例action来处理请求。
那么他的性能存在了问题?struts2 是如何保证性能的?每次都创建了一个对象,垃圾回收问题呢?

看了很多文章都没有很清楚的介绍,只是简单的拿来对比。无论是不是线程安全的,无论是不是单例,至少
在选择mvc框架的时候要考虑性能问题。如果说单例模式是高性能的,但是同时也会造成很多问题,相反
非单例解决了单例的问题,但对性能又造成了多少影响?那么我们在选择的时候就需要有取舍,这个取舍是
如何评定的?

拿出来讨论,期待高手解释。


------解决方案--------------------
新手而已,性能什么不懂,等高手
------解决方案--------------------
这点影响可以忽略。

Servlet 也是个单实例的。所有单实例中不允许出现带有状态的成员变量。
------解决方案--------------------
解释不清。也没想过这问题。。。
------解决方案--------------------
单例模式我曾看过网上java的说法(我其实学。net的)说其实单例模式java没有完美解决方案。呵呵,我只知道一个简单的。。。
------解决方案--------------------
不知道,一般解决性能问题都从代码和sql优化上着手


------解决方案--------------------
这方面没研究过,期待高手解惑
------解决方案--------------------
哪有两全其美的东西呀。
------解决方案--------------------
等高手
------解决方案--------------------
我就顶一下吧!
------解决方案--------------------
顶一下!
------解决方案--------------------
Web框架中很多对象都是单例的,主要是那些为用户请求服务的Object往往是单例。

因为如果现在有100人访问你的Server,那么像Servlet,Action这类的对象就生产100个。
那将是对内存和时间的极大浪费。(new是比较耗费的一种操作,要锁,从JVM堆中分配内存,创建对象。)

最大的问题是,HTTP是无状态的,那么相应的request-response结构,就往往应该是无状态的。
所以单例(往往)足够了。


------解决方案--------------------
不是很清楚。。。也许struts2和EJB的无状态会话bean一样有个实例池,这样也许就不用每个request创建一个action instance了
------解决方案--------------------
这个不清楚
------解决方案--------------------
现在这机器 配置不比以前吧?

系统中对性能影响最显著的还是数据库操作啊
------解决方案--------------------
学习一下啊~~~~
------解决方案--------------------
探讨

现在这机器 配置不比以前吧?

系统中对性能影响最显著的还是数据库操作啊

------解决方案--------------------
这个,很正常了,单例可以提高性能,如果同一个类,要实例化两个对象,并发操作两个对象,

单例就无能为力了。 各有优点,看自己程序了决定了。
------解决方案--------------------
做个标记。有状态无状态是个什么意思来着。
------解决方案--------------------
study
------解决方案--------------------
struts2 的action 不能用单例模式,因为action相当于struts1里面的form一样了,所以没办法用单例模式。

虽然spring的mvc没用过,但是两者最大的区别在表现层上。

而且对于jdk1.5以后的版本来说,单例模式和 非单例模式在虚拟机里面已经做了很多优化,所以 单单从 单例模式 这个角度来比较效率是没意思的。

而从根本上来说 ,导致struts2 效率变慢的原因还是因为自己的 tag,所以只要对一些tag使用上斟酌一下,效率不会是大问题,

比如你用struts2的 动态树, sx:tree 必须引入 dojo,虽然jsp代码不多,但是生成html文件之后你会发现页面代码中添加了很多很多的js和css样式, 当树比较大的时候就会发现浏览器变得很卡。这点深有体会啊。但是其实用dtree完全可以实现这个动态树并且能够增加更多的css。
还有就是 用dojo 和 json等结合实现动态级联,这个暂时在一些浏览器下面还不支持,所以说关键在于一些struts2自带的扩展功能上,这些功能为了能够尽可能的变得通用,增加了很多很多不必要的判断和限制条件,所以降低了效率。

=====================

单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

文章评论

编程语言是女人
编程语言是女人
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
漫画:程序员的工作
漫画:程序员的工作
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序员必看的十大电影
程序员必看的十大电影
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员都该阅读的书
程序员都该阅读的书
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
Java程序员必看电影
Java程序员必看电影
程序员的鄙视链
程序员的鄙视链
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
程序员应该关注的一些事儿
程序员应该关注的一些事儿
我的丈夫是个程序员
我的丈夫是个程序员
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
鲜为人知的编程真相
鲜为人知的编程真相
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
那些争议最大的编程观点
那些争议最大的编程观点
中美印日四国程序员比较
中美印日四国程序员比较
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
10个调试和排错的小建议
10个调试和排错的小建议
我是如何打败拖延症的
我是如何打败拖延症的
总结2014中国互联网十大段子
总结2014中国互联网十大段子
旅行,写作,编程
旅行,写作,编程
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
老程序员的下场
老程序员的下场
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
如何成为一名黑客
如何成为一名黑客
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
一个程序员的时间管理
一个程序员的时间管理
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有