2010-10-06 50 views
1

我執行以下命令:Java:選項-Xms不會立即應用?

java -Xms1024M -Xmx1024M mypackage.MyClass 

我預計資源由JVM立即捕捉,但其實我的資源管理器顯示,7.2M由JVM抓獲。

有誰知道是什麼原因?

PS: 文檔(男子JAVA)說,有關下列選項:

-Xmsn

指定初始大小,以字節爲單位的內存分配 池。該值必須是大於1MB的1024的倍數。 附加字母k或K表示千字節,或m或M至 表示兆字節。基於系統配置,在運行時間 處選擇默認值。欲瞭解更多信息,請參閱 熱點人體工程學 例子:

-Xms6291456

-Xms6144k

-Xms6m

編輯:

java -version 

回報:

java version "1.6.0_18" 
OpenJDK Runtime Environment (IcedTea6 1.8.1) (6b18-1.8.1-0ubuntu1~9.10.1) 
OpenJDK Server VM (build 16.0-b13, mixed mode) 

OS:9.10 - 業報考拉

+0

的最小尺寸指示到JVM這個大小的內存自由支配。它仍然會進行一些資源整理,但是如果有一半的機會,它會消耗相當快的內存量。但是,它仍然不會分配內存,直到它有用。注意:它會立即分配虛擬內存。 – 2010-10-06 21:12:16

回答

2

注意,文件並沒有說「G」是允許的後綴。試用1024M而不是1G。

+0

效果完全一樣,我重寫了這個問題。 – Tim 2010-10-06 19:59:27

0

堆大小不控制使用多少內存,只有多少資源可用以及需要完成多少垃圾回收。 VM可以使用小於或大於最大和最小堆大小。如何找出你想要的堆更多的信息,看看這個線程

how to choose the jvm heap size?