3

Wicket アプリケーションのプロファイリングに適したツールや手法はありますか? 私が探しているのは、リクエストの処理中に Wicket 内で何が起こっているかの内訳を教えてくれるものです。

Spring Insights ほど派手である必要はありません。

私は Wicket を初めて使用し、すべての匿名の内部クラスがいたるところに広がっているため、いつ何が起こっているのかを確認するのが非常に難しくなっています。

4

4 に答える 4

6

見る

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) のようなツールを使用すると、この作業に大いに役立ちます。

于 2012-05-17T11:19:03.380 に答える
6

少なくとも Wicket 1.4 では、内部メソッドを見ることができますorg.apache.wicket.RequestCycle.steps()。基本的に、これは、Wicket アプリケーションへの要求として識別された要求が、Wicket 要求処理サイクルの関連するステップを通過する場所です。class の冒頭ではRequestCycle、主要なステップがそれぞれ int 定数で表されます。int 値が高いほど、ステップはサイクル内で遅くなります。RequestCycle.step()呼び出されるメソッドにRequestCycle.steps()は、さまざまなステップを、さらに下に委譲する責任あるフレームワーク メソッドに委譲するための switch ステートメントがあります。

必要に応じて、リクエスト サイクルのステップまたはフェーズは次のとおりです。

  • NOT_STARTED - 初期値
  • PREPARE_REQUEST - さらなる処理の準備、onBeginRequest の呼び出し
  • RESOLVE_TARGET - 関連するリクエスト ターゲットを決定する
  • PROCESS_EVENTS - イベントを処理し、現在のステップを RESPOND に設定し、同様に応答します
  • RESPOND - 応答のみ、リダイレクトの場合に使用
  • DETACH_REQUEST - 委譲によって切り離しフックをトリガーする
  • DONE - DETACH_REQUEST の後に現在の値になります

ステップ内で実際に何が起こっているかは、さまざまなインターフェイスの実装によって決まります。特にIRequestCycleProcessorIRequestTarget.

于 2012-05-16T13:33:08.280 に答える
1

多くのデバッグ情報へのアクセスを提供するwicket-devutilsというパネルが同梱されていることがわかりました。DebugBar

ここで動作を確認できます: http://wicket.apache.org/apidocs/1.4/org/apache/wicket/devutils/debugbar/DebugBar.html

于 2012-05-21T10:29:14.670 に答える
1

他の Java アプリケーションと同様に、jvisualvm を使用してプロファイリングできます。正しいクラス フィルター セットを使用すると、コードで時間がかかっている部分を確認し、できれば修正することができます。

于 2012-05-16T06:41:56.337 に答える