ruby-trunk-changes 2023-07-17

今日は主に Process.warmup というアプリケーションの起動時の処理が完了したことをインタプリタに伝えて最適化ポイントを与えるメソッドの追加などがありました。

[d3bcff0158] Nobuyoshi Nakada 2023-07-16 15:15:05 UTC

bootstraptest/test_ractor.rb のコメントの typo 修正。

[fa30b99c34] Jean Boussier 2023-04-05 06:40:07 UTC

アプリケーションで諸々の初期化処理が完了したタイミングで呼んで最適化処理を行うためのエントリポイントとして Process.warmup というメソッドを追加しています。現在の実装では compaction や RGenGC の世代の promotion などを行なうことでメモリの使用効率を上げたり copy-on-write friendly にしたりという効果を狙っていますが、今後もまた別な最適化が入る余地はありそうです。メソッド名からするとこのメソッドがなにか warmup 処理をしてくれそうですが、どっちかというとアプリケーションで warmup が完了したことをインタプリタに伝えるという意味合いのメソッドです。 [ruby-core:109081] [Feature #18885]

[b998e6b79d] Nobuyoshi Nakada 2023-07-17 10:49:00 UTC

fa30b99c34291cde7b17cc709552bc5681729a12 で追加した Process.warmup のテストを assert_separately を利用して子プロセス内で実行するようにしています。

[f1adc5866a] Nobuyoshi Nakada 2023-07-17 10:50:47 UTC

同じく fa30b99c34291cde7b17cc709552bc5681729a12 で追加した Process.warmup のテストで ObjectSpace.dump を利用するための require "objspace" を追加しています。