❶ java64位設置內存大小在哪設置
1.
在eclipse根目錄下打開eclipse.ini,默認內容為(這里設置的是運行當前開發工具的JVM內存分配): -vmargs -Xms40m -Xmx256m -vmargs表示以下為虛擬機設置參數,可修改其中的參數值,也可添加-Xmn,-Xss,另外,eclipse.ini內還可檔喊旦以設置非 堆內存行擾,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
2.
打開eclipse-窗口-首選項-Java-已安裝的JRE(對在當前開發環境中運行的java程序皆生效) 編滲鍵輯當前使用的JRE,在預設VM參數中輸入:-Xmx128m -Xms64m -Xmn32m –Xss16m。
3.
打開eclipse-運行-運行-Java應用程序(只對所設置的java類生效) 選定需設置內存分配的類-自變數,
❷ 關於設置Java虛擬機(JVM)的內存問題
最近做畢設時 遇到了一點小問題 在解析dblp xml文件時(該文件很大 最新版本為 MB) 老是報錯
java lang OutOfMemoryError: Java heap space
最後通過查資料才知道 這是由於JVM堆內存不足造成的 JVM在啟動動的時候一般會設置JVM Heap的值
其初始空間(即 Xms)是物理內存的 / 最大空間( Xmx)不可超過物理內存 在JVM中如果 %的時間是用於GC 且可用的Heap size 不足 %的時候將拋出此異常信息 出現這種問題可以通過修改JVM heap大小解決
如
點擊(此處)折疊或打開
java Xms M Xmx M className
以上設置JVM初始化堆內存為 M 最大可用堆內存為 M
( )在命令行中設置的方法就如上面所述
( )在Eclipse中可以這樣設置
在eclipse的 Run >Run Configurations >Arguments下的VM Arguments中設置
Xms M Xmx M
另外可以使用 java X查看其它JVM參數情況
點擊(此處)折疊或打開
D:work>java X
Xmixed mixed mode execution (default)
Xint interpreted mode execution only
Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
Xnoclassgc disable class garbage collection
Xincgc enable incremental garbage collection
Xloggc:<file> log GC status to a file with time stamps
Xbatch disable background pilation
Xms<size> set initial Java heap size
Xmx<size> set maximum Java heap size
Xss<size> set java thread stack size
Xprof output cpu profiling data
Xfuture enable strictest checks anticipating future default
Xrs rece use of OS signals by Java/VM (see documentation)
Xcheck:jni perform additional checks for JNI functions
Xshare:off do not attempt to use shared class data
Xshare:auto use shared class data if possible (default)
Xshare:on require using shared class data otherwise fail
The X options are non standard and subject to change without notice
可以通過java lang Runtime的一些方法查看jvm的內存使用情況
點擊(此處)折疊或打開
System out println( Total Memory: + Runtime getRuntime() totalMemory() / ( * + MB )
System out println( Free Memory: + Runtime getRuntime() freeMemory() / ( * ) + MB )
System out println( Max Memory: + Runtime getRuntime() maxMemory() / ( * ) + MB )
maxMemory()這個方法返回的是java虛擬機(這個進程)能構從操作系統那裡挖到的最大的內存 以位元組為單位
totalMemory()這個方法返回的是java虛擬機現在已經從操作系統那裡挖過來的內存大小 也就是java虛擬機這個進程當時所佔用的所有內存
freeMemory為當前jvm中沒有使用的內存
附 jvm參數說明 (轉自)
server:一定要作為第一個參數 在多個CPU時性能佳
Xms java Heap初始大小 默認是物理內存的 /
Xmx java heap最大值 建議均設為物理內存的一半 不可超過物理內存
XX:PermSize:設定內存的永久保存區初始大小 預設值為 M (我用visualvm exe查看的)
XX:MaxPermSize:設定內存的永久保存區最大 大小 預設值為 M (我用visualvm exe查看的)
XX:SurvivorRatio= :生還者池的大小 默認是 如果垃圾回收變成了瓶頸 您可以嘗試定製生成池設置
XX:NewSize: 新生成的池的初始大小 預設值為 M
XX:MaxNewSize: 新生成的池的最大大小 預設值為 M
如果 JVM 的堆大小大於 GB 則應該使用值 XX:newSize= m XX:MaxNewSize= m XX:SurvivorRatio= 或者將堆的總大小的 % 到 % 分配給新生成的池 調大新對象區 減少Full GC次數
+XX:AggressiveHeap 會使得 Xms沒有意義 這個參數讓jvm忽略Xmx參數 瘋狂地吃完一個G物理內存 再吃盡一個G的swap
Xss 每個線程的Stack大小 Xss 這使得JBoss每增加一個線程(thread)就會立即消耗 M內存 而最佳值應該是 K 默認值好像是 k
verbose:gc 現實垃圾收集信息
Xloggc:gc log 指定垃圾收集日誌文件
Xmn young generation的heap大小 一般設置為Xmx的 分之一
XX:+UseParNewGC 縮短minor收集的時間
XX:+UseConcMarkSweepGC 縮短major收集的時間 此選項在Heap Size 比較大而且Major收集時間較長的情況下使用更合適
XX:userParNewGC 可用來設置並行收集【多CPU】
XX:ParallelGCThreads 可用來增加並行度【多CPU】
lishixin/Article/program/Java/hx/201311/26103