JVM

jcmdで何ができるかをまとめる

はじめに jcmdは起動しているJavaプロセスのGCの統計情報をとったり、JFR起動したり諸々のことを行なうのによく使われるツールかと思います。 今まで必要になったコマンドを調べて使うぐらいしかしたことなかったのですが、実際どのくらいのことができるのか…

JITWatchを動かしてみる

はじめに ちょっと前のどこかのイベント(おそらくJJUG)でJitWatchというのが紹介されていて、ちょっと気になってました。 このブログではJITWatchを動かして見ようかと思います。 紹介動画とかみつつ、自分の理解をまとめています。正確な情報は公式のGitH…

KtorのアプリからMicrometer+PrometheusでJVMのメトリクスを取得する

はじめに Ktorのドキュメント呼んでいたらMicrometerに対応してそうだというのを見かけてちょっと動かしてみようかと思います。 基本的にはドキュメントに書かれた流れを沿う感じでやろうかと思います。 あと、PrometheusはDockerを用いて起動します。 やっ…

VisualVMを使ってみる

はじめに Javaのプロセスをプロファイルするツールはいろいろあると思うのですが、個人的にVisuralVMが気になったので、調べてまとめます。 具体的には以下のようなことを目指します。 VivualVMの概要を知る どのようなことができるかを知る 実際に使ってみ…

AppCDSを使ってみる

はじめに AppCDS(Application Class Data Sharing)はCDS(Class Data Sharing)の拡張であり、Java 10以降で利用可能です。この機能を使うことで、アプリケーションでロードされるクラスを共有アーカイブから読み込むようになり、その起動時間を削減することが…

GraalVMのNative ImageでReflectionを使う

はじめに よくSpringのアプリケーションをNative Image化するときDynamic ProxyやReflectionをゴリゴリ使っているので、設定が大変みたいな話を聞いたことがあるのですが。 じゃあ、実際に使うためにはどんな設定が必要なんだろう。というのが気になったので…

JavaのFlight RecorderとJDK Mission Controlをつかってプロファイリングをしてみる

はじめに 自分は結構JVMの動きとか、GCとかそういうのに興味があるのですが、どう分析して良いのかさっぱりでした。そこで、今回はJavaのプロファイリングデータを収集するツールであるFlight Recorderととその分析ツールであるJDK Mission Controlに入門し…