我想知道我是否启动了一个java虚拟机:
-Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=256m
-XX:+UseParallelGC -XX:ParallelGCThreads=4 -XX:+UseParallelOldGC
-XX:LargePageSizeInBytes=4m -XX:-BindGCTaskThreadsToCPUs
Run Code Online (Sandbox Code Playgroud)
所以我用-Xms等于-Xmx启动服务器我java OS进程将从操作系统"保留"内存为好?因此,这个JVM将有2GB的空间,如果操作系统有它,那么它将允许进程启动,否则没有.
有没有可能在JVM启动后用2GB来使用os的交换内存?
(所以如果它最初没有使用交换内存就开始)
这将在启动时使用大约2400 MB的虚拟内存.它永远不会回馈虚拟内存.它可以回馈主存,但很少.
有没有可能在JVM启动后用2GB来使用os的交换内存?
技术是的,但在实践中这是一个非常糟糕的主意.GC执行时假定它可以随机访问所有内存.如果JVM开始交换,它可能会长时间停机(很多分钟)甚至挂起机器.
鉴于您可以以200美元的价格购买32 GB,通常可以根据您的需求购买足够的内存.