• 検索結果がありません。

JBuilder 2007によるJEEアプリケーションパフォーマンスチューニング

N/A
N/A
Protected

Academic year: 2021

シェア "JBuilder 2007によるJEEアプリケーションパフォーマンスチューニング"

Copied!
15
0
0

読み込み中.... (全文を見る)

全文

(1)

Copyright (C) 2007, CodeGear. 本文書の一部または全部の転載を禁止します。

ションパフォーマンスチューニング

ションパフォーマンスチューニング

ボーランド株式会社Developer Tools Group 高橋智宏

2

講師紹介

講師紹介

• 学生の時購入したTurboC++2ndからの熱狂的なボーランドファ ン • JDK1.0 の頃からずーーっと、Javaやってます • 長年にわたり「Java読書会」を運営 – http://www.javareading.com/bof/

(2)

アジェンダ

アジェンダ

• 問題のある JEE Webアプリケーション

• JVMPI / JVMTI

• 無償のツール Eclipse / TPTP

• Eclipseベースの JBuilder 2007

• OptimizeIt 2007 for Eclipse

• OptimizeItを使った分析手順

• EJB2.x,EJB3.0のビジュアル開発機能の紹介

4

JEE

(3)

問題のある

問題のある

JEE Web

JEE Web

アプリケーション

アプリケーション

• Servlet,JSPの処理時間が長い

• 例外が発生しているらしい!?

• JDBC等のリソースの解放処理がお粗末

• HttpSessionの間違った使い方

• メモリが延々と増加し続ける

さて、どうやって原因を見つけようか

6

JVMPI / JVMTI

JVMPI / JVMTI

• JavaVMの挙動を監視し、情報収集するためのインター フェース • .dll, .so等のライブラリ(エージェント)が必要 • ~ JDK1.5 まで

– Java Virtual Machine Profiler Interface (JVMPI)

• JDK1.5, JDK6 ~

– Java Virtual Machine Tool Interface (JVMTI)

Javaプロセス JavaVM エージェント(xxx.dll) モニタリングツール (一般的にはGUI) JVMPI or JVMTI 独自プロトコル

(4)

JVMPI / JVMTI

JVMPI / JVMTI

続き)

続き)

• JVMPIやJVMTIを使うと

– JavaVM内のメモリの使用状況を把握できる – 実行時間の測定が行える – 実行されたコードを測定できる – スレッドの状態を把握できる 8

無償のツール

無償のツール

Eclipse / TPTP

Eclipse / TPTP

• Eclipseには、JavaVMの解析に役立つオープンソース のプラットホームや、JVMPI/JVMTI準拠のツールが無償 で用意されています

• Test & Performance Tools Platform (TPTP)

– URL: http://www.eclipse.org/tptp/ – 共通プラットホーム

– モニタリングツール – テストツール

(5)

TPTP

TPTP

の仕組み

の仕組み

• JVMPIのエージェントをサーバーに組み込む • モニタリングツールは、Eclipseに統合されたものを使用 • Agent Controller がエージェントとモニタリングツール (GUI)を仲介 Javaプロセス JavaVM エージェント Eclipse Agent Controller GUI Javaプロセス JavaVM エージェント Eclipse Agent Controller GUI 同一ホストでの監視 リモートホストから監視 10

TPTP

TPTP

を使ってみる

を使ってみる

• JBossの起動スクリプトに、piAgent.dllを組み込む • EclipseからJBossにアタッチ – フィルターの追加(「org.jboss.*」を「除外」) – 基本メモリー分析 – 実行時間分析 • メニューから[モニターの開始]

(6)

問題のある

問題のある

JEE Web

JEE Web

アプリケーション

アプリケーション

を動作させてみる

を動作させてみる

• 実行時間分析 – メソッド呼び出しの詳細 – 細かすぎ。フィルターで「org.jboss.*」を「包含」すればかなり見 やすくなる。 12

問題のある

問題のある

JEE Web

JEE Web

アプリケーション

アプリケーション

を動作させてみる

を動作させてみる

• メモリー分析

(7)

Eclipse

Eclipse

ベースの

ベースの

JBuilder 2007

JBuilder 2007

• JBuilder 2007 は、Eclipse3.2をベースとした統合開 発環境。IDEの最高峰「JBuilder 2006」の後継。 • JEE(Web,EJB2.x,EJB3.0等)のビジュアル開発 – EJBワークベンチ – Webサービスデザイナ • チーム開発・プロジェクト管理の効率化 – ProjectAssist – TeamInsight • TogetherによるUMLモデリング機能 • OptimizeIt 2007 による分析&チューニング 14

OptimizeIt

OptimizeIt

