繁体   English   中英

为什么看起来-Xms和-Xmx对Windows中Java的内存使用没有任何作用?

[英]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的提交。

这是Microsoft的页面,解释每列的含义。

内存-专用工作集:工作集的子集,专门描述一个进程正在使用的内存量,其他进程无法共享该内存。”

内存-提交大小:保留供进程使用的虚拟内存量。”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM