我有一个正在运行的 JVM。对于时间 t0 和 t1 的 2 个不同时刻,我想知道所有类的所有静态字段的值在 t1 与 t0 时如何变化。
我想到的解决方案:
- 监控/调试/分析所有静态字段写入访问权限。
- 比较在 t0 和 t1 拍摄的 2 个内存快照,以找出字段值的差异。我可以访问 Java VisualVM 和 YourKit 分析器。
我无法找到上述任一问题的答案。
如果可能的话,实现我的目标的最佳方法是什么?
最佳答案
使用 java 调试器,您应该能够在字段值上设置断点,以便每当值更改时调试器就会中断。例如。 Eclipse java调试器有这样的功能(右键单击该字段,选择“切换断点”)。
编辑:如果您想要更多控制(例如编程控制),您可以使用 Btrace 运行您的程序脚本。这些是使用非常精简的 API 的普通 Java 程序,并连接到 JVM。
关于Java:监视静态字段状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28627546/