如何找出哪种方法需要花费很多时间?

2022-09-02 22:21:57

我的一个组件需要花费太多时间来执行。它调用许多服务,而这些服务又调用许多 dao 方法。现在,有没有办法获取它所调用的每个方法所花费的时间。
我不想在每种方法之前和之后都写来计算时间,因为方法太多了。
我想我可能需要使用拦截器,或者可能是任何分析器都可以做到这一点。我不确定,请帮忙。System.currentmillis


答案 1

使用JDK应该附带的(如果我没记错的话)。它是JVM的GUI,并且具有非常好的功能。查看其功能,还有一些屏幕截图...jvisualvm

您可以按照以下步骤将其集成为 eclipse 中的启动器 步骤以集成到 eclipse 中


答案 2

不要把它看作是衡量发现问题的时间。

利用它的缓慢来暴露它。只需使用与无限循环相同的方法即可。

也就是说,在它很慢的时候暂停几次,每次检查每个线程的调用堆栈。有罪的方法和代码行将出现在多个样本上。检查这篇文章的最后一段

以下是有关其工作原理的更多信息。