1. JVM環境參數怎麼配置
典型JVM參數設置:
java -Xmx3550m -Xms3550m -Xmn2g -Xss128k
-Xmx3550m:設置JVM最大可用內存為3550M。
-Xms3550m:設置JVM促使內存為3550m。此值可以設置與-Xmx相同,以避免每次垃圾回收完成後JVM重新分配內存。
-Xmn2g:設置年輕代大小為2G。整個堆大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小為64m,所以增大年輕代後,將會減小年老代大小。此值對系統性能影響較大,Sun官方推薦配置為整個堆的3/8。
-Xss128k:設置每個線程的堆棧大小。JDK5.0以後每個線程堆棧大小為1M,以前每個線程堆棧大小為256K。更具應用的線程所需內存大小進行調整。在相同物理內存下,減小這個值能生成更多的線程。但是操作系統對一個進程內的線程數還是有限制的,不能無限生成,經驗值在3000~5000左右。
java -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0
-XX:NewRatio=4:設置年輕代(包括Eden和兩個Survivor區)與年老代的比值(除去持久代)。設置為4,則年輕代與年老代所佔比值為1:4,年輕代占整個堆棧的1/5
-XX:SurvivorRatio=4:設置年輕代中Eden區與Survivor區的大小比值。設置為4,則兩個Survivor區與一個Eden區的比值為2:4,一個Survivor區占整個年輕代的1/6
-XX:MaxPermSize=16m:設置持久代大小為16m。
-XX:MaxTenuringThreshold=0:設置垃圾最大年齡。如果設置為0的話,則年輕代對象不經過Survivor區,直接進入年老代。對於年老代比較多的應用,可以提高效率。如果將此值設置為一個較大值,則年輕代對象會在Survivor區進行多次復制,這樣可以增加對象再年輕代的存活時間,增加在年輕代即被回收的概論。
2. 如何設置eclipse的jvm
eclipse的jvm設置方法如下:
默認方式啟動Eclipse時,有關啟動時JVM參數是在Eclipse安裝目錄下的eclipse.ini文件中指定的.在命令行下,也可以通過參數-vmargs來達到此目的.其命令格式為:eclipse -vmargs <JVM參數設置>.舉例來說,命令eclipse -vmargs -Xmx512M用來設置Eclipse啟動時JVM的最大堆內存(heap memory)
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
堆內存分配
JVM初始分配的內存由-Xms指定,默認是物理內存的1/64;JVM最大分配的內存由-Xmx指定,默認是物理內存的1/4.默認空餘堆內存小於40%時,JVM就會增大堆直到-Xmx的最大限制;空餘堆內存大於70%時,JVM會減少堆直到 -Xms的最小限制.因此伺服器一般設置-Xms、-Xmx相等以避免在每次GC 後調整堆的大小.
非堆內存分配
JVM使用-XX:PermSize設置非堆內存初始值,默認是物理內存的1/64;由XX:MaxPermSize設置最大非堆內存的大小,默認是物理內存的1/4.
3. Linux裡面JVM內存怎麼設置
jar包啟動時指定對應參數,比如我的工程啟動命令就是這樣的
啟動命令,打碼部分為工程名
常見參數如下
1.-Xms:初始堆大小。只要啟動,就佔用的堆大小。
2.-Xmx:最大堆大小。java.lang.OutOfMemoryError:Java heap這個錯誤可以通過配置-Xms和-Xmx參數來設置。
3.-Xss:棧大小分配。棧是每個線程私有的區域,通常只有幾百K大小,決定了函數調用的深度,而局部變數、參數都分配到棧上。
當出現大量局部變數,遞歸時,會發生棧空間OOM(java.lang.StackOverflowError)之類的錯誤。
4.XX:NewSize:設置新生代大小的絕對值。
5.-XX:NewRatio:設置年輕代和年老代的比值。比如設置為3,則新生代:老年代=1:3,新生代占總heap的1/4。
6.-XX:MaxPermSize:設置持久代大小。
java.lang.OutOfMemoryError:PermGenspace這個OOM錯誤需要合理調大PermSize和MaxPermSize大小。
7.-XX:SurvivorRatio:年輕代中Eden區與兩個Survivor區的比值。注意,Survivor區有form和to兩個。比如設置為8時,那麼eden:form:to=8:1:1。
8.-XX:HeapDumpOnOutOfMemoryError:發生OOM時轉儲堆到文件,這是一個非常好的診斷方法。
9.-XX:HeapDumpPath:導出堆的轉儲文件路徑。
10.-XX:OnOutOfMemoryError:OOM時,執行一個腳本,比如發送郵件報警,重啟程序。後面跟著一個腳本的路徑。
4. 如何設置jvm內存
本文向大家簡單介紹一下進行JVM內存設置幾種方法,安裝Java開發軟體時,默認安裝包含兩個文件夾,一個JDK(Java開發工具箱),一個JRE(Java運行環境,內含JVM),其中JDK內另含一個JRE。如果只是運行Java程序,則JRE已足夠;而JDK則只有開發人員才用到。這里將為大家介紹設置JVM內存分配的幾招。
工具/原料
一台電腦
方法/步驟
-Xmx Java Heap最大值,默認值為物理內存的1/4,最佳設值應該視物理內存大小及計算機內其他內存開銷而定;
-Xms Java Heap初始值,Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留默認值;
-Xmn Java Heap Young區大小,不熟悉最好保留默認值; -Xss 每個線程的Stack大小,不熟悉最好保留默認值;
2. 如何分配JVM內存設置:
(1)當在命令提示符下啟動並使用JVM時(只對當前運行的類Test生效): java -Xmx128m -Xms64m -Xmn32m -Xss16m Test (2)當在集成開發環境下(如eclipse)啟動並使用JVM時:
a. 在eclipse根目錄下打開eclipse.ini,默認內容為(這里設置的是運行當前開發工具的JVM內存分配): -vmargs -Xms40m -Xmx256m
-vmargs表示以下為虛擬機設置參數,可修改其中的參數值,也可添加-Xmn,-Xss,另外,eclipse.ini內還可以設置非堆內存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m.
此處設置的參數值可以通過以下配置在開發工具的狀態欄顯示: 在eclipse根目錄下創建文件options,文件內容為:org.eclipse.ui/perf/showHeapStatus=true
修改eclipse根目錄下的eclipse.ini文件,在開頭處添加如下內容: -debug options -vm javaw.exe
重新啟動eclipse,就可以看到下方狀態條多了JVM信息.
b. 打開eclipse-窗口-首選項-Java-已安裝的JRE(對在當前開發環境中運行的java程序皆生效)
編輯當前使用的JRE,在預設VM參數中輸入:-Xmx128m -Xms64m -Xmn32m -Xss16m
c. 打開eclipse-運行-運行-Java應用程序(只對所設置的java類生效) 選定需設置內存分配的類-自變數,在VM自變數中輸入:-Xmx128m -Xms64m
選定需設置內存分配的類-自變數,在VM自變數中輸入:-Xmx128m -Xms64m -Xmn32m -Xss16m
注:如果在同一開發環境中同時進行了b和c設置,則b設置生效,c設置無效,如:
開發環境的設置為:-Xmx256m,而類Test的設置為:-Xmx128m -Xms64m,則運行Test時生效的設置為: -Xmx256m -Xms64m
(3)當在伺服器環境下(如Tomcat)啟動並使用JVM時(對當前伺服器環境下所以Java程序生效): a. 設置環境變數: 變數名:CATALINA_OPTS
變數值:-Xmx128m -Xms64m -Xmn32m -Xss16m
3
b. 打開Tomcat根目錄下的bin文件夾,編輯catalina.bat,將其中
的%CATALINA_OPTS%(共有四處)替換為:-Xmx128m -Xms64m -Xmn32m -Xss16m
5. 如何設置Java虛擬機JVM啟動內存參數
Tomcat默認的Java虛擬機JVM啟動內存參數大約只有64MB或者128MB,非常小,遠遠沒有利用現在伺服器的強大內存,所以要設置Java虛擬機JVM啟動內存參數。具體設置方法為:
Tomcat修改TOMCAT_HOME/bin/catalina.bat,在[echo Using CATALINA_BASE:
"%CATALINA_BASE%"] 上面加入,比如:
set JAVA_OPTS= -server -Xms1536m -Xmx1536m或者JAVA_OPTS="-server -Xms1536m
-Xmx1536m",
伺服器模式參數-server不加也可以 ,就變成
set JAVA_OPTS= -Xms1536m -Xmx1536m或者JAVA_OPTS=" -Xms1536m -Xmx1536m",
1536m只是舉個例子,具體可以在DOS命令窗口中測試能使用多大的Java虛擬機內存,能顯示JDK/JRE/JVM版本號的就說明能使用命令中設置的Java虛擬機內存,如執行
Java -Xmx1280m -version;
Java -Xmx1408m -version;
Java -Xmx1536m -version;
Java -Xmx1664m -version;
Java -Xmx2048m -version;
比如在下列DOS命令窗口中執行java -Xmx1024m
-version,顯示出JDK/JRE/JVM版本號,說明最大能使用1024MB的Java虛擬機內存:
等等,但是JVM啟動內存參數也不可能無限增大,因為他受限於物理內存和操作系統的限制,Windows操作系統下一般可以使用1.6GB左右的Java虛擬機內存,有些JDK如Jrockit可能最大可達1.9GB左右,此外,Linux、小型機AIX等情況可以較大。
6. 如何設置JVM參數
設置eclipse jvm參數
打開Eclipse 或者 MyEclipse
打開 Windows -> Preferences -> Java -> Installed JREs
在 Default VM Arguments輸入框內輸入: -Xms512m -Xmx512m
解釋:
-Xms是設置java虛擬機的最小分配內存;-Xmx則是最大分配內存;512m為內存空間
一般-Xmx設置為你電腦物理內存的1/4,而把-Xms和 -Xmx設置為一樣,
其實你可以設置得更大一些,只要系統能分配足夠的內存就可以了,如果設置過大系統會提示你的。
7. java(jvm)內存怎麼設置。網上的看不懂啊。你還是告訴一步一步怎麼操作吧,在線等
java本身的內存是沒法設置的,只能設置java虛擬機或者運行java項目的伺服器的內存,而前者是在開發工具中設置的,後者是在伺服器的配置文件中進行設置的
你這個目測是啟動jvm的東西報的錯,應該是少了一個文件或者是文件路徑錯誤,使工具啟動jvm失敗,與jvm的內存沒有關系,如果有條件,推薦用eclipse
8. 如何在maven環境中設置JVM參數
在maven環境中設置JVM參數的方法:
1.建立遠程調試,埠為4000的設定為:
set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000
注意:suspend最好設定為n.設定上述參數後,在eclipse中新建遠程調試,設置埠為4000,這樣通過jetty:run啟動系統時就可以進行遠程調試了。
2.解決自動熱部署時java.lang.OutOfMemoryError: PermGen space問題解決這一問題只需要增大PermGen區,默認為 64m,設置方法為:
set MAVEN_OPTS=-XX:MaxPermSize=128M
maven簡介:
Maven項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的軟體項目管理工具。
Maven 除了以程序構建能力為特色之外,還提供高級項目管理工具。由於 Maven 的預設構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目。由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目發文時使用 Maven,而且公司項目採用 Maven 的比例在持續增長。
JVM簡介:
JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用於計算設備的規范,它是一個虛構出來的計算機,是通過在實際的計算機上模擬模擬各種計算機功能來實現的。
原理:JVM是java的核心和基礎,在java編譯器和os平台之間的虛擬處理器。它是一種基於下層的操作系統和硬體平台並利用軟體方法來實現的抽象的計算機,可以在上面執行java的位元組碼程序。
java編譯器只需面向JVM,生成JVM能理解的代碼或位元組碼文件。Java源文件經編譯器,編譯成位元組碼程序,通過JVM將每一條指令翻譯成不同平台機器碼,通過特定平台運行。