!!!Eclipse Test and Performance Tools Platform {{category "統合開発環境 (IDE)",Eclipse,Java,nolink}}Eclipse Test and Performance Tools Platform を利用してJavaアプリケーションのプロファイリングを行う方法。 !!必要なものと確認したバージョン *Eclipse SDK - 3.2.0 / 3.3.1.1 *JDK - 1.5.0_12 / 1.6.0_01 *TPTP SDK - 4.3.1 / 4.4.1 *EMF SDK - 2.2.2 / 2.3.1 *XSD - 2.2.1 / 2.3.1 ほかに、WTP, BIRT, GEF, DTP も必要であれば。 !!!TPTPのインストール アップデートマネージャを使うか手動でインストールをする。正常にできれば、パースペクティブに「Profiling and Logging」が追加される。 !!アップデートマネージャを使う場合 標準で登録されている Discovery Site からインストールできる。 個別のアップデートサイトを利用する場合は、以下を登録してインストールを行う。 *EMF Update Site (EMFとXSD) **http://download.eclipse.org/tools/emf/updates/ *TPTP Update Site (TPTP) **http://eclipse.org/tptp/updates/ !!手動で行う場合 プロジェクトのダウンロードページから必要なZipファイルを取得し、その内容をプラグインフォルダに入れる。必須なものなどのダウンロードのリンクも同ページにある *ダウンロードページ(最新とバージョン指定) **http://www.eclipse.org/tptp/home/downloads/ **http://www.eclipse.org/tptp/home/downloads/?ver=4.3.1 **http://www.eclipse.org/tptp/home/downloads/?ver=4.4.0.3 !!!Agent Controller の導入 !!Agent Controller のインストール TPTPプロジェクトのダウンロードページの真ん中ほどに [Agent Controller|http://www.eclipse.org/tptp/home/downloads/#agentController] のダウンロードがある。(TPTPのバージョンと同じものを使ったほうがベターかな?) 「Runtime:」のプラットフォーム(WINDOWS-IA32 など)を選択して、ダウンロードする。「SDK:」もあるが、差分しか入っていない(サイズも10分の1程度)。 ダウンロードしたZIPファイルの内容を適切な場所(C:\Program Files\agntctrl など)に展開する。 !!Agent Controller の環境設定 bin\SetConfig.{bat|sh} を実行する。Java の場所を聞いてくるので使用するJDKのパスを設定する。あとは、JBoss とかも、適当に(大体はデフォルトのまま)。完了すると、config\serviceconfig.xml が作成される。 また、次の環境変数を設定する必要がある。 REM Windows Set TPTP_AC_HOME=<インストールディレクトリ> Set PATH=%PATH%;%TPTP_AC_HOME%\bin ## Linux (sh) set TPTP_AC_HOME=<インストールディレクトリ> set PATH=$PATH:$TPTP_AC_HOME/bin set LD_LIBRARY_PATH=$TPTP_AC_HOME/lib export TPTP_AC_HOME PATH LD_LIBRARY_PATH さらに、JDK1.5以降で行う場合は次も必要となる。 REM Windows Set JAVA_PROFILER_HOME=%TPTP_AC_HOME%\plugins\org.eclipse.tptp.javaprofiler Set PATH=%JAVA_PROFILER_HOME%;%PATH% ## Linux (sh) set JAVA_PROFILER_HOME=$TPTP_AC_HOME/plugins/org.eclipse.tptp.javaprofiler set PATH=$JAVA_PROFILER_HOME:$PATH set LD_LIBRARY_PATH=$JAVA_PROFILER_HOME:$TPTP_AC_HOME/lib export JAVA_PROFILER_HOME PATH LD_LIBRARY_PATH !!Windows サービスへの登録 (for Windows) サービスへの登録/解除は bin\manageservice.exe を利用する。 ::登録 :::manageservice add "サービスの登録名" "<インストールディレクトリ>" ::削除 :::manageservice remove "サービスの登録名" サービスへの登録せず、ACWinService.exe を実行してもよい。 !!Agent Controller の起動と停止 (for Windows,Linux) <インストールディレクトリ>\bin ディレクトリで、ACServer.exe で起動し、ACServer -shutdown で停止させる。Linux はそれぞれのシェルが用意されているので、ACStart.sh , ACStop.sh でもよい。 !!!プロファイリング !!EclipseからJavaアプリケーションのプロファイリング +一度プロファイルするアプリをEclipseから実行する。 +メニューの「Run」-「構成およびプロファイル」を選びダイアログを表示する。 +一覧の「Javaアプリケーション」の項目からプロファイルするものを選択する。 +「Monitor」タブでプロファイルする項目にチェックをする。 +「プロファイル」ボタンを押下し実行する。 !!Agent Controller 経由でプロファイリング (JDK 1.5 or lower) + 一度プロファイルするものをEclipseから実行し、起動構成を作る。 ++tomcatプラグインを入れている場合、「Tomcat 5.x」等がそれなので複製して使う。 +起動構成で「引数」の「VM引数」に「-XrunpiAgent:server=enabled」を追加し、起動する。 ※起動時のプロファイルを取る場合は、"server=controlled" にすると、アタッチされると起動するようになる。 +メニューの「Run」-「構成およびプロファイル」を選びダイアログを表示 +「Attach - Java Process」-「Attach」の項目を選ぶ +「Agents」タブで起動したtomcatのプロセスを選択する +「Monitor」タブでプロファイルする項目にチェックをする +「Destination」タブで「Send 〜」にチェックし、保存ファイル名を設定する +「プロファイル」ボタンを押下し実行する +止めるときは、「Profiling Monitor」のビューからアタッチしたプロセスを選び、右クリックで「Detach from Agent」を選ぶ ※6.の「Send 〜」にチェックをしなければ一定時間ごと表示されるが、一定量プロファイルを行うと以降の処理に関しては行われなくなる。チェックをつけると、止めるまでファイルに保存する。 +「Profiling and Logging」パースペクティブの「Profiling Monitor」ビューで右クリックしインポートを選ぶ +ソース選択で、「Profiling and Logging」-「Profiling file」を選ぶ +「Profiling file」で採取したプロファイルのファイルを選択、「Range」「Filter」タブは適当に。 !!Agent Controller 経由でプロファイリング (JDK 1.5 or higher) 「VM引数」に「-agentlib:JPIBootLoader=JPIAgent:server=enabled;CGProf」を追加し、起動する。アタッチやプロファイルの方法は (JDK 1.5 or lower) と同じ VM引数には、以下のような物を指定できる。スレッドを作成して動くものは、スタンドアロンで取らないと、プロファイリングされないものが出てくる(ぽい)。 ::実行時間 :::-agentlib:JPIBootLoader=JPIAgent:server=enabled;CGProf ::実行時間(詳細あり) :::-agentlib:JPIBootLoader=JPIAgent:server=enabled;CGProf:execdetails=true ::スタンドアロン(詳細あり) (※ C:\Server.trcxml は保存するファイル名) :::-agentlib:JPIBootLoader=JPIAgent:server=standalone,file=C:\Server.trcxml;CGProf:execdetails=true