как создать плагин для веб-приложения, чтобы рассчитать время выполнения каждого вызванного метода - PullRequest
0 голосов
/ 11 октября 2011

Файл моего приложения (EAR) состоит из комбинации EJB и WAR. FrameWork - это JSF, а IDE - это сервер приложений Netbeans 6.9.1, это glassfich V2.x. Я хочу рассчитать время выполнения для каждого вызываемого метода в моем приложении. Я просмотрел так много блогов. большинство из них предложили использовать АОП. но никто не говорит мне, как настроить и как использовать его в моем приложении. Кто-нибудь может мне сказать, что это обидно? У меня есть некоторый код здесь, и я использовал AOP и JAMon для расчета времени выполнения метода. но я запутался, как настроить это, потому что для каждого вызова метода этот вызов должен вызываться для того, что делать, я не знаю. Кто-нибудь может дать некоторые предложения по этому вопросу. Если у вас есть какие-либо дополнительные детали, чтобы ответить на это, я предоставлю. Код:

public class PerformanceMonitorIncptr implements MethodInterceptor{

/** Creates a new instance of PerformanceMonitorIncptr */
public PerformanceMonitorIncptr() {
}
public Object invoke(MethodInvocation mi) throws Throwable {
    String mName = mi.getMethod().getDeclaringClass().getName() + "." + mi.
            getMethod().getName();
    Monitor mon = MonitorFactory.start(mName);
//    long l = System.currentTimeMillis();
    Object returnValue = null;
    try {
        returnValue = mi.proceed();
    } finally {
        mon.stop();
        System.out.println(mon);
    }
    System.out.println(mName);
//    System.out.println(l - System.currentTimeMillis());
    return returnValue;

 }
}

Ответы [ 2 ]

1 голос
/ 11 октября 2011

АОП лучше всего подходит здесь.

Вам необходимо настроить @PointCut @Around для каждого метода, в который вы хотите записать время выполнения

Посмотрите этот учебник.

Обновление

Я надеюсь, что 20 методов, о которых вы говорите / могут быть, являются методами Spring Service, и вам вообще не нужно их изменять, вам просто нужно настроить @Aspect, который будет включать все методы. читать дальше

1 голос
/ 11 октября 2011

AOP - это решение.

Но зачем вам писать это самостоятельно.

Использовать Javamelody -> Документация по настройке EJB .

Мы используемэто с весны, и это здорово.Существуют также такие решения, как AppDynamics, DynaTrace, NewRelic, JXInsight, CorrelSense, Nastel.Что касается меня, Javamelody является бесплатным, открытым исходным кодом и очень прост в использовании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...