java設置啟動內存參數,Java內存參數

本文目錄一覽:

如何修改jvm啟動參數

用java命令查看。

用java -option進行修改參數。

還有tomcat,eclipse啟動時通過配置文件載入的。

詳細如下:

安裝Java開發軟體時,默認安裝包含兩個文件夾,一個JDK(Java開發工具箱),一個JRE(Java運行環境,內含JVM),其中JDK內另含一個JRE。如果只是運行Java程序,則JRE已足夠;而JDK則只有開發人員才用到。

一、配置JVM內存

1.配置JVM內存的參數

-XmxJavaHeap最大值,默認值為物理內存的1/4,最佳設值應該視物理內存大小及計算機內其他內存開銷而定;

-XmsJavaHeap初始值,Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留默認值;

2.如何配置JVM內存分配:

(1)當在命令提示符下啟動並使用JVM時(只對當前運行的類生效)

java-Xmx128m-Xms64m-Xmn32m-Xss16mTest

(2)當在集成開發環境下(如eclipse)啟動並使用JVM時:

第一種設置方法:

在eclipse根目錄下打開eclipse.ini,默認內容為(這裡設置的是運行當前開發工具的JVM內存分配):

-vmargs-Xms40m-Xmx256m-vmargs表示以下為虛擬機設置參數,可修改其中的參數值,,另外,eclipse.ini內還可以設置非堆內存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。

此處設置的參數值可以通過以下配置在開發工具的狀態欄顯示:

在eclipse根目錄下創建文件options,文件內容為:org.eclipse.ui/perf/showHeapStatus=true

修改eclipse根目錄下的eclipse.ini文件,在開頭處添加如下內容:

-debugoptions-vmjavaw.exe重新啟動eclipse,就可以看到下方狀態條多了JVM信息。

第二種設置方法:

打開eclipse-窗口-首選項-Java-已安裝的JRE(對在當前開發環境中運行的java程序皆生效)

編輯當前使用的JRE,在預設VM參數中輸入:-Xmx128m-Xms64m-Xmn32m-Xss16m

第三種設置方法:

打開eclipse-運行-運行-Java應用程序(只對所設置的java類生效)

選定需設置內存分配的類-自變數,在VM自變數中輸入:-Xmx128m-Xms64m-Xmn32m-Xss16m

註:如果在同一開發環境中同時進行了第二種和第三種設置,則第二種設置生效,第三種設置無效,如:

開發環境的設置為:-Xmx256m,而類Test的設置為:-Xmx128m-Xms64m,則運行Test時生效的設置為:

-Xmx256m-Xms64m

(3)當在伺服器環境下(如Tomcat)啟動並使用JVM時(對當前伺服器環境下所以Java程序生效):

a.設置環境變數:

變數名:CATALINA_OPTS

變數值:-Xmx128m-Xms64m-Xmn32m-Xss16m

b.打開Tomcat根目錄下的bin文件夾,編輯catalina.bat,將其中的%CATALINA_OPTS%(共有四處)替換為:-Xmx128m-Xms64m-Xmn32m-Xss16m

二、查看配置JVM內存信息

Runtime.getRuntime().maxMemory();//最大可用內存,對應-Xmx

Runtime.getRuntime().freeMemory();//當前JVM空閑內存

Runtime.getRuntime().totalMemory();//當前JVM佔用的內存總數,其值相當於當前JVM已使用的內存及freeMemory()的總和

關於maxMemory(),freeMemory()和totalMemory():

maxMemory()為JVM的最大可用內存,可通過-Xmx設置,默認值為物理內存的1/4,設值不能高於計算機物理內存;

totalMemory()為當前JVM佔用的內存總數,其值相當於當前JVM已使用的內存及freeMemory()的總和,會隨著JVM使用內存的增加而增加;

freeMemory()為當前JVM空閑內存,因為JVM只有在需要內存時才佔用物理內存使用,所以freeMemory()的值一般情況下都很小,而JVM實際可用內存並不等於freeMemory(),而應該等於maxMemory()-totalMemory()+freeMemory()。及其配置JVM內存分配。

怎樣增加java執行內存?

方法如下:\x0d\x0a1、打開eclipse配置文件eclipse.ini,更改把-Xmx(其數值代表jvm可以使用的最大內存數)\x0d\x0a2、運行java程序時,選擇run-run configuration-arguments,輸入-Xms100M -Xmx800M(-Xms代表jvm啟動時分配的內存大小,-Xmx代表可最大分配多少內存)。\x0d\x0a\x0d\x0a3、如果修改web伺服器的內存可以通過window-preference-myeclipse-servers-伺服器名稱-伺服器名稱+版本-jdk下面修改內存。\x0d\x0a例如:-Xms512m -Xmx1024m -XX:PermSize=256m

如何設置Java虛擬機JVM啟動內存參數

-Xms128M -Xmx512M -XX:PermSize=2048m -XX:MaxPermSize=2048m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC

jdk 1.6,機器內存8g

如何設置java內存限制

1、ide一般run時可設置內存大小,如eclipse設置如下

eclipse安裝後,在安裝目錄有個config.ini文件,內容如下:

-vmargs

-Xms40m

-Xmx256m

或是 其實也很簡單。打開Eclipse包,在Contents/MacOS 目錄下有一個 eclipse.ini 文件,

用編輯工具打開他,把Xms128m更改成Xms256m。

這個文件用來配置eclipse啟動時候的內存分配方案,Xms是初始化內存大小,Xmx是最大可使用內存大小,這個默認的配置是eclipse資源消耗最小化的配置。如果你的項目比較大,這個配置必須改,一般適當調整為128,384即可,若項目更大一些則調整的再大一些,根據實際情況決定。這個參數配置的大小很關鍵,太小,eclipse垃圾回收會過於頻繁導致很慢,或者內存堆棧溢出而崩潰。太大,eclipse會吃掉大量內存,垃圾回收周期變長,但每次回收會很慢,影響使用。所以你在配置的時候需要權衡,嘗試!

2、web可以在web容器中設置相關大小

3、一般寫代碼時,如果會用到大內存時,要注意。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/183983.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-25 05:50
下一篇 2024-11-25 05:50

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29

發表回復

登錄後才能評論