日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

JVM Perm方法存儲區,后面有一點跑題

系統 2711 0

?

      在一個jvm實例的內部,類型信息被存儲在一個稱為方法區的內存邏輯區中。類型信息是由類加載器在類加載時從類文件中提取出來的。類(靜態)變量也存儲在方法區中
如果上面寫的是對的,那么在我們靜態變量用多了的情況下,就會出現java.lang.OutOfMemoryError: PermGen space

所以那個permSize一直不釋放是合理的,因為static變量JVM一般情況下是不會去回收。我剛才看了一下我們狀態的所有JAR包也只有一百二十幾M,但是為什么我們設年MaxPermSize為占用百分之九十幾?而且一直在往上增長,這就說明初始化加載class的時候加載class字節碼,meta信息之外,Perm方法區會隨著程序的運行而不斷增大,這時候,問題就來了。所以static變量得慎用啊。。。。。

    
      
        
          除了上述的內容會存儲在方法存儲區或永久存儲區之外(Pernanet Gerneration)
        
      
    
      
        
          ,還有:要加載類的信息(名稱,修飾符等),類中的靜態變量,類中定義為final
        
      
    
      
        
          類型的常量,類中的Field信息,類中的方法,當開發人員在程序中通過Class對象
        
      
    
      
        
          的getName,isInterface等方法來獲取信息時,這些數據都來源瑜方法區,
        
      
    
      
        
          在一定的條件下也會被GC,當方法區域要使用的內存超過其允許的大小時,
        
      
    
      
        
          會拋出OutOfMemory的錯誤信息。
        
      
      ?
    
      ?
    
      static成員變量得慎用 有木有? 特別是那種會一直增加的static成員變量
    
      ?
    
      那有的東西必須保存在內存中,那怎么辦?除了perm永久方法存儲區之外,不是不家堆棧嗎?
    
      ?
    
      那我們就可以把我們的程序設置單實例的,或者搞一個工廠方法去取這個類的實例就OK了。
    
      ?
    
      說到單實例,必須說明一點,我們靠Spring去維護單實例不靠譜,Spring的單實例只限于單個IOC容器內,但是一個JVM中可以存在多個IOC容器,特別是多人開發,然后又是基于JAR包的作合作時,出出問題還搞不清楚到底是哪里的問題。所以。。。。利用Spring來保持程序的單實例可以,但最好這種單例只有某個模塊用,而不會涉及到別的部門會引用到的情況,比如那個狀態中的緩存隊列用Spring來維持它的單實例,從設計的角度看,這是不靠譜的,一個服務需要單實例,需要從設計的角度讓其去單實例,而不是基于使用者合理的使用Spring的基礎上去控制其單實例,如果有一個人new ApplicationContext(.. ) 創建了一個IOC怎么辦?那不就造成了上次狀態造成的OOM了嗎?
    
      ?
    
      保證唯一實例的方法多的去了,工廠行嗎?單實例行嗎?
    

大笑

      ?
    
      ?
    
      隨感一下。
    
      ?
    
      ?
    
      ?
    

JVM Perm方法存儲區,后面有一點跑題


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 河津市| 上蔡县| 丹棱县| 富蕴县| 习水县| 上思县| 蚌埠市| 赣州市| 新晃| 大邑县| 红桥区| 三都| 常德市| 洪江市| 南木林县| 淮安市| 赣榆县| 连云港市| 确山县| 安图县| 丽水市| 财经| 交口县| 河西区| 德令哈市| 丰县| 外汇| 太康县| 南和县| 崇仁县| 闽清县| 仲巴县| 温州市| 新郑市| 徐汇区| 辰溪县| 长岛县| 芦山县| 吴堡县| 桦南县| 南丰县|