我试图在一些Java基准测试应用程序中找到对象的访问模式。更确切地说,我想要的是能够知道对象的哪个部分被访问以及何时访问。
例如,如果某个应用程序有两个对象,请说a
和b
类型A
和B
(一个相当不现实的假设:P),但是仍然!
现在A看起来像这样
A{
int x;
String y;
B haha;
}
B{
int w;
ArrayList<Integer> someCollection;
}
现在,如果应用程序通过某个函数或其他任何东西直接或间接访问,那么我想跟踪这些访问到最好的级别(例如在someCollection
的情况下,如果我添加一个元素一些对象(原始的或复杂的)取决于班级会改变。
然后我要找的信息就是我会知道对象/子对象是read/written
。
按顺序访问每个对象(如果可能的话,最好的级别) AFIK Java将对象存储为对象图(父对象具有子对象作为子对象的对象图)以进行垃圾回收。是否有任何工具框架/工具可以帮助我访问这些对象图或JVM使用的任何数据结构?我相信(虽然不确定)如果我可以访问这些图表,我将能够实现我想要做的事情!