如何衡量struts 1.2应用程序的所有操作类的性能?
我正在寻找一种方法来收集每个动作花费多长时间的性能统计数据。如果能做到这一点,我们有什么想法吗?一段代码会受到高度赞赏吗?
答案 0 :(得分:1)
简单且纯粹的Java EE选项:您可以在struts servlet(struts 1)前面设置一个Filter
,它只是将控制权交给它,但是会停止执行时间。关于过滤器的一些文档:
http://www.oracle.com/technetwork/java/filters-137243.html
面向方面的解决方案:
如果你的应用程序包含Spring框架,你可以通过设置一些测量每个服务/ 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/
请注意,JVM的-javaagent
开关位必须在应用程序服务器的启动中 - 您可能必须为操作人员提供合理的参数,就像您提出更改时一样到生产环境配置