2021-01-01から1年間の記事一覧

JavaのOOMのコマンドラインオプション

JavaのOOMのコマンドラインオプションについての備忘録。 ソースコード OOMが発生するソースコード。 public class Main { public static void main(String[] args) { byte[] buff = new byte[Integer.MAX_VALUE]; } } Demo 今回はOpen JDK 17を使う。 % sdk…

JFRでdirect memory statisticsを見る

JDK 15からdirect memory statisticsのJFR eventが追加されたので試したときのメモ。 準備 ソースコード Nettyで確認したいので、Spring WebFluxを使う。Spring InitializrからWebFluxのプロジェクトを作成して、RestControllerを追加しただけ。 build.gradl…

Homebrewで過去のversionをインストールする

Homebrewで過去のversionのpackageをインストールしたいときの備忘録。 以前はGitHubのcommit URLを指定してbrew installできていたが、この方法は使えなくなったので、代わりにbrew extractコマンドを使う必要がある。 手順 自分のtapがない場合は作成する…

JDK Flight Recorderのイベントを作る

JDK Flight Recorder (JFR) のイベントを作ったときのメモ。 準備 JDK Misson Control (JMC) ここからダウンロードしてインストールする。 ソースコード import java.util.concurrent.TimeUnit; import jdk.jfr.Category; import jdk.jfr.Description; impor…

Spring BootのFlightRecorderApplicationStartupを試す

Spring Boot 2.4 (Spring Framework 5.3) から追加されたFlightRecorderApplicationStartupを試したときのメモ。 追記 このバグがあるので、Spring Boot 2.4.7 (Spring Framework 5.3.8) 以降を使ったほうがいい。 https://github.com/spring-projects/sprin…

Spring BootでRedis Cacheのmetricsを収集する

Spring Boot 2.4からRedis Cacheのmetricsが収集できるようになったので試してみた。 ソースコード build.gradle plugins { id 'org.springframework.boot' version '2.4.1' id 'io.spring.dependency-management' version '1.0.10.RELEASE' id 'java' } gro…

RxJavaの備忘録(flatMap, concatMap, concatMapEager)

このメソッドのように、別スレッドで動く処理を呼び出したときのflatMap, concatMap, concatMapEagerの違いについての備忘録。 plugins { id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCe…