Java 获取垃圾回收队列长度
Java 大约 901 字反射获取
Java 8
及之前可以使用反射,获取Finalizer
中的queue
字段,然后获取长度。
但Java 9
模块化之后不可用。
try {
Class<?> finalizerClass = Class.forName("java.lang.ref.Finalizer");
Field queueStaticField = finalizerClass.getDeclaredField("queue");
queueStaticField.setAccessible(true);
ReferenceQueue<Object> referenceQueue = (ReferenceQueue) queueStaticField.get(null);
Field queueLengthField = ReferenceQueue.class.getDeclaredField("queueLength");
queueLengthField.setAccessible(true);
long queueLength = (long) queueLengthField.get(referenceQueue);
System.out.format(LocalDateTime.now() + " There are %d references in the queue---%d%n", queueLength, ManagementFactory.getMemoryMXBean().getObjectPendingFinalizationCount());
} catch (Exception e) {
e.printStackTrace();
}
MXBean
使用Management Extension Bean
获取待回收对象的个数。
ManagementFactory.getMemoryMXBean().getObjectPendingFinalizationCount()
阅读 264 · 发布于 2023-06-20
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
macOS 解决 ApacheDirectoryStudio 无法启动问题阅读 474
-
走进 Spring Boot 第一步之 Java Properties 类阅读 2618
-
Kubernetes 包管理器 Helm阅读 1128
-
lanyus激活时IDEA提示your activation code could not be validated error 1653219阅读 276280
-
Spring Boot 3 新增 ControllerAdvice 错误处理类 ProblemDetail阅读 681
-
Linux 之 -bash pecl command not found 的解决方法阅读 4315
-
配置 Angular 10 运行环境阅读 1895
-
Windows10 关闭子系统提示音阅读 1385
-
HTML 输入框 input 清空按钮阅读 222
-
设计模式之观察者模式阅读 2090