我执行以下命令:
java -Xms1024M -Xmx1024M mypackage.MyClass
我希望JVM立即捕获资源,但事实上我的资源管理器显示JVM捕获了7.2M。
有人知道是什么原因吗?
PS: 文档(man java)说明了以下选项:
-Xmsn
指定内存分配的初始大小(以字节为单位) 池。此值必须是1024的倍数,大于1MB。 附加字母k或K表示千字节,或m或M表示 表示兆字节。在运行时选择默认值 基于系统配置。有关更多信息,请参阅 HotSpot人体工程学 例子:
-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)
操作系统:9.10 - Karmic Koala
答案 0 :(得分:2)
请注意,文档并未说“G”是允许的后缀。尝试使用1024M而不是1G。
答案 1 :(得分:0)
堆大小不能控制使用的内存量,可用资源量以及需要完成的垃圾收集量。 VM可以使用小于或大于最大和最小堆大小。有关如何找到所需堆的更多信息,请查看此主题