有没有一种工具或方法可以快速测试每行代码的java类/方法?

有没有一种工具或方法可以快速测试每行代码的java类/方法?,java,spring-boot,performance,optimization,Java,Spring Boot,Performance,Optimization,在工作中,我经常使用弹簧靴后端。我需要不时地优化方法以加快运行速度,这样用户就不必等待,请求也不会超时 观看此视频后:。我非常喜欢每行代码显示执行时间的想法,而不是完整的方法。我开始搜索类似的Java工具,但什么也没找到 所以我开始考虑自己的解决方案 我创建了一个类,该类接受一个.java文件,并以某种方式对其进行编辑,即每行之后都有一个时间打印,对其进行编译并将其加载到代码中以执行它。在执行之前,我重定向System.out流以捕获时间打印。这种方法很有效,但只适用于没有依赖关系的独立类,而对

在工作中,我经常使用弹簧靴后端。我需要不时地优化方法以加快运行速度,这样用户就不必等待,请求也不会超时

观看此视频后:。我非常喜欢每行代码显示执行时间的想法,而不是完整的方法。我开始搜索类似的Java工具,但什么也没找到

所以我开始考虑自己的解决方案

我创建了一个类,该类接受一个.java文件,并以某种方式对其进行编辑,即每行之后都有一个时间打印,对其进行编译并将其加载到代码中以执行它。在执行之前,我重定向System.out流以捕获时间打印。这种方法很有效,但只适用于没有依赖关系的独立类,而对于依赖于其他服务和存储库的Sring服务,它并不适用于我。所以我考虑用我编辑的类替换运行时的类,这在java(?)中并不真正起作用。我还尝试使用InvocationHandler捕获服务的方法调用,并将它们路由到我编辑的类,但我仍然需要依赖项,显然方法代理只对接口起作用

我的目标是创建方法和类注释,它们将标记要测试的类/方法。当调用它们时,它们的时间将被记录下来,并作为格式化的.html文件提供给一个公开的端点

我现在有点不知所措,可能需要一些帮助。

提前感谢。

您要找的是一个档案器。大多数方法都可以告诉您每个方法的执行时间和内存使用情况,它们被标识为“热点”——大部分时间都花在这里,或者大部分内存都消耗在这里

Netbeans具有内置的探查器功能:

另外,请看一下VisualVM:


如果您搜索“Java profiler”,也会有其他商业产品可用。

在每行打印计时听起来不是一个测量运行时间的好主意,因为打印到控制台/文件比实际行(通常)花费更多的时间。这会在一定程度上影响测量。每次打印后我都会重置计时器,因此我认为这不是一个真正的问题。它是否也会分析库方法的执行时间?如果方法A调用库方法B,那么方法A的执行时间将包括执行所有代码以及它调用的任何其他代码(无论是您的代码还是库代码)所花费的时间。通常,不管是您的代码还是库中的代码,该工具都会给您一个方法一个方法的分解。归根结底,不管您是否编写了所有Java代码(工具不知道区别),这都是可以接受的!谢谢!