Как измерить производительность классов действий?

Как измерить производительность всех классов действий приложения struts 1.2?

Я ищу способ сбора статистических данных о том, как долго выполнялось каждое действие. Любая идея, если это можно сделать? Было бы полезно оценить фрагмент кода?

1 ответ

Опция Easy и pure-Java EE: вы можете установить Filter перед сервлетом struts (struts 1), который просто передает ему элемент управления, но останавливает его время выполнения. Некоторые документы по фильтрам:

http://www.oracle.com/technetwork/java/filters-137243.html

Аспектно-ориентированные решения:

Если ваши приложения упаковывают Spring framework, вы можете сделать то же самое в очень мелкой зернистой шкале, установив какой-то аспект, который измеряет время выполнения каждой службы /dao/etc.

Классы инструментов в Spring: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/overview.html

И, если вы хотите установить аспект прямо на своих классах Action, вы можете установить класс агента в своем запуске JVM (всегда, если ваши операционные люди позволяют вам) и использовать их. Вот пример репортера, сделанного с помощью DIY:

http://chimpler.wordpress.com/2013/11/05/implementing-a-java-agent-to-instrument-code/

Обратите внимание на то, что бит с -javaagent swith для JVM должен находиться в запуске вашего сервера приложений - вам, возможно, придется давать звуковые аргументы для своих пользователей, как всегда, когда вы предлагаете какое-либо изменение конфигурации рабочей среды

licensed under cc by-sa 3.0 with attribution.