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 閱讀(706) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 滦南县| 赫章县| 望江县| 页游| 阳原县| 信丰县| 丰县| 云浮市| 伊金霍洛旗| 黑龙江省| 安溪县| 宿迁市| 许昌市| 聊城市| 利辛县| 凤凰县| 赫章县| 凯里市| 阳新县| 阿城市| 抚州市| 噶尔县| 义乌市| 龙里县| 连城县| 嘉兴市| 绥滨县| 滨州市| 宁津县| 鲁甸县| 呼图壁县| 梨树县| 辽中县| 贵南县| 宜兴市| 太仆寺旗| 宜宾县| 阳曲县| 阿坝县| 贵港市| 海丰县|