|
|
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
Всем привет. Подскажите, может кто-то делал подобные задачи? Пытаюсь понять как с помощью интерцепторов EJB или CDI можно посчитать время выполнения методов, т.е. включить логгирование. Не могу врубиться в логику работы интерцептора, а именно как мне их запустить после выполнения метода. Например создам интерцептор: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Ну и бин на который хочу натравить интерцептор: Код: java 1. 2. 3. Подскажите, как должен быть написан интерцептор, который я хочу натравить на тот же бин, но он должен запускаться в конце вызова любого из методов класса OrderBean, брать из InvocationContext "startTime", который туда положил метод beginTime Код: java 1. и вычислять разность времени? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2015, 18:26 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
alex2808, например так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2015, 18:37 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
base2alex2808, например так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Т.е. ctx.proceed() запускает выполнения тела метода? И после return из метода, курсор выполнения опять возвращается в интерцептор, соответственно давая возможность выполнить все что ниже ctx.proceed()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2015, 18:50 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
alex2808Т.е. ctx.proceed() запускает выполнения тела метода? да alex2808И после return из метода, курсор выполнения опять возвращается в интерцептор, соответственно давая возможность выполнить все что ниже ctx.proceed()? В том примере, что привел я, только в том случае, если proceed в блоке try, а "всё что ниже" в блоке finally. Но можно еще так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2015, 18:57 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
base2, но в последнем примере, в случае, если proceed() кинет exception, то время не залогируется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2015, 18:59 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
Спасибо! Теперь все сложилось в стройную картинку! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 10:35 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
Я-бы вёл еще и учёт количества вызовов ctx.proceed(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 11:32 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
maytonЯ-бы вёл еще и учёт количества вызовов ctx.proceed(). В смысле собирать статистику вызовов метода? Или учет вызовов ctx.proceed() в одном интерцепторе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 13:16 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
Оценку влияния cumulative elapsed time на проект можно получить как произведения callbacks * elapsedtime. Тоесть если твой метод работал 1 мс но триллион раз то его влияние на нагрузку сильнее чем у метода который работал 1 секунду но вызывался миллион раз. Как-то так вобщем-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 17:09 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
Насчёт деталей реализации. Интерсепторы там или опции компиллятора или профилирование - это уж ты сам решай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 17:11 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
Понял. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 18:13 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
А подскажите, если код уже существует и нет доступа к нему, есть ли возможность создавать интерцепторы и подключить их не через аннотации к уже существующему коду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 17:02 |
|
||
|
Как с помощью интерцептора высчитать время выполнения методов?
|
|||
|---|---|---|---|
|
#18+
alex2808, по крайней мере спринг позволяет. http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html#aop-schema ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 19:32 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39028049&tid=2125055]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
273ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 569ms |

| 0 / 0 |
