Wicket アプリケーションのプロファイリングに適したツールや手法はありますか? 私が探しているのは、リクエストの処理中に Wicket 内で何が起こっているかの内訳を教えてくれるものです。
Spring Insights ほど派手である必要はありません。
私は Wicket を初めて使用し、すべての匿名の内部クラスがいたるところに広がっているため、いつ何が起こっているのかを確認するのが非常に難しくなっています。
見る
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) のようなツールを使用すると、この作業に大いに役立ちます。
少なくとも Wicket 1.4 では、内部メソッドを見ることができますorg.apache.wicket.RequestCycle.steps()
。基本的に、これは、Wicket アプリケーションへの要求として識別された要求が、Wicket 要求処理サイクルの関連するステップを通過する場所です。class の冒頭ではRequestCycle
、主要なステップがそれぞれ int 定数で表されます。int 値が高いほど、ステップはサイクル内で遅くなります。RequestCycle.step()
呼び出されるメソッドにRequestCycle.steps()
は、さまざまなステップを、さらに下に委譲する責任あるフレームワーク メソッドに委譲するための switch ステートメントがあります。
必要に応じて、リクエスト サイクルのステップまたはフェーズは次のとおりです。
ステップ内で実際に何が起こっているかは、さまざまなインターフェイスの実装によって決まります。特にIRequestCycleProcessor
とIRequestTarget
.
多くのデバッグ情報へのアクセスを提供するwicket-devutils
というパネルが同梱されていることがわかりました。DebugBar
ここで動作を確認できます: http://wicket.apache.org/apidocs/1.4/org/apache/wicket/devutils/debugbar/DebugBar.html
他の Java アプリケーションと同様に、jvisualvm を使用してプロファイリングできます。正しいクラス フィルター セットを使用すると、コードで時間がかかっている部分を確認し、できれば修正することができます。