2007 for

2007 for

Eclispe

Eclispe

• OptimizeItシリーズは、2002年の「OptimizeIt 4」リリース 以降、最も優れたJava用プロファイリングツール。

• Eclipse/TPTPに対応 • JVMPI/JVMTIに対応

– Memory Profiler, CPU Profiler, Quality Analyzer – Thread Debugger – Code Coverage – Request Analyzer(JEE専用) • 分析中のデータやVMの状態をスナップショットに丸ごと保 存できる – 後からゆっくりと問題の分析が可能

(8)

Memory

Memory

Porfiler

Porfiler

• インスタンス数やオブジェクトの参照関係を把握 – ある時点(マーク)からの差分だけを追跡可能 – インスタンスの生成場所を特定可能 – 解放されない原因となっている参照だけを表示可能 – メモリリーク自動検出機能 16

CPU Profiler

CPU Profiler

• 指定した時間内の実行時間を把握

– 様々な測定方法 – スレッドごとに分析可能 – ホットスポットとソースコードの対応付け

(9)

Quality Analyzer

Quality Analyzer

• Javaアプリ内部の問題を監視

– コンテナクラスやStringBufferの浪費を監視 – スローされた例外をすべて検出 – ガベコレやファイナライゼーションの異常検出 18

Thread Debugger

Thread Debugger

• 各スレッドの状態を監視

– 状態を過去に遡って分析 – ロック(モニター)の把握 – デッドロックの検出および分析

(10)

Code Coverage

Code Coverage

• 実行時に通過したソースコードに関する情報を

収集

20

Request Analyzer

Request Analyzer

• JEEアプリケーション特有のパフォーマンス問題の分析や 品質問題の検出を支援 – System Dashboard – Component Performance – Component Details – Quality Analyzer • 各種アプリケーションサーバーへの対応 – WebLogic 9.2, 8.1.4 – JBoss 4.0.5, 3.2.6 – Tomcat 5.0, 5.5

(11)

Request Analyzer

Request Analyzer

System Dashboard

System Dashboard

• JEEアプリケーション全体の処理時間を各レイヤ

ごとに分けて表示

22

Request Analyzer

Request Analyzer

Component Performance

Component Performance

• アプリケーションのエントリポイントごとに、各レイヤ

が消費した時間を分析

(12)

Request Analyzer

Request Analyzer

Component Details

Component Details

• JEEの各レイヤ(例:JDBC)ごとに、処理時間を

詳細に報告

24

Request Analyzer

Request Analyzer

Quality Analyzer

Quality Analyzer

• JEE特有の品質問題を実行時に検出

(13)

OptimizeIt

OptimizeIt

を使った分析手順

を使った分析手順

• JBossの起動スクリプトにOptimizeItのエージェン

(oii.dll)を組み込む(JVMPI or JVMTI)

– フィルターの追加で、「org.jboss.*」を「Group」化

• EclipseからJBossにアタッチ

26

EJB2.x,EJB3.0

EJB2.x,EJB3.0

のビジュアル開発機能

のビジュアル開発機能

(14)

従来の

従来の

JBuilder

JBuilder

プロジェクトのインポート

プロジェクトのインポート

EJB2.xプロジェクト 変換用ウィザード EJB2.x(XDoclet) or EJB3.0(Annotation) 28

EJB2.1

EJB2.1

ビジュアル開発

ビジュアル開発

• 各種J2EEサーバへの対応 • テーブルからエンティティBeanを自動生成 • EJBの「モデル/ソースコード/Xdoclet」の完全同期

(15)

EJB3.0

EJB3.0

ビジュアル開発

ビジュアル開発

• 各種J2EEサーバへの対応 • テーブルからエンティティBeanを自動生成 • EJBの「モデル/ソースコード/アノテーション」の完全同期 30

Thank you

Thank you

参照

関連したドキュメント

実際, クラス C の多様体については, ここでは 詳細には述べないが, 代数 reduction をはじめ類似のいくつかの方法を 組み合わせてその構造を組織的に研究することができる

Using the special C- mount ring adapter, the lens can be directly attached to a CCD camera, enabling it to be used as a low cost image ob- servation lens and variable focus lens

[r]

今後の取り組みは、計画期間(2021~2040 年度)の 20 年間のうち、前半(2021~2029

地球温暖化対策報告書制度 における 再エネ利用評価

(今後の展望 1) 苦情解決の仕組みの活用.

2011 年の主たる動向は、欧州連合 (EU) の海洋政策に新たな枠組みが追加されたことであ る。漁業分野を除いた

今日、お話しさせていただく内容ですけれども、まず、股関節の仕組み。それから股関