Submit Search
Upload
Heap statsfx analyzer
•
Download as PPTX, PDF
•
1 like
•
3,967 views
Yasumasa Suenaga
Follow
JavaFX Night講演資料
Read less
Read more
Software
Report
Share
Report
Share
1 of 40
Download now
Recommended
Java 9で進化する診断ツール
Java 9で進化する診断ツール
Yasumasa Suenaga
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Norito Agetsuma
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
HeapStats(Java解析ツールバトル)
HeapStats(Java解析ツールバトル)
Yasumasa Suenaga
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LT
Yuji Kubota
jcmd をさわってみよう
jcmd をさわってみよう
Tsunenaga Hanyuda
Java トラブル解析支援ツール HeapStats のご紹介
Java トラブル解析支援ツール HeapStats のご紹介
Shinya Takebayashi
HeapStatsのデモ (Java The Night)
HeapStatsのデモ (Java The Night)
Yasumasa Suenaga
Recommended
Java 9で進化する診断ツール
Java 9で進化する診断ツール
Yasumasa Suenaga
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Norito Agetsuma
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
HeapStats(Java解析ツールバトル)
HeapStats(Java解析ツールバトル)
Yasumasa Suenaga
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LT
Yuji Kubota
jcmd をさわってみよう
jcmd をさわってみよう
Tsunenaga Hanyuda
Java トラブル解析支援ツール HeapStats のご紹介
Java トラブル解析支援ツール HeapStats のご紹介
Shinya Takebayashi
HeapStatsのデモ (Java The Night)
HeapStatsのデモ (Java The Night)
Yasumasa Suenaga
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
bitter_fox
スレッドダンプの読み方
スレッドダンプの読み方
Funato Takashi
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
Yuji Kubota
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
bitter_fox
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshell
bitter_fox
Panamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶ
Yasumasa Suenaga
Java9新機能概要
Java9新機能概要
HonMarkHunt
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Yoshitaka Kawashima
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Java EE8 Report
Java EE8 Report
Norito Agetsuma
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
Takahiro YAMADA
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
JustSystems Corporation
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
Norito Agetsuma
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 Fall
Masatoshi Tada
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
なおき きしだ
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?
Yuji Kubota
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeNA
JMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使う
隆行 神戸
More Related Content
What's hot
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
bitter_fox
スレッドダンプの読み方
スレッドダンプの読み方
Funato Takashi
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
Yuji Kubota
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
bitter_fox
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshell
bitter_fox
Panamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶ
Yasumasa Suenaga
Java9新機能概要
Java9新機能概要
HonMarkHunt
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Yoshitaka Kawashima
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Java EE8 Report
Java EE8 Report
Norito Agetsuma
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
Takahiro YAMADA
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
JustSystems Corporation
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
Norito Agetsuma
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 Fall
Masatoshi Tada
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
なおき きしだ
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?
Yuji Kubota
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
What's hot
(20)
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
スレッドダンプの読み方
スレッドダンプの読み方
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshell
Panamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶ
Java9新機能概要
Java9新機能概要
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Java EE8 Report
Java EE8 Report
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 Fall
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Similar to Heap statsfx analyzer
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeNA
JMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使う
隆行 神戸
Java fx勉強会lt 第8回
Java fx勉強会lt 第8回
Taiji Miyabe
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
Akio Katayama
WebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 Java
Kazuhiro Hara
Zealup - React
Zealup - React
Masahiro Yanou
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
jjugccc2018 app review postmortem
jjugccc2018 app review postmortem
tamtam180
Windows® API Code Pack for Microsoft® .NET Framework
Windows® API Code Pack for Microsoft® .NET Framework
Tadahiro Higuchi
R5 3 type annotation
R5 3 type annotation
EIICHI KIMURA
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
torutk
統合監視ソフトウェア Zabbix新バージョン2.0の紹介
統合監視ソフトウェア Zabbix新バージョン2.0の紹介
takanori suzuki
Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!
yoshikawa_t
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
shigeya
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
真治 米田
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理
junichi anno
Devtools.next
Devtools.next
yoshikawa_t
Ptt391
Ptt391
Takefumi MIYOSHI
Cve 2013-0422
Cve 2013-0422
abend_cve_9999_0001
Similar to Heap statsfx analyzer
(20)
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
JMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使う
Java fx勉強会lt 第8回
Java fx勉強会lt 第8回
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
WebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 Java
Zealup - React
Zealup - React
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
jjugccc2018 app review postmortem
jjugccc2018 app review postmortem
Windows® API Code Pack for Microsoft® .NET Framework
Windows® API Code Pack for Microsoft® .NET Framework
R5 3 type annotation
R5 3 type annotation
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
統合監視ソフトウェア Zabbix新バージョン2.0の紹介
統合監視ソフトウェア Zabbix新バージョン2.0の紹介
Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理
Devtools.next
Devtools.next
Ptt391
Ptt391
Cve 2013-0422
Cve 2013-0422
Heap statsfx analyzer
1.
末永恭正@YaSuenag
2.
はじめに 私はJavaFX(Javaも?)素人です
我流でやってきた内容をお話しします マサカリ禁止 ×
3.
自己紹介 末永恭正(すえながやすまさ)@YaSuenag
SIerでJavaやってるサンデープログラマー OpenJDK Author(jdk9) IcedTea Committer HeapStats作ってます http://icedtea.classpath.org/wiki/HeapStats/jp
4.
HeapStats Javaの障害解析支援&監視ツール
とにかくエージェントの性能に腐心 より軽く・より速く Javaアプリケーション実行マシン Javaアプリケーション (Java製アプリケーションサーバも含む) JRE (JVM) JVM監視エージェント JVMにアタッチ Java関連情報 • ヒープスナップショット • OSリソース • etc… アナライザ 解析
5.
置き去りにされたアナライザ… Java
SE 6ベース Swing コードが冗長 やっぱり今風にしておきたい 見た目重要
6.
HeapStats × JavaFX
7.
HeapStatsFXAnalyzer https://github.com/YaSuenag/HeapStatsFXAnalyzer
8.
9.
HeapStatsFXAnalyzer HeapStats
Analyzer ♥ JavaFX8 Java8のコード Lambda、StreamAPIバリバリ使いたい プラガブル アナライザへの機能追加を誰でもできる コミュニティドリブンな開発 GitHub developブランチ見てください 将来的には本家(IcedTea)へマージ予定
10.
なぜJavaFX8? SwingNodeが使いたかったから
11.
使っている主な(?)機能 FXML
Chart PieChart StackedAreaChart AreaChart LineChart Task ProgressIndicatorとbind 国際化(と言えるか?) とりあえず日本語と英語
12.
構成 HeapStats
1.0相当のアナライザを実装 プラグインで機能拡張 HeapStatsFXAnalyzer コア機能 スナップ ショット パーサー ログ パーサーGUI部品 プラグイン プラグイン 管理 組み込みプラグイン スナップ ショット リソース ログ 参照ツリー 表示 CSV出力 JVM 死活監視…
13.
HeapStatsのプラグイン FXMLを含むJAR形式
コントローラはHeapStatsFXAnalyzerに含まれ るPluginControllerを継承する必要あり Java8/JavaFX8可 プラグインにはTabが1枚与えられる FXMLの含まれるパッケージ名を設定して libにJARと関連ライブラリを入れておけば OK heapstats.properties: plugins=jp.co.ntt.oss.heapstats.plugin.builtin.log ; jp.co.ntt.oss.heapstats.plugin.builtin.snapshot ; jp.dip.ysfactory.heapstats.plugin.jvmlive
14.
jp.co.ntt.oss.heapstats.WindowController#loadPlugin() プラグインが呼ばれるまで1 PluginClassLoader
設定 クラスローダの設定 PluginClassLoader FXMLLoader HeapStatsFXAnalyzerのlibを向くクラスローダ lib配下のJARをすべてロード FXMLLoader#setDefaultClassLoader()にセット
15.
jp.co.ntt.oss.heapstats.WindowController#addPlugin() プラグインが呼ばれるまで2 プラグインリスト
ロード 各プラグインのロード heapstats.propertiesのpluginsに指定されたもの FXMLLoaderインスタンスはResourceBundleを 指定して作成 日本語or英語 普通にFXMLLoader#load() staticなload()は使わない FXMLLoader
16.
jp.co.ntt.oss.heapstats.WindowController#addPlugin() プラグインが呼ばれるまで3
コントローラインスタンスの取得 FXMLLoader#getController() HeapStatsのPluginControllerにキャスト プラグインの初期設定 オーナーWindow、ProcessIndicator関連 タブ選択イベントの設定 Tab#setOnSelectionChanged() タブへの画面追加 セットアップ画面タブ表示 FXMLLoader 取得 コントローラ
17.
jp.co.ntt.oss.heapstats.plugin.PluginController PluginController
FXMLコントローラのabstractクラス プラグインは必ず継承する必要あり 最小限の機能とインターフェースを提供 Taskのbind ProcessIndicator、画面のグレーアウト イベントのキック タブ選択 ウィンドウのリサイズ プラグインのライセンス情報の提供 オーナーウィンドウのインスタンス取得
18.
<RefTreePlugin> jp.co.ntt.oss.heapstats.plugin.reftree.RefTreeController#initialize() プラグイン間のデータ受け渡し
各プラグインのコントローラに 直接アクセス コントローラのインスタンスは 親ウィンドウのコントローラから取得 ロード済みプラグインのリストを持っている 他にいい案が思い浮かばなかった…
19.
今あるプラグイン
20.
参照ツリー表示には… RefTreePlugin https://github.com/YaSuenag/RefTreePlugin
21.
RefTreePlugin HeapStatsFXAnalyzerにオブジェクト参照
ツリー表示機能を追加 SwingNodeで実装 要JGraphX http://www.jgraph.com/jgraphdownload.html
22.
23.
HeapStatsでネットワーク上のJVMを すべてルックアップ&死活監視! JVMLive
https://github.com/YaSuenag/JVMLive
24.
JVMLive JDP(Java
Discovery Protocol)を使って ネットワーク上のJVMを自動ルックアップ 見つけたJVMで動いているメインクラスや稼働時間 などを確認可能 JDPパケットの定期受信ができないJVMをハイライト 表示 JVMのクラッシュ検知機能 OracleJDK限定 -XX:+TransmitErrorReportと-XX:ErrorReportServerが 指定されていればJVMLiveでクラッシュを検知& hs_errログを自動回収
25.
26.
JavaFXで困ったこと
27.
Jp/co/ntt/oss/heapstats/utils/infoDialog.fxml 困ったことその1
ダイアログがない 自作しました Accordionで詳細メッセージが見れるようにし ました 8u40 までの命
28.
困ったことその2 複数Chartの合成に対応していない
JIRAに要望は上がっているみたいです RT-12710: chart API -- multiple chart types on the same axis https://javafx-jira.kenai.com/browse/RT-1271 ※要ログイン StackPaneと透過を使って複数Chartを組み合わ せてた時期もあり 結局、複数枚のChartに分割で落ち着く
29.
jp.co.ntt.oss.heapstats.plugin.builtin.log.LogController#onChartMouseMoved() 困ったことその3
ChartのTooltipが重い 描画要素数に応じてとても重くなる Tooltipもどきを自作 マウスポインタ周辺にPopupを表示 描画タイミングはonMouseMoved/onMouseExitedの 組み合わせ マウスのX座標のみに注目 Yの値はXがわかればChartのデータから取れる XAxisのgetLayoutX/getStartMargin/getValueForDisplay
30.
困ったことその4 animated=trueなAreaChartで多要素の描画
をさせるとシンボルが表示されない アニメーションやめた(PieChart以外) 今のところ アニメーションによる 悪影響なし
31.
JavaFXで困ってること
32.
困ってることその1 SwingNodeが絡むと一部JavaFX
コントロールがブラックアウトする <RefTreePlugin> ウィンドウをリサイズすると全部真っ黒に… 黒い部分の上をマウスでグルグルすると表示 される JavaFXコントロール SwingNode
33.
困ってることその2 ChartのSeriesを含むFXMLがSceneBuilderで
ロードできない UI作るのにかなり致命的 OpenJFXからビルドしたものだときちんと ロードできた ココ
34.
困ってることその3 WindowsとLinuxでウィンドウサイズ関連
プロパティの動きが違う Windowクラスのwidth/heightにセットする ChangeListener Fedora20だとwidth/heightプロパティの変化が ワンテンポ遅い 黒い縦線(障害発生ポイント)をChangeListenerで描画 Win7(期待通り) Fedora20(ズレる)
35.
困ってることその4 <RefTreePlugin>
SwingNodeのDrag and Dropイベントが おかしい java.awt.dnd.InvalidDnDOperationException セルをドラッグする際のJGraphX内部の処理で 例外発生
36.
お願い
37.
お願いします! まずはFork
次にPull Request できればプラグイン作成 「いいね!」
38.
ご意見もお願いいます!
39.
あったらいいな… プラグイン
vmstat sar iostat etc…
Download now