为什么使用更多的内存比我分配
问题描述:
我开始在Java程序使用以下命令的JVM:为什么使用更多的内存比我分配
的Java -Xmx32m罐子温斯顿 - lite.jar --warfile = myWarFile.war
而不是使用我指定的内存量,它仍然分配144米。
编辑: 当我说分配,我的意思是当我看“顶”的过程中,我看到144m的内存使用量。
我正在使用http://www.oracle.com/technetwork/java/embedded/documentation/index.html当前版本。
我会想,如果我的应用程序需要更多的内存比我分配的jvm会崩溃。
答
-Xmx
只是告诉JVM有多少内存可用于其内部堆。
JVM需要内存用于其他目的(永久生成,临时空间等),像每个二进制文件一样,它需要空间来存储它自己的二进制代码,以及它加载的任何库/ DLL/.so。
您引用的144个MiB可能至少包含其中一些其他内存用途。
你是如何测量内存使用量的?在使用虚拟内存的现代操作系统上,测量进程的内存使用情况并不十分简单,并且不能表示为单个值。
我从顶层命令获得144米。操作系统是Ubuntu的。 – predhme 2010-11-22 16:40:05