是否有任何好的工具或技术来分析 Wicket 应用程序?我正在寻找的是可以让我在处理请求时详细了解 Wicket 内部发生的情况。
它不必像 Spring 洞察力那样花哨。
我是 Wicket 的新手,到处都是匿名的内部类,很难看到事情何时发生。
至少对于 Wicket 1.4 可以看看内部方法org.apache.wicket.RequestCycle.steps()
。基本上,这是一个已被识别为对 Wicket 应用程序的请求的请求,将在此处遍历 Wicket 请求处理周期的相关步骤。在类的开头,RequestCycle
每个主要步骤都由一个 int 常量表示。int 值越高,步入循环的时间越晚。RequestCycle.step()
从中调用的方法RequestCycle.steps()
有一个 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