gpt4 book ai didi

java - 如何获取对象的历史记录或跟踪对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:01 34 4
gpt4 key购买 nike

我有一个要求,在我的应用程序中支持大量处理正在发生,在某个时间点由于对象而发生异常。现在我想知道那个对象的整个历史。我的意思是自应用程序启动以来该对象在一段时间内发生的任何事情。

这是否可以通过使用 JMX 或其他任何方式来窥探 Object 的历史?

谢谢

最佳答案

一句话:没有

再多说几句:

JVM 不会保留任何对象超过其当前状态的任何历史记录,除了很少的与垃圾收集相关的信息以及 HotSpot 优化器可能需要的一些方法调用指标。否则将意味着巨大 处理和内存开销。还有粒度问题;您只记录字段更改吗?每个方法调用?方法调用期间的每条 CPU 指令? JVM 简单地采取了简单的方法,并且不执行上述任何操作。

您必须隔离该对象的类和/或特定实例,并记录您自己需要的任何操作。您可能必须手动执行此操作——我还没有找到允许我在运行时插入日志记录代码的字节码检测库...

或者,您可以使用检测探查器,但要做好应对巨大性能下降的准备。

关于java - 如何获取对象的历史记录或跟踪对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11029860/

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