性能:使用AspectJ记录所有方法的运行时间

时间:2014-12-02 15:25:24

标签: performance aspectj logback

我需要使用logback和AspectJ将应用程序中每个方法的运行时间记录到数据库中。它是一个企业应用程序,大约有几千个类,平均每个类中有大约10个方法。

我是否在这里遇到重大的性能问题?我知道记录每一种方法都是最重要的,但让我们暂时看看它。

1 个答案:

答案 0 :(得分:2)

每个类有大约10个方法的数千个类,你必须为所有类实现跟踪日志记录?

简短回答:

答案很长: 见到了。
您的表现会(或多或少)受到严重影响。要记录方法的运行时间(最低限度),需要花费时间在方法入口和出口处的方法,构造一个字符串并将其发送到日志记录框架。根据您的成千上万的方法所做的事情,对于其中许多方法而言,这可能比实际执行方法更耗时 - 方法越小,开销就越大。

我不能代表您的应用程序,但在为我的一个人做这个时,实际的网络性能与激活的跟踪几乎减半。这是否也适用于您的应用程序或符合您的“主要性能问题”,只有您可以告诉。

因此,我的建议是简单地尝试一下。围绕命名空间中的每个方法编写跟踪建议都可以轻松完成。然后,只需比较跟踪和非跟踪应用程序之间的性能。