2010-11-22 46 views
0

我开始在Java程序使用以下命令的JVM:为什么使用更多的内存比我分配

的Java -Xmx32m罐子温斯顿 - lite.jar --warfile = myWarFile.war

而不是使用我指定的内存量,它仍然分配144米。

编辑: 当我说分配,我的意思是当我看“顶”的过程中,我看到144m的内存使用量。

我正在使用http://www.oracle.com/technetwork/java/embedded/documentation/index.html当前版本。

我会想,如果我的应用程序需要更多的内存比我分配的jvm会崩溃。

回答

3

-Xmx只是告诉JVM有多少内存可用于其内部堆。

JVM需要内存用于其他目的(永久生成,临时空间等),像每个二进制文件一样,它需要空间来存储它自己的二进制代码,以及它加载的任何库/ DLL/.so。

您引用的144个MiB可能至少包含其中一些其他内存用途。

你是如何测量内存使用量的?在使用虚拟内存的现代操作系统上,测量进程的内存使用情况并不十分简单,并且不能表示为单个值。

+0

我从顶层命令获得144米。操作系统是Ubuntu的。 – predhme 2010-11-22 16:40:05

相关问题