Fight the Future

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

java

TLABとBump the Pointer

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

Java 11でPrintStringTableStatisticsするとクラッシュする

Java 11でのみ発生します。7、8、9、10では発生せず、現在開発中のJava 12では、fixされています。 $ java -version openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1…

String#intern()を使った場合の、パフォーマンスへの影響を学ぶ

JJUG CCC 2018 Fallのセッション、GCを発生させないJVMとコーディングスタイルにて、GCの発生を抑えるアプリケーション側の対処として、以下のことをするケースもある、とありました。 (https://www.slideshare.net/kenjikazumura/gcjvm より抜粋) String#…

OpenJDKのC++コードを、CLionでデバッグする

OpenJDKをhg cloneしたあと、bin/idea.shを実行して、IntelliJ IDEAでソースコードを読んでいました。ただ、C++のコードを読む割合が増えてきて、IntelliJでは読みづらいな、と感じてきました。 以前chiroitoさんが、Eclipse上でOpenJDKをデバッグしていたこ…

書籍「現場至上主義 Spring Boot2 徹底活用」をいただき、読み終えました

現場至上主義 Spring Boot2 徹底活用作者: 廣末丈士,宮林岳洋,高安厚思出版社/メーカー: ソシム発売日: 2018/11/30メディア: 単行本この商品を含むブログを見る はじめに 書籍「現場至上主義 Spring Boot2 徹底活用」を、この書籍を編集された会社からいただ…

JJUG CCC 2018 Fallに参加/パネリストをしました #jjug_ccc

JJUG CCC 2018 Fallに参加しました! www.java-users.jp そろそろ始発近くの新幹線で向かうのは、体力的にきついなと感じ始めました… JJUG基調講演「Javaの未来を考えよう」パネリスト JJUG鈴木会長の司会の下、せろさん、きしださんとともにパネリストとし…

Oracle Code One 2018参加記: 登壇編

Oracle Code Oneは、JavaOneとして2017年まで開催されていたものを、リブランドしたカンファレンスです。 www.sakatakoichi.com 2018/10/22〜25までの4日間、USサンフランシスコのモスコーンコンベンションセンターで開催されました。このブログでは、時系列…

今後のJavaのサポートやアップデートについてJavaチャンピオンが執筆したドキュメント、Java is Still Freeの日本語訳を公開

今後のJavaのサポートとアップデートに関して、世界のJavaチャンピオン数十名が執筆したJava is Still Freeというドキュメントを、日本のJavaコミュニティメンバーで翻訳しました。翻訳したドキュメントはこちらです。 docs.google.com 簡約バージョンと詳細…

Java 11 / JEP 181のNestmatesでのバイトコードの変更を見比べる

JEP 181: Nest-Based Access Controlというものがあります。これはNestmates(ネストメイト)と呼ばれるものです。 http://openjdk.java.net/jeps/181 Nestmatesは、クラスやインタフェースをネストして作成したとき、ネストする側される側の両方を指す言葉…

Java 11 / JEP 309のConstant Dynamic(condy)を試す

JEP 309: Dynamic Class-File Constantsというものがあります。これはConstant Dynamic(condy)と呼ばれるものです。 http://openjdk.java.net/jeps/309 Constant Dynamic、つまり動的な定数です。Javaでは今まで(10まで)プリミティブとリテラルを持つStr…

JVM(HotSpot VM)におけるIntrinsics(C2/Graal)

Project Loomのソースを読んでいると、また遭遇しました。 public class Continuation { ... @HotSpotIntrinsicCandidate private static int doYield(int scopes) { throw new Error("Intrinsic not installed"); }; ... } @HotSpotIntrinsicCandidateアノ…

アノテーションをimplementsしたクラスを作成する

アノテーションをimplementsしたクラスを作成できるというのを最近知りました。アノテーションなんてJDK 1.5からあるのに、知らないもんですね… みなさんはご存知ですか?とTwitterにツイートしたところ、ご存知の方もたくさんいらっしゃいましたが、ご存知…

メソッド参照をRunnable型の変数に代入する

こんなことができるのを知りませんでした。 public class MethodReferenceSample { private void method1() { } public static void main(String[] args) { Runnable method1 = new MethodReferenceSample()::method1; } } メソッド参照の値をRunnable型の変…

LINE Fukuoka様でのDeveloper Meetupで登壇しました

LINE様が東京を始め京都、大阪、福岡などで頻繁に開催されているいわゆる勉強会、Developer Meetupがあります。 2018年7月に福岡のLINE Fukuoka様で開催されたDeveloper Meetupに登壇しました。こちらの模様をLINE様のEngineer Blogに書いていただきました。…

Value Typesもろもろ

以前Project ValhallaのL-World Value Typesのアーリーアクセスビルドを試しました。 www.sakatakoichi.com 今回もう少し触ってみます。 利用バージョン $ java -version openjdk version "11-lworldea" 2018-09-25 OpenJDK Runtime Environment 18.9 (build…

Project ValhallaのL-World Value Typesをちょっと試す

Project ValhallaのL-World Value Typesのアーリーアクセスビルドが出ています。 Valhalla Early-Access Builds Value Typesは、L-WorldではないQタイプのMinimal Value Types(MVT)という初期のプロトタイプがありました。 www.infoq.com 現在は従来のLタ…

Run Fiber from Project Loom

Project Loomの(プロトタイプ的な)ソースコードが公開されました。chiroitoさんがさっそく試されています。 chiroito.hatenablog.jp 記事はLinuxですが、私もmacOSで動作させることができました。 Project Loomって何?という方はこちらをご覧ください。 w…

JVM Language Summit 2018に参加しました

2018年7月30、31日にオラクルのサンタクララオフィス(つまりあのデータベース型の建物ではない)で開催された、JVM Language Summit(通称JVMLS)に参加しました。 http://openjdk.java.net/projects/mlvm/jvmlangsummit/ JVM Language Summitとは The JVM …

Javaチャンピオンになりました!

SUPERB! Please join us in welcoming these new Java Champions to our Community. Well done everyone@alextheedom@TheDonRaab @JonathanGiles@cero_t@jyukutyo @michaelminella @NikhilNanivade @rotnroll666@ustarahman pic.twitter.com/FIp1W6wg13— Jav…

Graalのグラフ、IR

以前(昨年2017年)、Graal(JITコンパイラ)のグラフやIR(Intermediate Representation)について調べました。 www.sakatakoichi.com www.sakatakoichi.com このとき、理解が浅く中途半端なままでした。 JKUのwebサイトhttp://ssw.jku.at/Research/Project…

"JavaOne"は拡張/終了し、Oracle Code Oneに変わります

以前にJavaOne 2018の日程変更を書きました。 www.sakatakoichi.com JavaOneとはサンフランシスコで開催される、Oracle主催のJavaカンファレンスです(でした)。このエントリの時点で、今まで5日間のカンファレンスだったのが4日と短くなり、少し残念な気持…

詳説GraalVM(1) イントロダクション

GraalVMが1.0.0 RC1を出し、公式サイトを公開しました! http://www.graalvm.org/ 日本の技術ブログメディアPublickeyさんも取り上げておられます。 www.publickey1.jp そのこともあって、Graalで検索しこのブログへたどり着いた方も多かったです。私は1年ほ…

(超簡易な)コンパイラを(参考コードありで)書いてみた

じゅくちょーです。私はJava製JITコンパイラGraalにとても強く興味を持っています。 Graal の検索結果 - Fight the Future Graalのコードを読んでいる内に、自分はGraalの前にそもそもコンパイラをよく理解していないと感じるようになりました。コンパイラに…

JavaOne 2018の日程が変わったようです

JavaOneは2018/10/28から11/1までと発表されていましたが、おそらく最近変更されたようです。 2018/10/22から10/25となっています。こちらは公式サイト。 JavaOne Conference | JavaOne 2018 レジストレーション開始案内の登録サイトのバナーもこの日程に変…

Java EEからJakarta EEへ

Eclipseファウンデーションへ移管されたJava EEの新名称が決まりました。 And the Name Is… | Life at Eclipse "Jakarta EE"です。 "Jakarta EE" or "Enterprise Profile"の決選投票が2/23までありました。7000弱の投票のうち65%が"Jakarta EE"へ票を入れて…

Serviceability Agentをjhsdbから読み進めてみる

Serviceability Agentやjhsdbについては、OpenJDK Reviewerの末永さんのスライドが大変参考になります。 Java 9で進化する診断ツール from Yasumasa Suenaga www.slideshare.net JDK 8まで、HSDB (CLHSDB)を使うにはjavaコマンドで実行しました。 $ java -Ds…

"Java 10以降のJavaリリース"について話しました at 関西Javaエンジニアの会 #kanjava

2月19日、株式会社ロックオンさんにて関ジャバのイベントを開催しました。 僕はJfokusで聴いた内容、Java 10以降のJava: リリースサイクルの変更とOpenJDKへの統合- JfokusでのMark Reinhold氏のセッションからを話しました。スライドは以下です。 Java rele…

海外カンファレンスJfokusに参加してきた

www.jfokus.se 日程: 2018/02/05(VM tech summit)、02/06-07(カンファレンス本体) 場所: ストックホルム、スウェーデン 参加者数: 2000人弱(VM tech summitは30名ほど) 費用: 10万円(航空券、ホテル別) 感想 カンファレンスでは各セッションの講演と…

Java 10以降のJava: リリースサイクルの変更とOpenJDKへの統合- JfokusでのMark Reinhold氏のセッションから

Java 10以降のJavaについて、少し混乱があるようです。 ちょうど僕は数日前までJfokusというJavaカンファレンスでストックホルムに来ており、オラクルのJavaプラットフォームグループのチーフアーキテクト、Mark Reinhold氏による"Moving Java Forward Faste…

さあ行こう!世界中のJavaカンファレンスへ!

JavaカンファレンスというとJavaOneを想像される方が多いかと思います。 Twitter上でこんなやり取りを見ました。"行くならどのJavaカンファレンスがお気に入り?" 元Sun/OracleのJavaエヴァンジェリスト、現AWSのArun Guptaさんはこう答えています。 Depends…