On a low end device, in a low memory situation, we should trigger a page navigation GC as there is guaranteed garbage. Draft design doc: https://docs.google.com/document/d/1vJKPuMbJ5CQiFwrkxvTrB-x25SKF22-ui42oExvwpP0/edit
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0787b78381f3abb74a078bde05a6084bf0ed8d2c commit 0787b78381f3abb74a078bde05a6084bf0ed8d2c Author: keishi <keishi@chromium.org> Date: Tue Jun 27 07:03:42 2017 Low memory page navigation GC for low end devices Until now we have avoided running GCs during page loads but for low end devices in low memory situations we should do a page navigation GC to reduce peak memory usage. system_health.memory_mobile showed that we can expect >10MB peak RSS reduction on certain sites. Design doc: https://docs.google.com/document/d/13f25LGfpWWOOWk9U44it9Gva6i4JRsrQDlnxAJeSEZo/edit?usp=sharing BUG=732664 Review-Url: https://codereview.chromium.org/2948983002 Cr-Commit-Position: refs/heads/master@{#482556} [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.h [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/bindings/core/v8/RemoteWindowProxy.cpp [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/bindings/core/v8/RemoteWindowProxy.h [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/bindings/core/v8/V8GCForContextDispose.cpp [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/bindings/core/v8/V8GCForContextDispose.h [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/bindings/core/v8/WindowProxy.h [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/bindings/core/v8/WindowProxyManager.cpp [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/bindings/core/v8/WindowProxyManager.h [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/core/exported/WebFrame.cpp [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/core/exported/WebMemoryStatistics.cpp [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/platform/wtf/allocator/Partitions.cpp [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/third_party/WebKit/Source/platform/wtf/allocator/Partitions.h [modify] https://crrev.com/0787b78381f3abb74a078bde05a6084bf0ed8d2c/tools/metrics/histograms/histograms.xml
Comment 1 by bashi@chromium.org
, Jun 13 2017