假设我使用以下参数启动我的Java虚拟机:
-Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m
512m的PermGen空间会增加到1024m内存中,还是它们是其中一部分?换句话说,我的总内存消耗是1536m还是1024m?在后一种情况下,这是否意味着应用程序除了PermGen空间外只有512m可用于其他目的?
如果这个问题揭示了我对PermGen空间的理解不足,请告诉我。;-)
假设我使用以下参数启动我的Java虚拟机:
-Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m
512m的PermGen空间会增加到1024m内存中,还是它们是其中一部分?换句话说,我的总内存消耗是1536m还是1024m?在后一种情况下,这是否意味着应用程序除了PermGen空间外只有512m可用于其他目的?
如果这个问题揭示了我对PermGen空间的理解不足,请告诉我。;-)
-Xms
和-Xmx
参数是指堆内存而PermGen空间则是一个单独的内存池。
换句话说,您的Java应用程序可用的总内存大小将为1.5 GiB而不是1 GiB,并且您将获得完整的一千兆字节的堆分配对象空间。