Background
最近会社で、Javaアプリケーション実装を担当しています。dbとのコネクションはなく、webにリクエストを投げる感じのもので、 大量のデータを処理するところも特にないですが、どうしても気になって、性能測定をしてみようと思いました。
JMX(Java Management Extension)
JDKには、いくつか開発に役に立つパッケージが含まれています。 今日調べる内容は、次の2点。 モニタリングのためのツールです。
jvisualvm
jmc
常用ツールを使ったことがなく、どれぐらいのパフォーマンスが出るかまでは比較できないですが、 上のツールだけでも、GCや現在使ってるHeapの確認ぐらいは十分できるので、いいのではないかと思います。
Execution
僕はMacを使ってるので、上のコマンドそのままで簡単に実行できます。 実行したら、あるソフトウェアが実行されます。
Visual VM(jvisualvm)
(使い方一緒なので、JMCは省略)
見るところは、今ご覧になってるmonitorってタブです。
実際アプリケーションを実行して、実際結果を確認して見ると、
こんな感じらしいです。
80MBぐらい使ってますね。特にFullGCは発生していません。 まだ、Phase1として半分ぐらいだけしか実装されてないことはありますが、 データベースとのコネクションがないのと、大量のデータを処理するロジックがないことから、 一応問題ないのではないかと思われます。
当分の間、パフォーマンスチューニングを勉強してみようかなと思います。 記録として残しながら、いつかまたその記録を見たとき、忘れた内容があれば思い出せて、 ちゃんと覚えてればもう一度復習できるきっかけにしようと思います。