void MemoryPressureHandler::respondToMemoryPressure(Critical critical, Synchronous synchronous) { uninstall(); double startTime = monotonicallyIncreasingTime(); m_lowMemoryHandler(critical, synchronous); unsigned holdOffTime = (monotonicallyIncreasingTime() - startTime) * s_holdOffMultiplier; holdOff(std::max(holdOffTime, s_minimumHoldOffTime)); }
void MemoryPressureHandler::respondToMemoryPressure(Critical critical, Synchronous synchronous) { uninstall(); double startTime = monotonicallyIncreasingTime(); int64_t processMemory = processMemoryUsage(); releaseMemory(critical, synchronous); int64_t bytesFreed = processMemory - processMemoryUsage(); unsigned holdOffTime = s_maximumHoldOffTime; if (bytesFreed > 0 && static_cast<size_t>(bytesFreed) >= s_minimumBytesFreedToUseMinimumHoldOffTime) holdOffTime = (monotonicallyIncreasingTime() - startTime) * s_holdOffMultiplier; holdOff(std::max(holdOffTime, s_minimumHoldOffTime)); }