Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

JVM Language Summit 2019に参加しました: 3日目:最終日 #jvmls_jp

JVM Language Summit (JVMLS) 2019の3日目、最終日が終わりました。 1日目はこちら。 www.sakatakoichi.com 2日目はこちら。 www.sakatakoichi.com 3日目は、半日しかなく、しかもJava系のセッションはNullnessのものだけでした(要するに、どのセッションも…

JVM Language Summit 2019に参加しました: 2日目 #jvmls_jp

JVM Language Summit (JVMLS) 2019の2日目が終わりました。 JVMLSとは、1日目に関しては、こちらのエントリにあります。 www.sakatakoichi.com 2日目は、JITコンパイルとAOTコンパイル、GraalVM関連と、私にとって最高の日でした。 最初のセッションは、Open…

JVM Language Summit 2019に参加しました: 1日目 #jvmls_jp

2019/07/29-31に、オラクルのUSサンタクララオフィス(本社ではないところ)で開催されている、JVM Language Summit(通称JVMLS)に参加しています。 http://openjdk.java.net/projects/mlvm/jvmlangsummit/ 私は昨年2018年に初参加して、今回が2回目です。 …

Micronautの@Introspected

DevNexus 2019で、Micronautのセッションを聴いてきたので、メモがてら断片的に記します。 Micronautの特徴の中に、こういったものがあります。 Minimal use of reflection Minimal use of proxies リフレクションや動的プロキシの利用を最低限にして、起動…

Oracle Code One 2019の参加登録が始まりました

Oracle Code One(昨年2018年に、JavaOneからリブランドしたカンファレンス)の、参加登録が始まりました。 www.oracle.com 元がJavaOneですので、Javaのセッションが多いのはもちろんですが、他言語やコンテナ、DevOps、MySQLを始めとするデータベース、ブ…

ドラゴンブック(コンパイラ)を読み終えました。

ドラゴンブックとは、こちらの書籍です。 コンパイラ―原理・技法・ツール (Information & Computing)作者: A.V.エイホ,R.セシィ,J.D.ウルマン,M.S.ラム,Alfred V. Aho,Jeffery D. Ullman,Ravi Sethi,Monica S. Lam,原田賢一出版社/メーカー: サイエンス社発…

ガベージコレクタとJVMCI

jvm

ZGCのセッションで、今後の長期目標の1つとして、JVMCIに対応する、と聞きました。逆に考えると、GCの中には、JVMCIに対応していないものがある、と理解しました。 現時点で新しめのOpenJDK(53918:616a32d6b463)で、試します。 デフォルト(G1GC) $ build…

作って学ぶガベージコレクタをやってみた

jvm

2019年2月のFOSDEMというイベントが、ベルギーのブリュッセルでありました。 FOSDEMは、Free and Open Source Developer's European Meetupの頭文字です。 そこで、「Build your own GC with OpenJDK in 20 minutes」というセッションがありました。 録画も…

JJUGナイトセミナー「JVM言語を作ろう! GraalVMで遊ぼう!」で登壇しました #jjug

2019/02/27に、JJUG(日本Javaユーザグループ)さんでのナイトセミナー、「JVM言語を作ろう! GraalVMで遊ぼう!」で登壇をしました。 www.java-users.jp 「GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう」というセッションです。スライド…

DevNexus 2019に参加しました

2019/03/06 -08に開催された、DevNexusというカンファレンスに参加しました。 場所はUSのアトランタです。 devnexus.com DevNexusとは アトランタJava User Group(JUG)主催のカンファレンスです。 JUG主催ですので、Javaが中心ではありますが、アジャイル…

macOSでのjtregセットアップ

OpenJDKのテストは、jtregなので、セットアップしました。 http://openjdk.java.net/projects/code-tools/jtreg/intro.html macOSでビルドします。 http://openjdk.java.net/jtreg/build.html $ sh make/build-all.sh /Library/Java/JavaVirtualMachines/jdk…

static finalな定数が速いのは、何がどうなって速い?

定数を利用した最適化、というのはイメージしやすいですし、実際速くなります。今回、Alekseyさんのサンプルを使いながら、まずはstatic finalな値のコンパイルコードを実際に見て、どう速いのか学びました。 JVM Anatomy Park #15: Just-In-Time Constants …

JMHの`-prof perfasm`がめちゃすごい

JMH(Java Microbenchmark Harness)で、-prof perfasmをすると、perfと-XX:+PrintAssemblyを使って、JITコンパイラ生成コードでのホットな部分を表示してくれるという機能があります。これが、思いの外すごい機能だったので、紹介します。 前提条件 JMHを知…

TLABとフィラー(詰め物)

以前、TLABとBump the Pointerについて、検証しました。 www.sakatakoichi.com AlekseyさんのJVM Anatomy Parkには、もう1つTLABの話題があります。今回、その内容も、実際に動かして見てみます。 JVM Anatomy Park #5: TLABs and Heap Parsability こんなコ…

TLABとBump the Pointer

JJUG CCC 2018 Fallのセッション、数村さんのGCを発生させないJVMとコーディングスタイルにて、TLABとBump the Pointerについての説明がありました。 (https://www.slideshare.net/kenjikazumura/gcjvm より抜粋) TLAB、理屈は知っているけれど、よく考え…