gpt4 book ai didi

java - 有没有一种简单的方法来获取Java中特定类的所有对象实例

转载 作者:太空狗 更新时间:2023-10-29 22:39:09 25 4
gpt4 key购买 nike

目前我正在开发一个 Java 代理来收集内存统计信息。在 instrumentation API 的帮助下我可以掌握这些类(并操纵它们)。使用纯 Java,我可以估计每个对象所使用的资源。到目前为止,还不错。

我现在面临的问题是“如何获取特定类的每个对象实例”。我可以进行字节码操作以获取对象实例,但我希望有另一个我不知道的 API,它可以帮助我实现我的目标,而无需执行如此繁重的侵入性步骤。最后,性能影响应该保持在最低限度。有什么想法吗?

最佳答案

Eclipse 中的调试器可以show you all the instances of a class ,所以我查看了 Eclipse 的源代码。 Eclipse 使用 Java Debug Wire Protocol ,它允许您(自 Java 6 起)查找所请求类的所有实例。如果您想走这条路,请获取 Eclipse 源代码的副本并检查 org.eclipse.jdi.internal.ReferenceTypeImplinstances 方法。

一个更简单的方法是使用 Java Debug Interface .注意 ReferenceType.instances方法。

我仍然没有弄清楚如何使用 JDI 连接到正在运行的进程以及如何获取 ReferenceType 的实例。 JDK 包含几个 examples ,所以我确信这是可行的。

关于java - 有没有一种简单的方法来获取Java中特定类的所有对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1947122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com