OpenJ9 で NetBeans 起動を高速化

前回 NetBeans IDE 8.2 に OpenJ9 を利用してみましたが、更に OpenJ9 固有の -Xshareclasses オプションを使うことで起動の高速化を試みました。

Windows で OpenJ9 を試してみようか

方法は NetBeans IDE のショートカットをコピーして、実行コマンド (netbeans64.exe) に -J-Xshareclasses:name=netbeans_8_2 -J-Xscmx64m を追加するだけです。

これで二回目以降の起動は目に見えて速くなりましたね。IDE の再起動も気軽にできるようになりました。

外部スクリプトがロード完了したら何か実行する

次のようなコードを書いてみたが穴はないだろうか。

((scriptId, init) => {
    if ("commonmark" in window) {
        init();
    }
    else {
        let script = document.getElementById(scriptId);
        script.addEventListener("load", function () {
            init();
        });
    }
})("commonmark-script", () => {
    window.console.log("init!");
});

更新: 初出時コード中の改行が反映されていなかったので訂正しました。

Windows で OpenJ9 を試してみようか

Windows x64 バージョンの OpenJ9 を組み込んだ OpenJDK 8 がリリースされていたので、インストールしてみました。

インストールは zip ファイルをダウンロードしてばらすだけなのですが、古い OpenJDK の常で cacerts が空っぽなので、 OpenJDK 10 からコピーしておきました。

試しに NetBeans IDE 8.2 に使ってみると、気持ち起動が速いかなと感じましたね。しばらくこれで使ってみましょうか。サポートも 2022 年 9 月まで続けるようですし。

それでは。

NetBeans 9.0 を試してみました

Oracleから譲渡されて約2年、Apache財団が「NetBeans 9.0」を正式リリース – 窓の杜

とのことで、取り急ぎ試してみました。

まだ実行形式インストーラーが用意されていないので、インストールは zip ファイルをばらすだけでショートカットも何もありません。

現時点で対応しているのは Java SE プロジェクトのみなので、普段 Java EE を使っている当方では本格的な移行はまだ先になりそうです。プラグインが揃った頃にまたチャレンジしましょう。

Apache Maven で javadoc 出力を HTML5 にする ちょっとした設定

$HOME/.m2/settings.xml に次のプロファイルを追加:

<profile>
    <activation>
        <jdk>[9,)</jdk>
    </activation>
    <properties>
        <additionalJOption>-html5</additionalJOption>
    </properties>
    <id>java9</id>
</profile>

本来 additionalJOption-J… 形式のオプションを指定するものですが、それ以外も使えるということでこれを流用します。

ブラウザー上で X11 サーバーは動くか

最近はウェブ ブラウザー上に JavaScript でいろいろ作るのが流行っているようなので、昔懐かしい X11 サーバーを作れないかと考え始めてしまいました。

まず WebSocket で双方向通信が容易になったとは言え、 X11 サーバーには TCP 接続を待ち受けるサーバー ソケットが必要なので、何らかのエージェント プロセスは必要になりそうです。

複数クライアントに対応するとなると、 WebSocket の多重化も必要でしょうか。もっともこれは標準化が進められている様子なので、簡易なもので良さそうですかね。