锁定老帖子 主题:SPRING的AOP不适合多线程应用?
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-14
引用 这个是讨论的重点.
不是被代理对像,也不考虑程序员造成的安全问题.AOP框架本身不是线程序安全的. 我直接就google了,找到一篇分析http://blog.pramatiservices.com/spring-bean-creation-is-not-thread-safe/ 文中讨论了在并发环境下,得到未完全初始化的单例bean的bug。 引用 性能问题,我估计你用的不是普通对相,如果是普通对像会应该差距这么小,普通对像应该是ArrayList的那种,String,无状态简单BEAN。这样的话性能相差至少是50倍吧。一会测下就行了。
仅仅创建的性能差距还不是全部,还有运行时执行aop框架对象的消耗时间,这个时间都要累加到CPU上面,所以各种因素加在一起影响就大了。 确实,代码里有一行new Date()导致,50倍基本一致。cglib的方式不知道性能怎样(我看一些例子的代码是可以先构建出proxy class,然后才创建实例)。这个累积效应,关键是不好量化。 |
|
返回顶楼 | |
发表时间:2008-10-14
支持tom猫,我也是来砸spring的。
我所理解的spring是相当低效率和无价值的,在我所经历和见到的spring项目中成功的少,垃圾的多。 一方面spring所倡导的概念仅仅是概念,缺乏实用性。小项目中太复杂,大项目用不上。使用spring之后,项目或产品的系统运维很麻烦,带来的好处倒是没觉得。 程序运行效率很重要,不可能因为机器便宜就可以盲目增加机器,一方面电力成本的问题,另一方面运维难度。 spring绝佳之处就在于概念,作为技术吹水的材料,spring是很适合的。 |
|
返回顶楼 | |
发表时间:2008-10-14
再砸一下struts
如果说在所谓的企业应用中,这玩意有一席之地,在互联网应用中,完全是个垃圾。 1.效率问题。随便出个错,你可以发现struts相关的堆栈输出至少20条,这玩意还有效率可言么? 2.我为什么要统一配置页面转发和定向?直接在页面中定向页面转发和配置不是更有灵活性。在大系统中,约定规则不是更方便? 顺便砸taglib,除了降低系统效率之外,没有看出来其他用处。从某种程度上来说,采用mvc的思想,直接在页面中用java代码输出会易于编写和维护。 |
|
返回顶楼 | |
发表时间:2008-10-14
nihongye 写道 我直接就google了,找到一篇分析[url]http://blog.pramatiservices.com/spring-bean-creation-is-not-thread-safe 文中讨论了在并发环境下,得到未完全初始化的单例bean的bug。 上面说Spring2.0是有BUG的,但2.5已经修复了IOC的BUG。 不仅仅如此2.5的AOP也是非线程安全的。这不是BUG,这个是改变不了的。源代码只能那么实现了。 |
|
返回顶楼 | |
发表时间:2008-10-14
举个实际的代码例子来说明你遇到的问题吧,我认为AOP的线程安全是个伪命题
|
|
返回顶楼 | |
发表时间:2008-10-14
首先的问题~~AOP是面向切面编程,而线程安全的问题是应该由切面本身去考虑的~~你不能因为某人用枪杀了人,就否定枪的作用。没有任何编程结构可以包办所有事情。
|
|
返回顶楼 | |
发表时间:2008-10-14
axeon 写道 支持tom猫,我也是来砸spring的。
我所理解的spring是相当低效率和无价值的,在我所经历和见到的spring项目中成功的少,垃圾的多。 相反,我见到的Spring成功项目很多~~但是垃圾的项目一向比不垃圾的项目多,这个跟Spring没什么关系。还有Spring低效率和无价值,可以理解为语不惊人死不休吗~~ 引用 一方面spring所倡导的概念仅仅是概念,缺乏实用性。小项目中太复杂,大项目用不上。使用spring之后,项目或产品的系统运维很麻烦,带来的好处倒是没觉得。
只能说你不太适合使用Spring。 引用 程序运行效率很重要,不可能因为机器便宜就可以盲目增加机器,一方面电力成本的问题,另一方面运维难度。
效率可以用数据说话吗,Spring2.5的运行效率相当快速,不知道你所要求的效率指标是多少。 引用 spring绝佳之处就在于概念,作为技术吹水的材料,spring是很适合的。 Spring都拿来技术吹水,那也真是没什么可以吹的了。。。 |
|
返回顶楼 | |
发表时间:2008-10-14
嗯,我是想提醒大家用的时候注意pototype
|
|
返回顶楼 | |
发表时间:2008-10-14
大猫汤姆 写道 nihongye 写道 我直接就google了,找到一篇分析[url]http://blog.pramatiservices.com/spring-bean-creation-is-not-thread-safe 文中讨论了在并发环境下,得到未完全初始化的单例bean的bug。 上面说Spring2.0是有BUG的,但2.5已经修复了IOC的BUG。 不仅仅如此2.5的AOP也是非线程安全的。这不是BUG,这个是改变不了的。源代码只能那么实现了。 你没仔细看,说的是2.5有问题,2.0没问题。aop那块就不清楚了,你清楚的话,开贴另外讨论!?。 |
|
返回顶楼 | |
发表时间:2008-10-14
大猫汤姆 写道 嗯,我是想提醒大家用的时候注意pototype 这个好像不好弄。 |
|
返回顶楼 | |