More Related Content
Javaトラブルに備えよう #jjug_ccc #ccc_h2 Javaはどのように動くのか~スライドでわかるJVMの仕組み HeapStats @ Seasar Conference 2015 LT Java トラブル解析支援ツール HeapStats のご紹介 HeapStatsのデモ (Java The Night) What's hot (19)
HeapStats: Introduction and Technical Preview Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4 Introduction to JShell #JavaDayTokyo #jdt_jshell Panamaを先取り!? JVMCIでJITと遊ぶ Head toward Java 16 (Night Seminar Edition) Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか 「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~ Java SE 9の紹介: モジュール・システムを中心に Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜 Java EE パフォーマンスTips #glassfish_jp OpenJDK トラブルシューティング #javacasual Java8 コーディングベストプラクティス and NetBeansのメモリログから... Migration Guide from Java 8 to Java 11 #jjug Similar to Heap statsfx analyzer (20)
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】 JMeterをWebでしか設定できないサーバの設定自動化に使う SDLoader SeasarCon 2009 Whire WebSocket+Akka(Remote)+Play 2.1 Java jjugccc2018 app review postmortem Windows® API Code Pack for Microsoft® .NET Framework Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々 統合監視ソフトウェア Zabbix新バージョン2.0の紹介 Chrome Developer Toolsを使いこなそう! Windows PowerShell 2.0 の基礎知識 Javaで1から10まで書いた話(sanitized) System Center Operations Managerによる仮想環境の高度な管理 Heap statsfx analyzer
- 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…
アナライザ
解析
- 9. HeapStatsFXAnalyzer
HeapStats Analyzer ♥ JavaFX8
Java8のコード
Lambda、StreamAPIバリバリ使いたい
プラガブル
アナライザへの機能追加を誰でもできる
コミュニティドリブンな開発
GitHub
developブランチ見てください
将来的には本家(IcedTea)へマージ予定
- 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
- 24. JVMLive
JDP(Java Discovery Protocol)を使って
ネットワーク上のJVMを自動ルックアップ
見つけたJVMで動いているメインクラスや稼働時間
などを確認可能
JDPパケットの定期受信ができないJVMをハイライト
表示
JVMのクラッシュ検知機能
OracleJDK限定
-XX:+TransmitErrorReportと-XX:ErrorReportServerが
指定されていればJVMLiveでクラッシュを検知&
hs_errログを自動回収
- 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に分割で落ち着く
- 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内部の処理で
例外発生