Tomcat サーバーのプロファイルを作成しようとしています。私のプロファイラーは、Tomcat サーバーによって実行されたメソッドのリストを出力します。Ubuntu 12.04 を使用しています。私がすることは次のとおりです。
1) Tomcat サーバー (./startup.sh) を起動します。
2) ブラウザーを開き、java で開発された (および jsp ページを含む) Web アプリケーションを実行します (http://localhost:8080/bodgeit など)。 tomcat 上の bodgeit Web アプリケーション)
3)ログイン、バスケットへの追加、パスワードの変更、ログアウトなど、このWebアプリケーションでいくつかのアクションを実行します。
4) 次に、./shutdown.sh でサーバーを停止します。shudown スクリプトを実行すると、Tomcat の実行中に実行されたメソッドのリストを含むファイルがプロファイラーから出力されます。
ここでの質問は、上記の手順を実行してプロファイルを 2 回以上収集することです。ステップ 3 の Web アプリケーションで (同じシーケンスで) まったく同じアクションを実行します。ただし、両方の出力で取得するメソッドのシーケンスは異なります。なぜそうなのですか?私のプロファイラーはメソッドシーケンスも保存できます。
Apache Web サーバーによって実行されるメソッドは毎回異なりますか? それらは修正されていませんか?サーバーの起動時、リクエストの作成時、またはサーバーのシャットダウン時に特定のメソッドが実行されるように?私はTomcat、サーブレット、およびjspも初めてです。私はそれがどのように機能するかについての基本的な考えを持っています。たとえば、次のシーケンスは 1 番目のファイルには存在せず、2 番目のファイルには存在します。このように、さらに多くの違いがあります。
<callingContextTree><method declaringClass="Lorg/apache/catalina/startup/HostConfig$DeployWar;" name="run" params="" return="V"><callsite instruction="7"><method declaringClass="Lorg/apache/catalina/startup/HostConfig;" name="deployWAR" params="Lorg/apache/catalina/util/ContextName; Ljava/io/File;" return="V"><callsite instruction="555"><method declaringClass="Lorg/apache/catalina/core/StandardHost;" name="addChild" params="Lorg/apache/catalina/Container;" return="V"><callsite instruction="20"><method declaringClass="Lorg/apache/catalina/core/ContainerBase;" name="addChild" params="Lorg/apache/catalina/Container;" return="V"><callsite instruction="15"><method declaringClass="Lorg/apache/catalina/core/ContainerBase;" name="addChildInternal" params="Lorg/apache/catalina/Container;" return="V"><callsite instruction="75"><method declaringClass="Lorg/apache/catalina/util/LifecycleBase;" name="start" params="" return="V"><callsite instruction="88"><method declaringClass="Lorg/apache/catalina/core/StandardContext;" name="startInternal" params="" return="V"><callsite instruction="517"><method declaringClass="Lorg/apache/catalina/util/LifecycleBase;" name="start" params="" return="V"><callsite instruction="88"><method declaringClass="Lorg/apache/catalina/session/StandardManager;" name="startInternal" params="" return="V"><callsite instruction="4"><method declaringClass="Lorg/apache/catalina/session/StandardManager;" name="load" params="" return="V"><callsite instruction="43"><method declaringClass="Lorg/apache/catalina/session/StandardManager;" name="doLoad" params="" return="V"><callsite instruction="61"><method declaringClass="Lorg/apache/catalina/core/ContainerBase;" name="getLoader" params="" return="Lorg/apache/catalina/Loader;"/></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callingContextTree>
誰かが何が起こっているのかを見つけるのを手伝ってくれませんか? 簡単に言えば、サーバーを起動したら、Tomcat のホームページにアクセスしてサーバーを停止します。まさにこれを繰り返します。Tomcat は同じメソッドを同じ順序で両方とも実行しますか? 私が気づいた限りでは、そうではありません。なぜ ?
ありがとうございました。