From 38d03246071399f5fcc1efce8e4ff4b9a0b7b730 Mon Sep 17 00:00:00 2001 From: Jason Williams <936006+jasonwilliams@users.noreply.github.com> Date: Tue, 9 Jul 2024 23:17:50 +0100 Subject: [PATCH] bump gc threshold (#3908) * bump gc threshold * add comment for threshold * cmoments * make number 2^20 for better alignment --- core/gc/src/lib.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/gc/src/lib.rs b/core/gc/src/lib.rs index 4484249188..8f53155ae9 100644 --- a/core/gc/src/lib.rs +++ b/core/gc/src/lib.rs @@ -53,7 +53,9 @@ thread_local!(static BOA_GC: RefCell = RefCell::new( BoaGc { #[derive(Debug, Clone, Copy)] struct GcConfig { + /// The threshold at which the garbage collector will trigger a collection. threshold: usize, + /// The percentage of used space at which the garbage collector will trigger a collection. used_space_percentage: usize, } @@ -63,7 +65,8 @@ struct GcConfig { impl Default for GcConfig { fn default() -> Self { Self { - threshold: 1024, + // Start at 1MB, the nursary size for V8 is ~1-8MB and SM can be up to 16MB + threshold: 1_048_576, used_space_percentage: 70, } } @@ -191,6 +194,8 @@ impl Allocator { if gc.runtime.bytes_allocated > gc.config.threshold { Collector::collect(gc); + // Post collection check + // If the allocated bytes are still above the threshold, increase the threshold. if gc.runtime.bytes_allocated > gc.config.threshold / 100 * gc.config.used_space_percentage {