2

我想知道我是否启动了一个java虚拟机:

-Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=256m 
-XX:+UseParallelGC -XX:ParallelGCThreads=4 -XX:+UseParallelOldGC 
-XX:LargePageSizeInBytes=4m -XX:-BindGCTaskThreadsToCPUs 

所以我用 -Xms 等于 -Xmx 启动服务器,我的 java OS 进程将永远“持有”来自操作系统的内存?所以这个 JVM 将有 2GB 的空间,如果操作系统有它,那么它将允许进程启动,否则不会。

JVM启动后是否有可能使用2GB的操作系统的交换内存?

(因此,如果它最初在不使用交换内存的情况下启动)

4

1 回答 1

5

这将在启动时使用大约 2400 MB 的虚拟内存。它从不归还虚拟内存。它可以归还主内存,但很少这样做。

JVM启动后是否有可能使用2GB的操作系统的交换内存?

技术上是的,但实际上这是一个非常糟糕的主意。GC 执行时假定它可以随机访问所有内存。如果您的 JVM 开始交换,它可能会停止很长一段时间(很多分钟),甚至会挂起机器。

鉴于您可以以大约 200 美元的价格购买 32 GB,因此购买足够的内存以满足您的需求通​​常更简单。

于 2012-12-19T20:45:52.033 回答