Bug 257622 - Add a way to run incremental GC sweeps during runloop idle time in between rendering updates
Summary: Add a way to run incremental GC sweeps during runloop idle time in between re...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Wenson Hsieh
URL:
Keywords: InRadar
Depends on: 257650 258032
Blocks:
  Show dependency treegraph
 
Reported: 2023-06-01 14:37 PDT by Wenson Hsieh
Modified: 2023-06-15 07:56 PDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wenson Hsieh 2023-06-01 14:37:42 PDT
.
Comment 1 Jarred Sumner 2023-06-01 14:57:58 PDT
We had a similar issue in Bun and ended up doing this: https://github.com/oven-sh/bun/blob/4378ef8e97839f950ddfa180e466d0a8db187681/src/bun.js/event_loop.zig#L320

Just before the event loop idles, we check if the heap size changed since the previous check and if so, we schedule the garbage collector asynchronously. Then every so often we run a synchronous GC

It fixed issues where Bun’s memory usage permanently would go up. But we still have issues with synchronous work. It doesn’t go down much if you do lots of blocking synchronous work
Comment 2 Radar WebKit Bug Importer 2023-06-08 14:38:23 PDT Comment hidden (obsolete)
Comment 3 Mark Lam 2023-06-12 22:53:20 PDT
<rdar://problem/110076652>
Comment 4 Wenson Hsieh 2023-06-13 21:09:25 PDT
Pull request: https://github.com/WebKit/WebKit/pull/14945
Comment 5 EWS 2023-06-15 07:56:21 PDT
Committed 265197@main (1a501dce9fa2): <https://commits.webkit.org/265197@main>

Reviewed commits have been landed. Closing PR #14945 and removing active labels.