![](/img/trans.png)
[英]How to restrict the memory usage of Java application packed in a jar (-Xmx doesn't seem to work) on Windows
[英]Why doesn't it look like -Xms and -Xmx are doing anything to Java's memory usage in Windows?
我正在运行此版本的Java:
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
我正在具有7.5GB内存的m1.large实例中的Amazon EC2的Windows 2008 R2 64位服务器上运行此服务器。
启动Java应用程序时,我使用以下命令行:
java -Xms6G -Xmx6G -server -jar start.jar
我的意图是让Java为其堆保留6GB,以便当我的应用程序运行时,它将能够将其整个数据集加载到内存中。
但是,当我启动该应用程序时,我仅看到任务管理器中使用了1.3GB的内存?
问题是您正在查看任务管理器中显示的默认内存列,即“内存-专用工作集”。 这并不反映实际保留使用的内容。
在任务管理器中,转到“视图”菜单,然后选择“选择列”。 添加“内存-提交大小”列。 您应该看到此列反映了Java保留的堆大小。 在我的测试中,对于-Xms6G命令行,它显示了大约6.6GB的提交。
“ 内存-专用工作集:工作集的子集,专门描述一个进程正在使用的内存量,其他进程无法共享该内存。”
“ 内存-提交大小:保留供进程使用的虚拟内存量。”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.