MemoryPressureHandler should only trigger synchronous GC on iOS
authorakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 25 Nov 2016 14:59:07 +0000 (14:59 +0000)
committerakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 25 Nov 2016 14:59:07 +0000 (14:59 +0000)
commit3ca8cd34045177fe7e73a0411d4534a92656fb07
tree02fff09d43207e4f2bc1ae95f54d131579a602a8
parentd5f335c385b9c633787bfe1dadd3c2911a159d79
MemoryPressureHandler should only trigger synchronous GC on iOS
<https://webkit.org/b/165043>
<rdar://problem/29312684>

Reviewed by Sam Weinig.

On iOS we know that there is really only one web process in play at a time,
so it's okay to do a synchronous GC immediately in response to high memory pressure.

On other platforms, we may have tens or hundreds of web processes, and if they
all start doing full GCs at the same time, it can easily bring a system to its knees
if it's already under pressure.

Fix this by using garbageCollectSoon() on non-iOS platforms.

* page/MemoryRelease.cpp:
(WebCore::releaseCriticalMemory):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@208975 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/page/MemoryRelease.cpp