如何判断JVM使用的是哪种GC回收策略?
RT。最好能分别查看新生代和老年代的回收策略,有没有例如jstat,jinfo这样的命令行工具呢?谢谢!
FIRST
11 years, 6 months ago
Answers
Garbage collector: Name = 'PS MarkSweep', Collections = 324, Total time spent = 12 minutes Garbage collector: Name = 'PS Scavenge', Collections = 1,132, Total time spent = 1 minute
的信息,上面是老生代,下面是新生代。
不过看起来jconsole是图形界面,如果需要命令行的话,
jmap
可以用来输出某个java进程所使用的GC,类似输出如下:
using parallel threads in the new generation. using thread-local object allocation. Concurrent Mark-Sweep GC Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 ...
根据这里提到的
Conc Mark&Sweep
,再
查表
,可以知道新生代使用的是
ParNew GC
,老生代使用的是
ConcurrentMarkSweep GC
。
事实上从表中可以得知新生代和老生代的组合其实是固定的那么几种,而且是双射的,所以只要知道其中一种就能查表得出另外一种。
popopjk
answered 11 years, 6 months ago