有没有好的工具或技术可以对Wicket应用程序进行剖析?我想要的是在处理请求时,能够给我一个Wicket内部发生情况的细分。
它不必像Spring Insight那样花哨。
我是Wicket的新手,到处都是匿名内部类,这使得很难看清楚事情发生的时间。
org.apache.wicket.RequestCycle.steps()
。基本上,这是一个已被识别为Wicket应用程序请求的请求,将在Wicket请求处理周期的相关步骤中进行浏览。在类RequestCycle
的开头,每个主要步骤都由一个int常量表示。 int值越高,步骤在周期中出现的时间越晚。从RequestCycle.steps()
调用的RequestCycle.step()
方法具有一个switch语句,用于将不同的步骤委托给负责框架方法进一步委托下去。IRequestCycleProcessor
和IRequestTarget
。查看
org.apache.wicket.response.filter.ServerAndClientTimeFilter org.apache.wicket.response.filter.AjaxServerAndClientTimeFilter org.apache.wicket.devutils.inspector.RenderPerformanceListener org.apache.wicket.protocol.http.RequestLogger
所有这些都提供一些测量结果,但也请参阅Cedric Gatay的回复评论。 使用像Yourkit(http://www.yourkit.com)这样的工具将对此任务有很大帮助。
您可以像对待其他Java应用程序一样使用jvisualvm进行分析。通过正确设置类过滤器,您将能够看到代码中哪些部分耗费了时间,并希望能够进行纠正。
我发现 wicket-devutils
附带了一个名为 DebugBar
的面板,它提供了许多调试信息的访问。
可以在这里看到它的实际效果:http://wicket.apache.org/apidocs/1.4/org/apache/wicket/devutils/debugbar/DebugBar.html