トップ «前の日記(2026/11/04 (水) ) 最新 RSS feed

HsbtDiary


2026/11/05 (木) [長年日記]

Windows の Ruby の高速化を引き続きやっていて、なんとかして Linux より早くできないか、と調査させては試すを繰り返していたのだけど、以下の3つを投入することで Linux を 1.0 とした時に 0.95 くらいの速度、5%くらい速くなった。

  • mimalloc と言う MS Research が開発したメモリアロケータを使う
  • ENV の処理を Windows に特化する
  • gethostname の結果をキャッシュする、Windows は再起動するまでホスト名は変わらない

一つ目がなかなか面白くて、単純に malloc などを置き換えるだけでは全然効果が出なくて、まずは CRT と xmalloc が混ざらないようにちゃんと分離した上で、GC に関わる箇所だけを mimalloc にすると速くなると言うやつ。勉強になるね。

高速化はだいぶやり尽くしたので ARM64 mswin の開発をせっせとやっている。まずは YJIT + clang-cl + mimalloc を使えるようにしていた。

https://github.com/ruby/ruby/pull/19729

YJIT 対応をやっていく中で mswin に関係なく aarch64 でもバグってる箇所を見つけたので直していた。

https://github.com/ruby/ruby/pull/19718

他にも高速化できないの、でマシンを回し続けてる中で mswin 以外にも aarch64 の性能改善に効くところが見つかったのでぼちぼちと切り出していく予定。

apt の脆弱性などもあり、そろそろセキュリティ対応にみんな疲れてきたんでないか、という感じになってきた。メールアドレスが漏れたのね、はいはい、ってスルーするくらいには疲れてます。