ladybird/Userland/Libraries/LibJS/Heap
flofriday a2abc5b824 LibJS: Improve garbage collection trigger condition
This patch triggers the collector when allocated memory doubles instead
of every 100k allocations. Which can almost half (reduce by ~48%) the
time spent on collection when loading google-maps.

This dynamic approach is inspired by some other GCs like Golang's and
Lua's and improves performance in memory heavy applications because
marking must visit old objects which will dominate the marking phase if
the GC is invoked too often.

This commit also improves the Octane Splay benchmark and almost
doubles it :^)
2023-08-09 18:32:19 +02:00
..
BlockAllocator.cpp
BlockAllocator.h
Cell.cpp LibJS: Make Cell::initialize() return void 2023-08-08 07:39:11 +02:00
Cell.h LibJS: Make Cell::initialize() return void 2023-08-08 07:39:11 +02:00
CellAllocator.cpp
CellAllocator.h
DeferGC.h
GCPtr.h LibJS+LibWeb: Mark NonnullGCPtr::ptr() as returns_nonnull 2023-08-07 22:20:03 -04:00
Handle.cpp
Handle.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
Heap.cpp LibJS: Improve garbage collection trigger condition 2023-08-09 18:32:19 +02:00
Heap.h LibJS: Improve garbage collection trigger condition 2023-08-09 18:32:19 +02:00
HeapBlock.cpp LibJS: Resolve a circular include problem between HeapBlock and Cell 2023-07-11 09:38:37 +03:30
HeapBlock.h LibJS: Resolve a circular include problem between HeapBlock and Cell 2023-07-11 09:38:37 +03:30
Internals.h LibJS: Resolve a circular include problem between HeapBlock and Cell 2023-07-11 09:38:37 +03:30
MarkedVector.cpp
MarkedVector.h Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00