使用IntelliJ进行DSM分析

时间:2017-01-30 16:28:37

标签: intellij-idea

我目前正在使用IntelliJ IDEA 2016.3.3对Java源代码进行依赖性分析。我已经开始使用Matrix Dependency分析或DSM。例如,我想知道类ComparisonComponent(CC)和ComparisonDescriptor(CD)之间的关系是什么。在下图中,DSM矩阵显示CC依赖于CD,值为6.

http://imgur.com/wR4RRzE“image01”

当试图了解源中的实际含义时,您可以右键单击方块(表示数字6)并单击“查找依赖关系的用法”。返回源代码,选项卡显示在这种情况下,CD类在CC类中使用的位置。如下图所示,它显示该类使用了5次。所有5个地方都很容易找到。

http://imgur.com/uNWePUi“image02”

我已经阅读了Intellij的DSM手册,并且一直在做一些研究但没有成功。我想知道DSM矩阵中的数字6在源代码中实际代表什么。还有其他数字匹配的例子(DSM矩阵编号和实际使用情况),但有些例子的数字实际上相距很远。

我感谢任何帮助!

非常感谢!

Phyllipe

1 个答案:

答案 0 :(得分:1)

数量上的差异是由于DSM对已编译的类文件执行分析,而Find Usages对源文件执行搜索。对类文件的分析是为了提高性能,对源文件的DSM分析会慢很多倍。但是,类文件之间的引用数量与源文件之间的引用数量存在差异。一个例子是源文件中的import语句,这显然不存在于类文件中。还有很多不同之处。

通过在IntelliJ IDEA中的Java源文件上调用View | Show Bytecode,可以查看相应编译类文件的字节码。您可以使用此操作来探索Java源文件和类文件之间的差异。