【发布时间】:2017-04-01 20:17:22
【问题描述】:
我有一些未知的大型企业 Spring 项目,我需要在它上面执行此类任务:
"我有方法A和方法B,在方法A执行过程中,可以 方法 B 被调用?”
我发现 IntelliJ Idea 中有 Method Call Hierarchy 函数。我可以在方法 B 上执行此功能并生成调用层次结构,在其中我可以为方法 A 执行 serarch。不幸的是,IntelliJ 在计算此层次结构期间冻结,因为它太大并且在工作 5 小时后崩溃。
我需要性能比 IntelliJ Idea 更好的 Method Call Hierarchy 实用程序,但我没有找到它。你能帮帮我吗?
【问题讨论】:
-
你真的需要完整的层次结构吗?通过使用“查找定义”和“查找用法”导航,您可能会很好地了解什么是什么。此外,我认为 IntelliJ 可以向您展示包之间的依赖关系,这可能是一个更好的整体开始。
-
我尽可能地将调用层次结构的范围最小化到我感兴趣的最小模块集。即使使用 Find Usages 功能,我也无法想象执行手动搜索。甚至 IntellJ 冻结的方法 B 之上的调用层次结构树的额外大小证明了这个项目是多么复杂/复杂:/
-
等等,你是说单次“查找用法”上的 OOM 吗?另外,你试过给它更多的内存吗?
-
方法调用层次结构实际上是“Find Usages above Find Usages above Find Usages etc.”。它不会在方法 B 上面的单个 Find Usages 期间崩溃,但在第 12 层 Find Usages 之后。我尝试用 4096MB 内存运行 IntelliJ Idea,但它并没有因为内存不足而崩溃。在计算过程中,我一直在监控性能,并且 Idea 中的方法调用层次结构仅在一个线程之上运行(这非常慢),并且在崩溃前 Idea 的内存消耗约为 1700MB。
-
好吧。您可以查看此答案*.com/questions/4951517/… 了解其他一些工具。
标签: java spring intellij-idea analysis