37 lines
1.6 KiB
Diff
37 lines
1.6 KiB
Diff
diff -up firefox-78.0/xpcom/base/AvailableMemoryTracker.cpp.rhbz-1821418 firefox-78.0/xpcom/base/AvailableMemoryTracker.cpp
|
|
--- firefox-78.0/xpcom/base/AvailableMemoryTracker.cpp.rhbz-1821418 2020-06-17 04:20:44.000000000 +0200
|
|
+++ firefox-78.0/xpcom/base/AvailableMemoryTracker.cpp 2020-06-25 14:50:46.369798294 +0200
|
|
@@ -157,8 +157,12 @@ bool nsAvailableMemoryWatcher::IsVirtual
|
|
|
|
/* static */
|
|
bool nsAvailableMemoryWatcher::IsCommitSpaceLow(const MEMORYSTATUSEX& aStat) {
|
|
- if ((kLowCommitSpaceThreshold != 0) &&
|
|
- (aStat.ullAvailPageFile < kLowCommitSpaceThreshold)) {
|
|
+ const char* threshold = getenv("MOZ_GC_THRESHOLD");
|
|
+ if (threshold) {
|
|
+ kLowCommitSpaceThreshold = atoi(threshold);
|
|
+ }
|
|
+
|
|
+ if ((kLowCommitSpaceThreshold == 0) || (aStat.ullAvailPageFile < kLowCommitSpaceThreshold)) {
|
|
sNumLowCommitSpaceEvents++;
|
|
CrashReporter::AnnotateCrashReport(
|
|
CrashReporter::Annotation::LowCommitSpaceEvents,
|
|
@@ -210,12 +214,15 @@ void nsAvailableMemoryWatcher::AdjustPol
|
|
// polling interval accordingly.
|
|
NS_IMETHODIMP
|
|
nsAvailableMemoryWatcher::Notify(nsITimer* aTimer) {
|
|
+ const char* threshold = getenv("MOZ_GC_THRESHOLD");
|
|
+ bool forceLowMem = (threshold && atoi(threshold) == 0);
|
|
+
|
|
MEMORYSTATUSEX stat;
|
|
stat.dwLength = sizeof(stat);
|
|
bool success = GlobalMemoryStatusEx(&stat);
|
|
|
|
- if (success) {
|
|
- bool lowMemory = IsVirtualMemoryLow(stat) || IsCommitSpaceLow(stat);
|
|
+ if (success || forceLowMemory) {
|
|
+ bool lowMemory = IsVirtualMemoryLow(stat) || IsCommitSpaceLow(stat || forceLowMem);
|
|
|
|
if (lowMemory) {
|
|
SendMemoryPressureEvent();
|