我使用以下命令启动Java进程:
java -Xmx32m -jar winstone-lite.jar --warfile = myWarFile.war
它不是使用我指定的内存量,而是分配144m。
编辑: 当我说分配时,我的意思是当我看到“顶部”进程时,我看到144m作为使用的内存量。
我正在使用http://www.oracle.com/technetwork/java/embedded/documentation/index.html当前版本。
我想如果我的应用程序需要更多内存,那么分配jvm就会崩溃。
答案 0 :(得分:3)
-Xmx
只是告诉JVM它可以为其内部堆使用多少内存。
JVM需要内存用于其他目的(永久生成,临时空间等),再加上每个二进制文件需要空间来存放自己的二进制代码,加上任何库/ DLL / .so它都会加载。
你引用的144 MiB可能至少包含其他一些内存用途。
您是如何衡量内存使用情况的?在使用虚拟内存的现代操作系统中,测量进程的内存使用量并不是很简单,也不能表示为单个值。