我想知道我是否用以下内容启动了一个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开始使用os的交换内存?
(所以如果它最初没有使用交换内存就开始了)
答案 0 :(得分:5)
启动时将使用大约2400 MB的虚拟内存。它永远不会回馈虚拟内存。它可以回馈主存,但很少回复。
是否有可能在JVM启动后以2GB开始使用os的交换内存?
技术是的,但实际上这是一个非常糟糕的主意。 GC执行时假定它可以随机访问所有内存。如果JVM开始交换,它可以长时间停机(很多分钟),甚至可以挂机。
鉴于您可以以200美元的价格购买32 GB,购买足够的内存通常更为简单。