zongxing

没有迈不过去的坎!

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  14 随笔 :: 16 文章 :: 33 评论 :: 0 Trackbacks
Java运行原理:
Java有一个垃圾回收机制,总是在内存剩余大概5%才启动,因为它中断权限最高,它运行,其他全部停止,因此,我们不希望垃圾回收机制频繁启动,那么就要控制内存不要触碰剩余5%底线。

而在普通JavaBeans系统中,每一次客户端请求访问时,系统总是new一个javabeans或Java Class,如果并发访问量很大,比如并发10人或100人,再加上你的系统复杂,有很多JavaBeans,假设有30个,那么这下子100个并发请求来,就有3000个Java对象创建,然后下一批有来一次100个请求,这象潮水一样。

每次请求产生的3000个对象会继续占用内存,不会被垃圾回收机制回收,因为垃圾回收机制只有等到内存剩余5%才启动,这样,你的内存无论多大,取决于访问量,总会被耗光,最后垃圾回收出来收拾残局,你的业务系统被暂停甚至缓慢。

所以,这里需要有资源控制,将内存能够控制住,不要被无限消耗,最后导致垃圾回收启动,造成系统好像死机。


控制资源就是使用Pool或Cache来控制,Spring/JdonFramework下可自行加入; EJB已经默认加入了。

这也是我一直反对使用Jsp+JavaBeans来写复杂或大访问量的系统,至于如何控制服务器资源,只有数据库连接池是不够的,因为Bean才是真正的资源消耗重点。

如果你理论上属于无知,又狂热追求Spring这些新玩艺(当初),那么,即使你使用Spring,性能还是和Jsp+JavaBeans一样,在大访问量情况下经常死机,因为Spring里面需要手工配置Pool或Cache这些资源控制机制。
如果说Java比C方便,因为对象使用之后不需要清理,那么有了Ioc/DI依赖注射以后,Java中对象使用之前也不需要创建了。
spring 的好处,不用创建javabean对象了。
posted on 2007-10-30 13:53 zongxing 阅读(692) 评论(0)  编辑  收藏 所属分类: java

只有注册用户登录后才能发表评论。


网站导航: