有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaG1CG:清理时间长

G1垃圾收集器比默认垃圾收集器好得多,但其清理时间太长,运行3小时后清理27分钟:

SUCCESS
Elapsed time: 186m21.5s
all done, exiting...
[GC concurrent-mark-end, 1626.1982305 secs]
[GC remark, 12.3848395 secs]
[GC cleanup 14G->14G(16G), 1.6514012 secs]

该程序运行在4核处理器上,内存为16G,只使用一个线程(主线程)。一个内核总是很忙,大概是操作系统(Ubuntu Linux,trusty);当程序运行时,系统监视器显示其他3个内核的负载低于100%

该程序是从bash shell启动的。没有其他软件与该程序并行运行

有没有办法减少程序终止后花费的时间


共 (1) 个答案

  1. # 1 楼答案

    在我添加了以下终止进程的代码后,情况变得更好了:

    String command = "kill -9 "
                     + new File("/proc/self").getCanonicalFile().getName();
    Runtime.getRuntime().exec(command);