void sgen_memgov_init (size_t max_heap, size_t soft_limit, gboolean debug_allowance, double allowance_ratio, double save_target) { if (soft_limit) soft_heap_limit = soft_limit; debug_print_allowance = debug_allowance; major_collection_trigger_size = MIN_MINOR_COLLECTION_ALLOWANCE; mono_counters_register ("Memgov alloc", MONO_COUNTER_GC | MONO_COUNTER_WORD | MONO_COUNTER_BYTES | MONO_COUNTER_VARIABLE, &total_alloc); mono_counters_register ("Memgov max alloc", MONO_COUNTER_GC | MONO_COUNTER_WORD | MONO_COUNTER_BYTES | MONO_COUNTER_MONOTONIC, &total_alloc_max); if (max_heap == 0) return; if (max_heap < soft_limit) { sgen_env_var_error (MONO_GC_PARAMS_NAME, "Setting to minimum.", "`max-heap-size` must be at least as large as `soft-heap-limit`."); max_heap = soft_limit; } if (max_heap < sgen_nursery_size * 4) { sgen_env_var_error (MONO_GC_PARAMS_NAME, "Setting to minimum.", "`max-heap-size` must be at least 4 times as large as `nursery size`."); max_heap = sgen_nursery_size * 4; } max_heap_size = max_heap - sgen_nursery_size; if (allowance_ratio) default_allowance_nursery_size_ratio = allowance_ratio; if (save_target) save_target_ratio = save_target; }
void sgen_memgov_init (glong max_heap, glong soft_limit, gboolean debug_allowance, double allowance_ratio, double save_target) { if (soft_limit) soft_heap_limit = soft_limit; debug_print_allowance = debug_allowance; minor_collection_allowance = MIN_MINOR_COLLECTION_ALLOWANCE; if (max_heap == 0) return; if (max_heap < soft_limit) { sgen_env_var_error (MONO_GC_PARAMS_NAME, "Setting to minimum.", "`max-heap-size` must be at least as large as `soft-heap-limit`."); max_heap = soft_limit; } if (max_heap < sgen_nursery_size * 4) { sgen_env_var_error (MONO_GC_PARAMS_NAME, "Setting to minimum.", "`max-heap-size` must be at least 4 times as large as `nursery size`."); max_heap = sgen_nursery_size * 4; } max_heap_size = max_heap - sgen_nursery_size; if (allowance_ratio) default_allowance_nursery_size_ratio = allowance_ratio; if (save_target) save_target_ratio = save_target; minor_collection_allowance = MIN_MINOR_COLLECTION_ALLOWANCE; }