如何写代码查看内存中的java对象

今天接到boss要求需要写代码分析每一个jsp页面中都调用了哪些我们自己开发类(可能是boss好奇,不过我想更多的是处于对项目的管理,毕竟经年累月都有几千个java文件了)。
我们的项目使用的是SSH结构,他就是想得到下面样式的一个表:
PAGE                            ACTION                  SERVICE                        DAO
XXXsearch.jsp       XXXaction1.java         AAAservice.java           AAAdao.java 
                                                                                                   BBBdao.java 
                                                               BBBservice.java           DDDdao.java 
                                                                                                   YYYdao.java
也就是说在XXXsearch.jsp用是XXXaction1,XXXaction1中用了两个service分别是AAAservice和BBBservice,而AAAservice中又用了两个dao(AAAdao、BBBdao),BBBservice中又用了两个dao(DDDdao、YYYdao)。
如果纯粹使用文字分析的方法現在是可以做得出来( 还好命名都很规范),但是我想试试直接从内存入手得到我当前运行的页面在内存里都引用了一些什么对象。就像那些内存分析工具一样可以得到一个当前jvm里面的对象列表和对象的导向图(不知道名称有没有记错,反正就是对象引用的关系图)。
有这方面经验的坛友们请指点一下方向,我该怎么下手?或者有没有相关的开源项目介绍一下?

 

2个回答

那种就要用到JVMTI来实现

你这个需求其实是要列出函数调用顺序,内存分析无法得到得到你要的信息。
我觉得可以用AOP之类的技术在调用点上打出调用信息,然后用脚本分析输出。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问