[webkit-changes] [WebKit/WebKit] 809790: [JSC] Prefer full GC on opportunistic GC when navi...

Yusuke Suzuki noreply at github.com
Thu Nov 9 19:55:37 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 809790625dc81779661a1edd255dbb9f9daf2ebd
      https://github.com/WebKit/WebKit/commit/809790625dc81779661a1edd255dbb9f9daf2ebd
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-11-09 (Thu, 09 Nov 2023)

  Changed paths:
    M Source/JavaScriptCore/heap/Heap.cpp
    M Source/JavaScriptCore/heap/Heap.h
    M Source/JavaScriptCore/runtime/VM.cpp
    M Source/WebCore/page/Page.cpp

  Log Message:
  -----------
  [JSC] Prefer full GC on opportunistic GC when navigation happens
https://bugs.webkit.org/show_bug.cgi?id=264492
rdar://118179290

Reviewed by Wenson Hsieh.

Previously, when navigation happens, opportunistic GC may perform full GC.
But this happens only when GC statistics says "we should do full GC instead of eden GC
based on memory usage".

But this happens only when navigation happens, and if we have enough time, then it is
nice if we can just do full GC instead of eden GC even though we are not reaching to
full GC threshold since (1) there are out-living objects and they can be collected only
in full GC and (2) it is likely that most of objects are already garbage when navigation
happens regardless of allocation threshold.

This patch changes scheduleOpportunisticFullCollectionIfNeeded to attempt to perform full
GC always when navigation happens.

* Source/JavaScriptCore/heap/Heap.cpp:
(JSC::Heap::scheduleOpportunisticFullCollectionIfNeeded):

Canonical link: https://commits.webkit.org/270502@main




More information about the webkit-changes mailing list