Bug 1017141 - Add prefs for setting min/max empty chunk counts r=bent

This commit is contained in:
Jon Coppeard 2014-07-16 10:01:20 +01:00
parent 1aa9dc0f8f
commit 8b4f6eb2b3
5 changed files with 38 additions and 0 deletions

View File

@ -664,6 +664,12 @@ pref("javascript.options.mem.gc_low_frequency_heap_growth", 120);
pref("javascript.options.mem.high_water_mark", 6);
pref("javascript.options.mem.gc_allocation_threshold_mb", 1);
pref("javascript.options.mem.gc_decommit_threshold_mb", 1);
#ifdef JSGC_GENERATIONAL
pref("javascript.options.mem.gc_min_empty_chunk_count", 1);
#else
pref("javascript.options.mem.gc_min_empty_chunk_count", 0);
#endif
pref("javascript.options.mem.gc_max_empty_chunk_count", 2);
// Show/Hide scrollbars when active/inactive
pref("ui.showHideScrollbars", 1);

View File

@ -3017,6 +3017,14 @@ nsJSContext::EnsureStatics()
Preferences::RegisterCallbackAndCall(SetIncrementalCCPrefChangedCallback,
"dom.cycle_collector.incremental");
Preferences::RegisterCallbackAndCall(SetMemoryGCPrefChangedCallback,
"javascript.options.mem.gc_min_empty_chunk_count",
(void *)JSGC_MIN_EMPTY_CHUNK_COUNT);
Preferences::RegisterCallbackAndCall(SetMemoryGCPrefChangedCallback,
"javascript.options.mem.gc_max_empty_chunk_count",
(void *)JSGC_MAX_EMPTY_CHUNK_COUNT);
nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
if (!obs) {
MOZ_CRASH();

View File

@ -594,6 +594,18 @@ LoadJSGCMemoryOptions(const char* aPrefName, void* /* aClosure */)
continue;
}
matchName.RebindLiteral(PREF_MEM_OPTIONS_PREFIX "gc_min_empty_chunk_count");
if (memPrefName == matchName || (!rts && index == 12)) {
UpdateCommonJSGCMemoryOption(rts, matchName, JSGC_MIN_EMPTY_CHUNK_COUNT);
continue;
}
matchName.RebindLiteral(PREF_MEM_OPTIONS_PREFIX "gc_max_empty_chunk_count");
if (memPrefName == matchName || (!rts && index == 13)) {
UpdateCommonJSGCMemoryOption(rts, matchName, JSGC_MAX_EMPTY_CHUNK_COUNT);
continue;
}
#ifdef DEBUG
nsAutoCString message("Workers don't support the 'mem.");
message.Append(memPrefName);

View File

@ -428,6 +428,12 @@ pref("javascript.options.mem.gc_low_frequency_heap_growth", 120);
pref("javascript.options.mem.high_water_mark", 16);
pref("javascript.options.mem.gc_allocation_threshold_mb", 3);
pref("javascript.options.mem.gc_decommit_threshold_mb", 1);
#ifdef JSGC_GENERATIONAL
pref("javascript.options.mem.gc_min_empty_chunk_count", 1);
#else
pref("javascript.options.mem.gc_min_empty_chunk_count", 0);
#endif
pref("javascript.options.mem.gc_max_empty_chunk_count", 2);
#else
pref("javascript.options.mem.high_water_mark", 32);
#endif

View File

@ -894,6 +894,12 @@ pref("javascript.options.mem.gc_dynamic_heap_growth", true);
pref("javascript.options.mem.gc_dynamic_mark_slice", true);
pref("javascript.options.mem.gc_allocation_threshold_mb", 30);
pref("javascript.options.mem.gc_decommit_threshold_mb", 32);
#ifdef JSGC_GENERATIONAL
pref("javascript.options.mem.gc_min_empty_chunk_count", 1);
#else
pref("javascript.options.mem.gc_min_empty_chunk_count", 0);
#endif
pref("javascript.options.mem.gc_max_empty_chunk_count", 30);
pref("javascript.options.showInConsole", false);