From e204dfad91a7efe4eaea9a318daeb3ec4dd20f9b Mon Sep 17 00:00:00 2001 From: bmf-san Date: Sat, 8 Jun 2024 22:49:00 +0900 Subject: [PATCH 1/3] [update] add cruby process text to process warmup --- refm/api/src/_builtin/Process | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/refm/api/src/_builtin/Process b/refm/api/src/_builtin/Process index 8827881e43..2e45e49cca 100644 --- a/refm/api/src/_builtin/Process +++ b/refm/api/src/_builtin/Process @@ -617,6 +617,12 @@ Process.wait2 # => [70024, #] アプリケーションがプリフォークモデルでデプロイされる場合は、最初のフォークが行なわれる前に元のプロセスで呼び出しされることが推奨されます。 本メソッドが行う最適化は実装依存であり、将来的に予告なく変更される可能性があります。 +CRubyでは、本メソッドは次のようにメジャーGCを実行します。 + (1) ヒープを圧縮します + (2) 残存する全てのオブジェクトを古い世代に昇格します + (3) 全ての文字列のコーダレンジを事前計算します + (4) すべての空のヒープページを解放し、解放したページ数だけ割当可能なページカウンターを増分します + (5) 空のmallocページを解放するためにmalloc_trimを呼び出します #@end #@since 1.9.1 From 3c32a603166fe64111ffdb3c3fd85881af89b633 Mon Sep 17 00:00:00 2001 From: Ippei Obayashi Date: Tue, 11 Jun 2024 19:30:09 +0900 Subject: [PATCH 2/3] Update Process.warmup --- refm/api/src/_builtin/Process | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/refm/api/src/_builtin/Process b/refm/api/src/_builtin/Process index 2e45e49cca..12498f2bdf 100644 --- a/refm/api/src/_builtin/Process +++ b/refm/api/src/_builtin/Process @@ -617,11 +617,12 @@ Process.wait2 # => [70024, #] アプリケーションがプリフォークモデルでデプロイされる場合は、最初のフォークが行なわれる前に元のプロセスで呼び出しされることが推奨されます。 本メソッドが行う最適化は実装依存であり、将来的に予告なく変更される可能性があります。 -CRubyでは、本メソッドは次のようにメジャーGCを実行します。 + +CRubyではメジャーGCを実行し以下のことをします: (1) ヒープを圧縮します - (2) 残存する全てのオブジェクトを古い世代に昇格します - (3) 全ての文字列のコーダレンジを事前計算します - (4) すべての空のヒープページを解放し、解放したページ数だけ割当可能なページカウンターを増分します + (2) GCされれなかった全ての新世代オブジェクトを古い世代に昇格します + (3) 全ての文字列のcoderange([m:String#valid_encoding]などで使われる文字列の内容とエンコーディングとの整合性の情報)を事前計算します + (4) すべての空のヒープページを解放し、解放したページ数だけ割当可能なページカウンター(heap_allocatable_pages)を増分します (5) 空のmallocページを解放するためにmalloc_trimを呼び出します #@end From a6ec54c400c3f1b102938ae0bc1ec06c091afe56 Mon Sep 17 00:00:00 2001 From: bmf-san Date: Tue, 11 Jun 2024 21:27:44 +0900 Subject: [PATCH 3/3] [fix] typo --- refm/api/src/_builtin/Process | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/refm/api/src/_builtin/Process b/refm/api/src/_builtin/Process index 12498f2bdf..de20f36da0 100644 --- a/refm/api/src/_builtin/Process +++ b/refm/api/src/_builtin/Process @@ -620,7 +620,7 @@ Process.wait2 # => [70024, #] CRubyではメジャーGCを実行し以下のことをします: (1) ヒープを圧縮します - (2) GCされれなかった全ての新世代オブジェクトを古い世代に昇格します + (2) GCされなかった全ての新世代オブジェクトを古い世代に昇格します (3) 全ての文字列のcoderange([m:String#valid_encoding]などで使われる文字列の内容とエンコーディングとの整合性の情報)を事前計算します (4) すべての空のヒープページを解放し、解放したページ数だけ割当可能なページカウンター(heap_allocatable_pages)を増分します (5) 空のmallocページを解放するためにmalloc_trimを呼び出します