系統內存不足,java.lang.OutOfMemoryError: Java heap space

  1. 問題:系統內存不足,java.lang.OutOfMemoryError: Java heap space

原因:jdk使用的內存不足

解決方法:(原文鏈接 https://blog.csdn.net/qa962839575/article/details/43605241)

        從上邊的異常信息可以看到,JVM 需要使用的內存已經超過了我們分配給虛擬機可以使用的最大內存。所以問題就轉化爲如何設置eclipse 中jvm 的最大內存。

        一、    嘗試修改Eclipse.ini 文件 (此方法不行)

找到eclipse 目錄下的eclipse.ini 文件,修改下面的內容:

-Xms40m

-Xmx512m

修改後重啓eclipse ,發現根本不起作用。經過後來查閱一些資料,原來這裏設置的最小內存和最大內存是不是給JVM 使用的,這個內存值包含了eclipse 自身使用的內存。

              二、    修改jdk 使用內存(此方法可行)  (本人通過這個方法解決)

找到eclispe 中window->preferences->Java->Installed JRE ,點擊右側的Edit 按鈕,在編輯界面中的 “Default VM Arguments ”選項中,填入如下值即可。

-Xms64m -Xmx128m

              三、修改Run Configurations (此方法可行)

在代碼上右鍵,依次點擊“Run As ”-> “Run Configurations ”,在Arguments 參數中的“VM arguments: ”中填入如下值即可。

-Xms64m -Xmx128m

 

 

 

              Tips: 查詢當前JVM 內存代碼

                     下面是查詢當前JVM 內存大小的代碼,可以測試以上設置後JVM 的內存是否會變化。增加JVM 內存的配置項後,無需重新啓動eclipse 。具體的代碼如下:

                    

public class TestMemory {

 

    /**

      * @param args

      */

    public static void main(String[] args) {

       System. out .println( " 內存信息 :" + toMemoryInfo());

    }

 

    /**

      * 獲取當前 jvm 的內存信息

      *

      * @return

      */

    public static String toMemoryInfo() {

 

       Runtime currRuntime = Runtime.getRuntime ();

       int nFreeMemory = ( int ) (currRuntime.freeMemory() / 1024 / 1024);

       int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024);

       return nFreeMemory + "M/" + nTotalMemory +"M(free/total)" ;

    }

}

 

其他參考:https://blog.csdn.net/lyflyyvip/article/details/82288719

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章